document exception for masterTablesVersionNumber 19
constant defaultSequence=0;
constant tablesMasterDir="bufr/tables/[masterTableNumber]/wmo/[masterTablesVersionNumber]" : hidden;
if (masterTablesVersionNumber == 19) {
+ # See SUP-2302: We need this exception for EUMETSAT local tables, because there are conflicting elements in their table version 1 when
+ # used in combination with different WMO tables versions. This is associated with the way BUFRDC manages the tables that
+ # are files with masterTablesVersionNumber and localTablesVersionNumber in the name.
+ # ecCodes doesn't associate a local version number with a particular master table version number.
+
+ # EUMETSAT use a combination of masterTablesVersionNumber and localTablesVersionNumber
+ # to version the tables. This is a problem because they reuse codes in the different versions.
+
+ # They can have version 19-1 ( masterTablesVersionNumber=19, localTablesVersionNumber=1) and also 25-1 and
+ # in the two tables they may reuse an element changing width, reference, scale and meaning.
+
+ # The correct way of doing this would be to have two different tables localTablesVersionNumber=1 and localTablesVersionNumber=2
+ # with a different use of their own descriptors. Local tables should be managed by the owner with different version numbers.
+ # They rely on the fact that the two versions of the tables are used in combination with different master tables.
+ # This is not always true.
+ # Hence this 'if' statement to solve the conflict of tables.
+
constant tablesLocalDir="bufr/tables/[masterTableNumber]/local/[masterTablesVersionNumber]-[localTablesVersionNumber]/[bufrHeaderCentre:l]/[bufrHeaderSubCentre]" : hidden;
} else {
constant tablesLocalDir="bufr/tables/[masterTableNumber]/local/[localTablesVersionNumber]/[bufrHeaderCentre:l]/[bufrHeaderSubCentre]" : hidden;
