NCEPLIBS-bufr  12.1.0
DX BUFR Tables

Description and format of DX BUFR tables for use with the library. Every BUFR file must have DX BUFR tables associated with it, unless the 'SEC3' decoding option is specified during the call to openbf(). For all other cases, DX table information must be pre-defined and made available to the software via call argument LUNDX during the call to openbf(). The DX tables information may be embedded within the first few BUFR messages of the file itself. Otherwise, a separate ASCII text file containing the necessary DX tables information must be supplied, such as the example shown below. Such files must be syntactically correct and also complete, in the sense that all necessary mnemonics must exist and be fully-defined.

Mnemonics

A mnemonic is a descriptive, alphanumeric name for a data value.

  • "Table A mnemonics", refer to particular data subset (i.e. report ) types,
  • "Table B mnemonics", refer directly to basic data values,
  • "Table D mnemonics" are sequences composed of one or more Table B (or other Table D) mnemonics and which are themselves normally direct constituents of a particular Table A mnemonic.

At the highest level, we have a Table A mnemonic which completely describes a type of data subset (e.g. rawinsonde, wind profiler, etc.). This Table A mnemonic is defined as a sequence of one or more Table B or Table D mnemonics, where each Table D mnemonic is likewise itself defined as a sequence of one or more Table B or Table D mnemonics, and so on until the entire data subset can be equivalently described as a sequence of one or more Table B mnemonics which correspond to basic data values (e.g. pressure, temperature, humidity, etc.).

Mnemonics never themselves appear within actual BUFR messages. Their only purpose is to make it easier for users to interact with the software by providing descriptive names to represent individual data values. They are more intuitive than FXY numbers (described below), which are the prescribed method within actual BUFR messages.

DX BUFR Tables File

A DX BUFR tables file consists of three distinct sections. Each section contains one or more lines of 80 characters in length, and where a "*" as the first character of a line indicates that that entire line is a comment.

  1. In the first section, all Table A, B and D mnemonics that are to be used within the file are initially declared, assigned a unique FXY number, and given a short, free-form text description.
  2. In the second section, all previously-declared Table A and Table D mnemonics are actually defined as a sequence of one or more Table B (or other Table D) mnemonics.
  3. In the third section, all previously-declared Table B mnemonics are defined in terms of their scale factor, reference value, bit width, and units.

Section 1

The first section of a BUFR tables file is where all Table A, B and D mnemonics are initially declared, assigned a unique FXY number, and given a short free-form text description. Mnemonics may contain any combination of uppercase letters and numbers (or, in certain special cases, a "." character), up to a maximum of 8 characters in length. A mnemonic may be declared only once, and each one must correspond to a unique FXY number, which itself consists of 6 characters, and where the first character (i.e. the "F" component) is an "A" if the mnemonic is being declared as a Table A mnemonic, "3" if the mnemonic is being declared as a Table D mnemonic, and "0" if the mnemonic is being declared as a Table B mnemonic. Otherwise, the remainder of the FXY number must be all digits, with the next 2 characters (i.e. the "X" component) as a number between 00 and 63, and the final 3 characters (i.e. the "Y" component) as a number between 001 and 255. Readers who are more familiar with BUFR will immediately recognize these F, X, and Y values as those that are defined within the official documentation of the BUFR code form.

By international convention, a mnemonic should not be given an X value between 00 and 47 along with a Y value between 001 and 191 unless that mnemonic, when subsequently defined, corresponds exactly to the BUFR descriptor having that same FXY number within the official WMO master BUFR tables.

For example, in our sample DX BUFR tables file, mnemonic "WMOB" is declared with an FXY number of 001001; therefore, it has the exact same text description (i.e. "WMO BLOCK NUMBER") and, when later defined within the last section of the file, the exact same scale factor, reference value, bit width, and units as for FXY number 001001 within the official WMO master BUFR tables. This concept should be somewhat intuitive, but it's obviously very important when the BUFRLIB software is to be used to encode BUFR messages that may potentially be read by other users in other organizations around the world.

In looking further at our sample DX BUFR tables file, we see that the lines within the first section each contain a "|" character in columns 1, 12, 21, and 80. Mnemonics are declared, and are left-justified, in columns 3-10, corresponding FXY numbers are assigned in columns 14-19, and the corresponding text description begins in column 23. All of the Table A mnemonics are declared first, followed by all of the Table D mnemonics, followed by all of the Table B mnemonics. Within each set, it is generally a good idea for human-readability purposes to list the mnemonics in ascending order with respect to their FXY number, although this is not required. Human-readability can usually also be improved by the use of separator lines containing the required "|" character in columns 1, 12, 21, and 80 but without any actual mnemonic declaration. The use of such separator lines is not required. The software will continue reading lines of the file, one at a time, and looking for new mnemonic declarations, until it reaches a line which does not contain a "|" character in each of columns 1, 12, 21, and 80, at which point it then knows that the first section of the tables file has ended.

If a Table A mnemonic consists of 8 characters (i.e. the maximum) and if characters 3 through 8 are all digits, then the mnemonic is also used by the software to set the data category and local subcategory within Section 1 of each BUFR message when writing/encoding data subsets corresponding to that mnemonic. In such cases, characters 3 through 5 define the category, and characters 6 through 8 define the subcategory.

Referring to our sample DX BUFR tables file where we've defined three different Table A mnemonics, we've also indicated that, e.g. when we use the software to write/encode data subsets according to the Table A mnemonic "NC002007" (i.e. wind profiler), we want all BUFR messages which contain such data subsets to be encoded as category 2 and local subcategory 7 within Section 1 of the message.

Even if a Table A mnemonic doesn't meet the above criteria, BUFR message category and local subcategory values will still be set by the software when writing/encoding BUFR data subsets corresponding to that Table A mnemonic. In such cases the category value will be set to the "Y" component (i.e. last 3 digits) of the FXY number corresponding to the mnemonic, and the subcategory value will simply be set to 0. It is recommended to use the previous, more-explicit approach when assigning a Table A mnemonic for a data subset to be output, since this approach provides for greater control over the category and subcategory values that will be encoded into Section 1 of the resultant BUFR message. When the FXY number corresponding to a Table A mnemonic is actually encoded into a BUFR message, a "3" is actually encoded in place of the "A" which is used in the DX tables file. The "A" that appears within the FXY number corresponding to each Table A mnemonic within the tables file is only there so that such mnemonics can be easily distinguished from Table D mnemonics by the software.

Section 2

The second section of a DX BUFR tables file is used to define, for each Table A and Table D mnemonic that was previously declared in the first section, the sequence of Table B (and possibly other Table D) mnemonics which constitutes that mnemonic.

The format for this section is a "|" character in columns 1, 12, and 80, with the mnemonic that is being defined listed in columns 3-10 (left-justified), and the sequence of constituent mnemonics beginning in column 14, each one separated from the others by one or more blank characters. For longer sequences, multiple successive lines may be used in a continuation fashion by repeating, within columns 3-10 of each continuation line, the mnemonic being defined.

For example, in our sample DX BUFR tables file, the Table D mnemonic MRPSC0 is defined as consisting of the sequence YEAR MNTH DAYS HOUR MINU RPID MRPIDS CLON CLAT SELV CORN, where MRPIDS is itself a Table D mnemonic which is therefore itself defined in a similar manner elsewhere within the section. As was the case with the first section, separator lines may be employed within this section in order to improve human-readability, as long as they contain the "|" character that is required to be in columns 1, 12, and 80 for all non-comment lines within this section, and the BUFRLIB software will continue reading lines of the file as though they are part of the second section until it encounters one that does not adhere to this format.

Additional punctuation characters and symbols can be see in the sample DX BUFR tables file.

Symbol Meaning
< > The enclosed mnemonic is replicated using 1-bit delayed replication (either 0 or 1 replications)
{ } The enclosed mnemonic is replicated using 8-bit delayed replication (between 0 and 255 replications)
( ) The enclosed mnemonic is replicated using 16-bit delayed replication (between 0 and 65535 replications)
" "n The enclosed mnemonic is replicated using regular (non-delayed) replication, with a fixed replication factor of n

For example, the Table A mnemonic NC002001, which defines the layout of a data subset of the type "RAWINSONDE - FIXED LAND", consists of the following sequence of Table B and Table D mnemonics:
  1. UARTM, followed by
  2. between 0 and 255 replications of RCPTIM, followed by
  3. between 0 and 255 replications of BID, followed by
  4. UASID, followed by
  5. between 0 and 255 replications of UARID, followed by
  6. between 0 and 255 replications of UARLV, followed by
  7. either 0 or 1 replications of UASDG, followed by
  8. between 0 and 255 replications of UARDCS, followed by
  9. between 0 and 255 replications of RAWRPT, followed by
  10. between 0 and 255 replications of UACLD, followed by
  11. either 0 or 1 replications of UAADF, followed by
  12. WMOB, followed by
  13. WMOS, followed by
  14. WMOR
where, e.g., the constituent Table D mnemonic UARLV itself consists of the following sequence:
  1. VSIG, followed by
  2. QMPR, followed by
  3. PRLC, followed by
  4. QMGP, followed by
  5. either 0 or 1 replications of UAGP07, followed by
  6. either 0 or 1 replications of UAGP10, followed by
  7. either 0 or 1 replications of UATMP, followed by
  8. either 0 or 1 replications of UAWND, followed by
  9. either 0 or 1 replications of UAWSH
and where, in turn, UAGP07, UAGP10, UATMP, etc. are also Table D mnemonics which can themselves be further resolved.

We can even nest certain replication sequences inside of other replication sequences, and, further, via the judicious use of the < > indicator, even turn on/off entire sequences of data values simply and efficiently.

An example of this is the UAWSH (i.e. "RADIOSONDE WIND SHEAR DATA") sequence, whose constituent data values are only ever present in a rawinsonde report when a level of maximum wind is being reported (and, even then, not always!). In this case, enclosing the entire sequence within a < > indicator allows the lack of such data within a report level to be noted by the use of a single bit set to "0" (i.e. 0 replications), rather than having to otherwise store the appropriate "missing" value for every constituent data value. Over the course of many data levels within many data subsets within a single BUFR message, this can add up to significant encoding efficiency, and, in turn, the use of less required storage space per BUFR message. So, in summary, the judicious use of replication can even lead to more efficient data storage for certain types of data.

Looking back again at the sample DX BUFR tables file, notice how several of the Table D mnemonics such as RCPTIM and BID are used within both the NC001003 and NC002001 data subset types. This brings up a good point; namely, that by logically grouping certain Table B mnemonics together within carefully-constructed Table D sequence mnemonics, such mnemonics can be easily and efficiently re-used within different Table A mnemonic definitions within the same BUFR tables file. In fact, this would be a good time to also point out that, when using the BUFRLIB software, Table D sequence mnemonics are the only types of mnemonics upon which any type of replication may be directly performed. Thus, in particular, if we wish to effect the replication of a single, particular Table B mnemonic, then we must do so by defining a Table D sequence mnemonic whose only constituent is that one particular Table B mnemonic and then replicating the sequence mnemonic. For a specific example of such a situation, take a look at the definition of RAWRPT within the sample file.

Before we end our discussion on the second section of our sample BUFR tables file, there are a few other special situations that we need to explain in further detail:

First, notice how a 201YYY indicator precedes each occurrence of ACAV within the definition of the Table D sequence mnemonic OBSEQ as well as each occurrence of HINC within the definition of the Table A mnemonic NC002007. This indicator is called an operator, and readers more familiar with the details of BUFR will no doubt recognize it from Table C of the official WMO master BUFR tables.

In short, the effect of this operator is that, for each Table B mnemonic which follows it within the current sequence, and continuing up until the point in the sequence where a corresponding 201000 operator is reached (and which turns off the effect), ( YYY - 128 ) bits should be added to the bit width that is otherwise defined for that Table B mnemonic within the third section of the DX BUFR tables file, so that the net effect is to change the number of bits occupied by the data value corresponding to that mnemonic within the overall data subset. Thus, for example, the sequence:

201132 HINC 201000

indicates that ( 132 - 128 ) = 4 bits should be added to the data width that was defined for mnemonic HINC within the third section of the DX BUFR tables file, and, therefore, that for this occurrence of that mnemonic within the overall data subset, the corresponding data value will occupy ( 12 + 4 ) = 16 bits.

Other than 201YYY, the BUFRLIB software also supports the similar use of the 202YYY (change scale), 203YYY (change reference value), 204YYY (add associated field), 205YYY (add character data), 206YYY (define data width for local descriptor), 207YYY (increase scale, reference value and data width) and 208YYY (change data width for CCITT IA5 descriptor) operators from BUFR Table C.

Next, take a look at the subset definitions for Table A mnemonics TBLAEX1, TBLAEX2, TBLAEX3 and TBLAEX4 within the sample DX BUFR tables file:
| TBLAEX1  | UASID  UARTM  {PRGPTMDP}                                          |
|          |                                                                   |
| TBLAEX2  | UASID  UARTM  "PRGPTMDP"100                                       |
|          |                                                                   |
| TBLAEX3  | UASID  UARTM  {PRGPTMDP}  PRLC  UACLD  PRLC  HOVI                 |
|          |                                                                   |
| TBLAEX4  | UASID  UARTM                                                      |
| TBLAEX4  | PRLC  UACLD GEOP  TMDB  HOVI TMDP                                 |
| TBLAEX4  | PRLC  UACLD TMDB  TMDP  HOVI GEOP                                 |
| TBLAEX4  | PRLC  UACLD GEOP  TMDP  HOVI TMDB                                 |
| TBLAEX4  | PRLC  UACLD TMDB  GEOP  HOVI TMDP                                 |
Furthermore, let's presume we wanted to read all of the occurrences of the Table B mnemonics PRLC, GEOP, TMDB and TMDP from data subsets encoded according to each of these different subset definitions. In the first three cases, these mnemonics are all contained within the Table D sequence PRGPTMDP as follows:
| PRGPTMDP | PRLC  GEOP  TMDB  TMDP                                            |
However, due to some subtle differences in how the sequence is replicated in each case, different BUFRLIB subroutines need to be used to retrieve all of the respective PRLC, GEOP, TMDB and TMDP values in each case. For example, within the first subset definition TBLAEX1, we have delayed replication using the notation {PRGPTMDP}, so we could use subroutine ufbint() with STR='PRLC GEOP TMDB TMDP' to retrieve all of the replications of these mnemonics into our output USR array, where each row of USR would contain corresponding values for PRLC, GEOP, TMDB and TMDP in the first four columns, and where the return value IRET would tell us how many rows of USR were actually filled with such values (i.e. the total number of replications that were read).

Alternatively, we could use subroutine ufbseq() with STR='PRGPTMDP', which would accomplish the exact same thing. Or, if we only wanted to know the total number of replications without actually reading out all of the respective PRLC, GEOP, TMDB and TMDP values, we could also call subroutine ufbint() with STR='{PRGPTMDP}', and the corresponding array location in USR would contain the same value that would have been returned in IRET during our earlier call to ufbint() with STR='PRLC GEOP TMDB TMDP', or during our earlier call to ufbseq() with STR='PRGPTMDP'.

The second subset definition TBLAEX2 is different, because here instead of delayed replication we have fixed replication using the notation "PRGPTMDP"100, so in this case we must instead use subroutine ufbrep() with STR='PRLC GEOP TMDB TMDP' in order to read all of the respective PRLC, GEOP, TMDB and TMDP values into the first four columns of our USR array. However, since in this case the number of replications is fixed at 100, then the return value IRET would always be set to 100, and if there were less than 100 actual rows of available data values, then the remaining rows of USR up through row 100 would be filled out with "missing" values by the BUFRLIB software.

The third subset definition TBLAEX3 is a bit more interesting, because we once again have delayed replication using the notation {PRGPTMDP} just like in TBLAEX1; however, in this case there are additional subsequent occurrences of Table B mnemonic PRLC which appear outside of the delayed replication sequence. So in this case we again have to use subroutine ufbrep() with STR='PRLC GEOP TMDB TMDP' in order to read all of the occurrences of PRLC from within the data subset, and the return value IRET will now be 2 larger than in our earlier example for the TBLAEX1 subset definition, because now we have 2 extra rows in USR which contain additional PRLC values in the first column. If we had instead tried to use subroutine ufbint() with the same STR value for this TBLAEX3 subset definition, then we wouldn't have been able to read those last 2 extra rows, and our USR output array instead would have looked exactly as it did in our earlier TBLAEX1 example.

The fourth and final subset definition TBLAEX4 is even more interesting, not to mention a bit more contrived. Here we have exactly 4 replications of the Table B mnemonics PRLC, GEOP, TMDB and TMDP, but the replication is done via explicitly listing all of the occurrences of these mnemonics within the subset definition, and where the mnemonics appear in slightly different order within each replication. Again, this is a contrived example, but it will serve to better explain how subroutine ufbrep() actually works, and also how it behaves slightly differently from ufbint() and ufbseq() as well as from yet another subroutine ufbstp(). First of all, in the case of subroutine ufbrep(), the first listed mnemonic in STR is always treated as a "pivot", meaning that the second dimension of USR (i.e. the number of rows) is always defined by subsequent occurrences of this pivot mnemonic within the overall subset definition, and where any remaining mnemonics within STR are always independently searched for between each successive occurrence of the pivot mnemonic. So in the case of subroutine ufbrep() with STR='PRLC GEOP TMDB TMDP' for TBLAEX4, there will be 4 rows of values in the returned USR array as follows, since there were 4 total occurrences of the pivot mnemonic PRLC:
USR(I,J) J=1 J=2 J=3 J=4
I=1 1st PRLC value 1st GEOP value 1st TMDB value 1st TMDP value
I=2 2nd PRLC value 2nd GEOP value 2nd TMDB value 2nd TMDP value
I=3 3rd PRLC value 3rd GEOP value 3rd TMDB value 3rd TMDP value
I=4 4th PRLC value 4th GEOP value 4th TMDB value 4th TMDP value
In other words, ufbrep() searched independently for each of the mnemonics GEOP, TMDB and TMDP between each occurrence of the pivot mnemonic PRLC, so the varying order of those mnemonics between each successive occurrence of PRLC was immaterial, and all of the requested values were found and returned. However, contrast that with what the first 4 rows of USR would look like if we called subroutine ufbstp() with the same STR='PRLC GEOP TMDB TMDP':
USR(I,J) J=1 J=2 J=3 J=4
I=1 1st PRLC value 1st GEOP value 1st TMDB value 1st TMDP value
I=2 2nd PRLC value 2nd GEOP value "missing" value "missing" value
I=3 3rd PRLC value 3rd GEOP value 3rd TMDB value "missing" value
I=4 4th PRLC value 4th GEOP value "missing" value "missing" value
As shown here, the order of the non-pivot mnemonics between each occurrence of the pivot mnemonic PRLC is now very important when using subroutine ufbstp(). Specifically, ufbstp() only ever moves forward from each occurrence of the pivot mnemonic, and for only one non-pivot mnemonic at a time in the same exact order in which they appear in STR. So in this case, in the second row of the output USR array, it searched forward from PRLC for the first occurrence of GEOP, and then only after it found that did it search for the next mnemonic in the string (i.e. TMDB), but only searching forward from GEOP rather than going all the way back to the previous occurrence of the pivot mnemonic PRLC and searching from there. And since it couldn't find any occurrence of TMDB between the location of GEOP within the second replication and the third occurrence of the pivot mnemonic PRLC which signaled the start of the third repliation, then TMDB and TMDP both ended up as "missing" in the second row of the returned USR array.

Similarly for the third replication, and starting from the third occurrence of the pivot mnemonic PRLC, it finds GEOP and then begins searching from there for TMDB, which it eventually finds, but not until after it has already stepped past TMDP. And since it can only move forward from the point where it found TMDB, then it never finds TMDP for the third replication before it encounters the fourth and final occurrence of the pivot mnemonic PRLC, which in turn is why TMDP is "missing" in the third row of the returned USR array. Finally, for the fourth replication, and starting from the fourth occurrence of the pivot mnemonic PRLC, it finds GEOP and then begins searching from there for TMDB, but by that point it has already stepped past TMDB, so it never finds that nor the subsequent TMDP mnemonic, and therefore both of those values are "missing" in the fourth row of USR as well.

Next, take a look at the definitions of the Table D sequence mnemonics TMPSQ3, WNDSQ2, and PCPSQ3; in particular, notice that, within these definitions, there are references to several mnemonics such as .DTHMITM and .DTHMXGS which were not previously-declared within the first section of the table. At first glance, this seems to contradict everything that we previously said about the need to initially declare all mnemonics within the first section; however, upon closer inspection, the reader will notice that there do exist, within the first section, declarations for mnemonics .DTH.... and .DTH..... So, what exactly is going on here? The answer is that each of these is a special mnemonic known as a following-value mnemonic, meaning that, when it is used within a sequence definition, it implies a special relationship with the mnemonic that immediately follows it within the sequence. In fact, this relationship is so special that, when a following-value mnemonic is used within a sequence definition, the .... portion of the mnemonic is replaced with the mnemonic that immediately follows it! For example, when .DTH.... is used within the definition of the Table D sequence mnemonic TMPSQ3, it appears as .DTHMXTM and .DTHMITM because it appears immediately before, respectively, the mnemonics MXTM and MITM. However, when it appears within the definition of PCPSQ3, it appears as .DTHTOPC since it immediately precedes TOPC within that sequence. To be precise, a following-value mnemonic is declared with a "." as the first character, followed by no more than 3 alphanumeric characters as an identifier, followed by 4 more "." characters which must then be replaced with the mnemonic that immediately follows it whenever and wherever it is used within a sequence definition. This is important, because the BUFRLIB software will actually check that the immediately-following mnemonic matches the last 4 characters of the following-value mnemonic and will diagnose an error if it does not.

In general, the "following-value" attribute is useful because it allows the same mnemonic to be used repeatedly within the same overall Table A data subset definition in a very intuitive fashion and yet, since each occurrence retains its own unique identification (e.g. .DTHMXTM, .DTHTOPC, etc.), then each one can still be individually accessed independent of the others via subroutine ufbint(). An alternative would be to declare a regular mnemonic such as DTHRFV instead of .DTH.... within the first section of the tables file and then use that mnemonic in all of the same places within the same Table A data subset definition, but then we'd have to use subroutine ufbrep() to access all such values simultaneously, even if we weren't interested in all of them. And we'd also lose the intuitiveness provided by having available, within the mnemonic itself, the name of the mnemonic to which the corresponding value applies.

Section 3

The third section of a DX BUFR tables file is used to define the scale factor, reference value, data width, and units for all of the Table B mnemonics that were previously declared in the first section. The units definition for each Table B mnemonic determines how data values corresponding to that mnemonic are read/written from/to the REAL*8 array USR within BUFRLIB subroutines such as ufbint(), ufbrep() and ufbseq().

In looking again at our sample DX BUFR tables file, we see that the format for the third section of such a file is the usual "|" delimiter in columns 1, 12, 19, 33, 39, 66, and 80 of each line. These delimiters form the columns for the mnemonic (listed exactly as it was previously within the first section), the scale factor (right-justified from column 17), the reference value (right-justified from column 31), the bit width (right-justified from column 37), and the units (left-justified from column 41).

As with the previous two sections, blank separator lines may be employed in order to improve human-readability. It's recommended to list the mnemonics in the same order in which they were declared within the first section. Any mnemonic whose corresponding data values are to be treated as character data must have its units listed as "CCITT IA5", which is just a formal synonym for ASCII.

Sample DX BUFR tables file

.------------------------------------------------------------------------------.
| ------------   USER DEFINITIONS FOR TABLE-A TABLE-B TABLE D   -------------- |
|------------------------------------------------------------------------------|
| MNEMONIC | NUMBER | DESCRIPTION                                              |
|----------|--------|----------------------------------------------------------|
|          |        |                                                          |
| NC001003 | A63212 | MESSAGE TYPE 001-003  SURFACE MARINE FIXED BUOY          |
|          |        |                                                          |
| NC002001 | A63218 | MESSAGE TYPE 002-001  RAWINSONDE - FIXED LAND            |
|          |        |                                                          |
| NC002007 | A63223 | MESSAGE TYPE 002-007  WIND PROFILER                      |
|          |        |                                                          |
| TBLAEX1  | A58251 | TABLE A CONTRIVED EXAMPLE #1                             |
| TBLAEX2  | A58252 | TABLE A CONTRIVED EXAMPLE #2                             |
| TBLAEX3  | A58253 | TABLE A CONTRIVED EXAMPLE #3                             |
| TBLAEX4  | A58254 | TABLE A CONTRIVED EXAMPLE #4                             |
|          |        |                                                          |
| PRGPTMDP | 303003 | GEOPOTENTIAL/TEMPERATURE/DEWPOINT AT PRESSURE LEVEL      |
|          |        |                                                          |
| RPSEC1   | 361036 | SYNOPTIC REPORT WMO FM 12/13 SECTION 1 DATA              |
| TMPSQ1   | 361037 | SYNOPTIC REPORT TEMPERATURE DATA                         |
| TMPSQ2   | 361038 | SYNOPTIC REPORT WET BULB TEMPERATURE DATA                |
| TMPSQ3   | 361039 | SYNOPTIC REPORT MAXIMUM AND MINIMUM TEMPERATURE DATA     |
| WNDSQ1   | 361042 | SYNOPTIC REPORT WIND DATA                                |
| WNDSQ2   | 361043 | SYNOPTIC REPORT HIGHEST WIND GUST DATA                   |
| WNDSQ3   | 361044 | SYNOPTIC REPORT PEAK WIND DATA                           |
| PRSSQ1   | 361045 | SYNOPTIC REPORT PRESSURE DATA                            |
| PCPSQ2   | 361049 | SYNOPTIC REPORT PRECIPITATION DATA 2                     |
| PCPSQ3   | 361050 | SYNOPTIC REPORT PRECIPITATION DATA 3                     |
| WAVSQ1   | 361051 | SYNOPTIC REPORT INSTRUMENT WAVE DATA                     |
| WAVSQ2   | 361052 | SYNOPTIC REPORT WIND WAVE DATA                           |
| WAVSQ3   | 361053 | SYNOPTIC REPORT SWELL WAVE DATA                          |
| PPWSQ1   | 361054 | SYNOPTIC REPORT PRESENT AND PAST WEATHER DATA            |
| MRPSC0   | 361076 | MARINE REPORT WMO FM 13 SECTION 0 DATA                   |
| MRPIDS   | 361077 | MARINE REPORT IDS                                        |
| ID1SQ    | 361078 | SHIP'S CALL SIGN SEQUENCE                                |
| ID2SQ    | 361079 | NUMERIC BUOY PLATFORM ID                                 |
| ID3SQ    | 361080 | CMAN / FIXED BUOY PLATFORM ID                            |
| CTWNDS   | 361083 | CONTINUOUS WIND DATA                                     |
| MPCPSQ   | 361085 | MARINE REPORT PRECIPITATION DATA                         |
|          |        |                                                          |
| UASID    | 361121 | RADIOSONDE STATION ID DATA                               |
| UARID    | 361122 | RADIOSONDE REPORT ID DATA                                |
| UARLV    | 361123 | RADIOSONDE REPORT LEVEL DATA                             |
| UATMP    | 361125 | RADIOSONDE TEMPERATURE DATA                              |
| UAWND    | 361126 | RADIOSONDE WIND DATA                                     |
| UAWSH    | 361127 | RADIOSONDE WIND SHEAR DATA                               |
| UACLD    | 361128 | RADIOSONDE CLOUD DATA                                    |
| UASDG    | 361129 | RADIOSONDE SOUNDING SYSTEM DATA                          |
| UAADF    | 361130 | RADIOSONDE 101AA "ADDITIONAL DATA" DATA                  |
| UARDCS   | 361131 | RADIOSONDE REPORT DIAGNOSTIC DATA                        |
| UARTM    | 361132 | RADIOSONDE REPORT TIME DATA                              |
| UAGP07   | 361133 | RADIOSONDE CLASS 7 GEOPOTENTIAL DATA                     |
| UAGP10   | 361134 | RADIOSONDE CLASS 10 GEOPOTENTIAL DATA                    |
|          |        |                                                          |
| OBSEQ    | 361161 | PROFILER OBSERVATION SEQUENCE                            |
|          |        |                                                          |
| BID      | 363001 | BULLETIN ID DATA                                         |
| RAWRPT   | 363002 | RAW REPORT                                               |
| RCPTIM   | 363003 | REPORT RECEIPT TIME DATA                                 |
|          |        |                                                          |
| WMOB     | 001001 | WMO BLOCK NUMBER                                         |
| WMOS     | 001002 | WMO STATION NUMBER                                       |
| WMOR     | 001003 | WMO REGION NUMBER                                        |
| BPID     | 001005 | BUOY/PLATFORM IDENTIFIER                                 |
| SBPI     | 001010 | STATIONARY BUOY PLATFORM ID                              |
| ICLI     | 001063 | ICAO LOCATION IDENTIFIER                                 |
| SHPC8    | 001166 | SHIP CALL SIGN (8 CHARACTERS)                            |
| UAPART   | 001192 | RADIOSONDE PART NAME                                     |
| BUHD     | 001194 | BULLETIN HEADER                                          |
| RSML     | 001197 | RADIOSONDE SHIP, DROP, OR MOBIL STATION ID               |
| RPID     | 001198 | REPORT IDENTIFIER                                        |
|          |        |                                                          |
| TOST     | 002001 | TYPE OF STATION                                          |
| A4ME     | 002003 | TYPE OF MEASURING EQUIPMENT USED                         |
| RATP     | 002011 | RADIOSONDE TYPE                                          |
| SIRC     | 002013 | SOLAR AND INFRARED RADIATION CORRECTION                  |
| TTSS     | 002014 | TRACKING TECHNIQUE/STATUS OF SYSTEM USED                 |
| MSST     | 002038 | METHOD OF SEA SURFACE TEMPERATURE MEASUREMENT            |
| MWBT     | 002039 | METHOD OF WET BULB TEMPERATURE MEASUREMENT               |
| ITSO     | 002193 | IND TYPE OF STATION OPERATION PAST/PRESENT WEATHER       |
| SEQNUM   | 002195 | LDM CHANNEL SEQUENCE NUMBER                              |
|          |        |                                                          |
| YEAR     | 004001 | YEAR                                                     |
| MNTH     | 004002 | MONTH                                                    |
| DAYS     | 004003 | DAY                                                      |
| HOUR     | 004004 | HOUR                                                     |
| MINU     | 004005 | MINUTE                                                   |
| TPMI     | 004025 | TIME PERIOD OR DISPLACEMENT                              |
| .DTH.... | 004031 | DURATION OF TIME IN HOURS RELATING TO FOLLOWING VALUE    |
| .DTM.... | 004032 | DURATION OF TIME IN MINUTES RELATING TO FOLLOWING VALUE  |
| RCYR     | 004200 | YEAR   - TIME OF RECEIPT                                 |
| RCMO     | 004201 | MONTH  - TIME OF RECEIPT                                 |
| RCDY     | 004202 | DAY    - TIME OF RECEIPT                                 |
| RCHR     | 004203 | HOUR   - TIME OF RECEIPT                                 |
| RCMI     | 004204 | MINUTE - TIME OF RECEIPT                                 |
| UALNHR   | 004210 | RADIOSONDE LAUNCH HOUR                                   |
| UALNMN   | 004211 | RADIOSONDE LAUNCH MINUTE                                 |
|          |        |                                                          |
| CLAT     | 005002 | LATITUDE (COARSE ACCURACY)                               |
|          |        |                                                          |
| CLON     | 006002 | LONGITUDE (COARSE ACCURACY)                              |
|          |        |                                                          |
| SELV     | 007001 | HEIGHT OF STATION                                        |
| PRLC     | 007004 | PRESSURE                                                 |
| HINC     | 007005 | HEIGHT INCREMENT                                         |
| HEIT     | 007007 | HEIGHT                                                   |
| GP07     | 007008 | GEOPOTENTIAL                                             |
| XMPRLC   | 007195 | EXTRAPOLATED MANDATORY LEVEL PRESSURE                    |
|          |        |                                                          |
| VSIG     | 008001 | VERTICAL SOUNDING SIGNIFICANCE                           |
| TSIG     | 008021 | TIME SIGNIFICANCE                                        |
| ACAV     | 008022 | TOTAL NUMBER (WITH RESPECT TO ACCUMULATION OR AVERAGE)   |
| SUWS     | 008199 | SOURCE UNITS OF WIND SPEED                               |
| RCTS     | 008202 | RECEIPT TIME SIGNIFICANCE                                |
|          |        |                                                          |
| GEOP     | 010003 | GEOPOTENTIAL                                             |
| PRES     | 010004 | PRESSURE                                                 |
| GP10     | 010008 | GEOPOTENTIAL                                             |
| PMSL     | 010051 | PRESSURE REDUCED TO MSL                                  |
| 3HPC     | 010061 | 3 HOUR PRESSURE CHANGE                                   |
| CHPT     | 010063 | CHARACTERISTIC OF PRESSURE TENDENCY                      |
| XMGP10   | 010196 | EXTRAPOLATED MANDATORY LEVEL GEOPOTENTIAL                |
|          |        |                                                          |
| WDIR     | 011001 | WIND DIRECTION                                           |
| WSPD     | 011002 | WIND SPEED                                               |
| UCMP     | 011003 | U-COMPONENT                                              |
| VCMP     | 011004 | V-COMPONENT                                              |
| WCMP     | 011006 | W-COMPONENT                                              |
| MXGS     | 011041 | MAXIMUM WIND SPEED (GUSTS)                               |
| MWDL     | 011044 | MEAN WIND DIRECTION FOR SURFACE-1500M LAYER              |
| MWSL     | 011045 | MEAN WIND SPEED FOR SURFACE-1500M LAYER                  |
| SDHS     | 011050 | STANDARD DEVIATION OF HORIZONTAL WIND SPEED              |
| SDVS     | 011051 | STANDARD DEVIATION OF VERTICAL WIND SPEED                |
| AWSB     | 011061 | ABSOLUTE WIND SHEAR IN 1 KM LAYER BELOW                  |
| AWSA     | 011062 | ABSOLUTE WIND SHEAR IN 1 KM LAYER ABOVE                  |
| PKWDDR   | 011202 | PEAK WIND DIRECTION                                      |
| PKWDSP   | 011203 | PEAK WIND SPEED                                          |
| XS10     | 011223 | 10 METER EXTRAPOLATED WIND SPEED                         |
| XS20     | 011224 | 20 METER EXTRAPOLATED WIND SPEED                         |
| MWDH     | 011221 | MEAN WIND DIRECTION FOR 1500M-3000M LAYER                |
| MWSH     | 011222 | MEAN WIND SPEED FOR 1500M-3000M LAYER                    |
| WDRC     | 011227 | CONTINUOUS WIND DIRECTION IN DEGREES                     |
| WDSC     | 011228 | CONTINUOUS WIND SPEED IN M/SEC                           |
|          |        |                                                          |
| TMDBST   | 012001 | TEMPERATURE/DRY BULB TEMPERATURE (SCALE 1)               |
| TMDB     | 012101 | TEMPERATURE/DRY BULB TEMPERATURE                         |
| TMWB     | 012102 | WET BULB TEMPERATURE                                     |
| TMDP     | 012103 | DEW POINT TEMPERATURE                                    |
| MXTM     | 012228 | MAXIMUM TEMPERATURE                                      |
| MITM     | 012229 | MINIMUM TEMPERATURE                                      |
|          |        |                                                          |
| REHU     | 013003 | RELATIVE HUMIDITY                                        |
| TOPC     | 013011 | TOTAL PRECIPITATION/TOTAL WATER EQUIVALENT               |
| REQV     | 013014 | RAINFALL/WATER EQUIVALENT OF SNOW (AVERAGE RATE)         |
| TP01     | 013019 | TOTAL PRECIPITATION PAST 1 HOUR                          |
| TP03     | 013020 | TOTAL PRECIPITATION PAST 3 HOURS                         |
| TP06     | 013021 | TOTAL PRECIPITATION PAST 6 HOURS                         |
| TP12     | 013022 | TOTAL PRECIPITATION PAST 12 HOURS                        |
| TP24     | 013023 | TOTAL PRECIPITATION PAST 24 HOURS                        |
| INPC     | 013194 | INDIC INCLUSION/OMISSION OF PREC                         |
| STBS5    | 013195 | MODIFIED SHOWALTER STABILITY INDEX                       |
|          |        |                                                          |
| HOVI     | 020001 | HORIZONTAL VISIBILITY                                    |
| PRWE     | 020003 | PRESENT WEATHER                                          |
| PSW1     | 020004 | PAST WEATHER (1)                                         |
| PSW2     | 020005 | PAST WEATHER (2)                                         |
| CLAM     | 020011 | CLOUD AMOUNT                                             |
| CLTP     | 020012 | CLOUD TYPE                                               |
| HOCB     | 020013 | HEIGHT OF BASE OF CLOUD                                  |
|          |        |                                                          |
| SPP01    | 021193 | SPECTRAL PEAK POWER 0TH MOMENT                           |
|          |        |                                                          |
| DOSW     | 022003 | DIRECTION OF SWELL WAVES                                 |
| POWV     | 022011 | PERIOD OF WAVES                                          |
| POWW     | 022012 | PERIOD OF WIND WAVES                                     |
| POSW     | 022013 | PERIOD OF SWELL WAVES                                    |
| HOWV     | 022021 | HEIGHT OF WAVES                                          |
| HOWW     | 022022 | HEIGHT OF WIND WAVES                                     |
| HOSW     | 022023 | HEIGHT OF SWELL WAVES                                    |
| SST1     | 022043 | SEA TEMPERATURE                                          |
|          |        |                                                          |
| NPHL     | 025032 | WIND PROFILER MODE INFORMATION                           |
| NPSM     | 025033 | WIND PROFILER SUBMODE INFORMATION                        |
| NPQC     | 025034 | WIND PROFILER QUALITY CONTROL TEST RESULTS               |
|          |        |                                                          |
| QCEVR    | 033024 | STATION ELEVATION QUALITY MARK (FOR MOBIL STATIONS)      |
| QMGP     | 033192 | ON29 QUALITY MARK FOR GEOPOTENTIAL                       |
| QMAT     | 033193 | ON29 QUALITY MARK FOR TEMPERATURE                        |
| QMDD     | 033194 | ON29 QUALITY MARK FOR DEWPOINT DEPRESSION                |
| QMWN     | 033195 | ON29 QUALITY MARK FOR WIND                               |
| QMCA     | 033197 | ON29 QUALITY MARK FOR CLOUD AMOUNT                       |
| UARDC    | 033202 | RADIOSONDE REPORT DIAGNOSTIC CODE                        |
| QMPR     | 033207 | ON29 QUALITY MARK FOR PRESSURE                           |
| CORN     | 033215 | CORRECTED REPORT INDICATOR                               |
| QMST     | 033218 | ON29 QUALITY MARK FOR SEA SURFACE TEMPERATURE            |
|          |        |                                                          |
| BULTIM   | 058006 | BULLETIN TIME (DDHHMM)                                   |
| BBB      | 058007 | WMO BBB INDICATOR                                        |
| RRSTG    | 058008 | RAW REPORT STRING                                        |
|          |        |                                                          |
|------------------------------------------------------------------------------|
| MNEMONIC | SEQUENCE                                                          |
|----------|-------------------------------------------------------------------|
|          |                                                                   |
| NC001003 | MRPSC0  BID    {RCPTIM} RPSEC1  WNDSQ1  XS10    XS20     TMPSQ1   |
| NC001003 | PRSSQ1  MPCPSQ                                                    |
| NC001003 | <PPWSQ1>   <WAVSQ1>   <WAVSQ2>  {WAVSQ3}    WNDSQ3   {CTWNDS}     |
| NC001003 | {RAWRPT}                                                          |
|          |                                                                   |
| NC002001 | UARTM  {RCPTIM}  {BID}  UASID  {UARID}                            |
| NC002001 | {UARLV}  <UASDG>  {UARDCS}  {RAWRPT}                              |
| NC002001 | {UACLD}  <UAADF>                                                  |
| NC002001 | WMOB  WMOS  WMOR                                                  |
|          |                                                                   |
| NC002007 | WMOB     WMOS     CLAT     CLON     SELV     YEAR     MNTH        |
| NC002007 | DAYS     HOUR     MINU     TSIG     TPMI     WSPD     WDIR        |
| NC002007 | PMSL     TMDBST   REQV     REHU                                   |
| NC002007 | 201127   HINC     201000   NPSM                                   |
| NC002007 | 201132   HINC     201000   "OBSEQ"36                              |
| NC002007 | 201132   HINC     201000   "OBSEQ"7                               |
|          |                                                                   |
| TBLAEX1  | UASID  UARTM  {PRGPTMDP}                                          |
|          |                                                                   |
| TBLAEX2  | UASID  UARTM  "PRGPTMDP"100                                       |
|          |                                                                   |
| TBLAEX3  | UASID  UARTM  {PRGPTMDP}  PRLC  UACLD  PRLC  HOVI                 |
|          |                                                                   |
| TBLAEX4  | UASID  UARTM                                                      |
| TBLAEX4  | PRLC  UACLD GEOP  TMDB  HOVI TMDP                                 |
| TBLAEX4  | PRLC  UACLD TMDB  TMDP  HOVI GEOP                                 |
| TBLAEX4  | PRLC  UACLD GEOP  TMDP  HOVI TMDB                                 |
| TBLAEX4  | PRLC  UACLD TMDB  GEOP  HOVI TMDP                                 |
|          |                                                                   |
| PRGPTMDP | PRLC  GEOP  TMDB  TMDP                                            |
|          |                                                                   |
| RPSEC1   | ITSO    TOST    INPC    HOVI                                      |
|          |                                                                   |
| TMPSQ1   | QMAT    TMDB    QMDD    TMDP    MSST   QMST  SST1                 |
| TMPSQ1   | <TMPSQ2>   <TMPSQ3>                                               |
|          |                                                                   |
| TMPSQ2   | MWBT    TMWB    REHU                                              |
|          |                                                                   |
| TMPSQ3   | .DTHMXTM   MXTM   .DTHMITM   MITM                                 |
|          |                                                                   |
| WNDSQ1   | SUWS    QMWN    WDIR    WSPD    <WNDSQ2>                          |
|          |                                                                   |
| WNDSQ2   | .DTMMXGS  MXGS                                                    |
|          |                                                                   |
| WNDSQ3   | YEAR    MNTH    DAYS    HOUR    MINU    PKWDDR    PKWDSP          |
|          |                                                                   |
| WAVSQ1   | POWV    HOWV                                                      |
|          |                                                                   |
| WAVSQ2   | POWW    HOWW                                                      |
|          |                                                                   |
| WAVSQ3   | DOSW    POSW    HOSW                                              |
|          |                                                                   |
| PRSSQ1   | QMPR  PRES  PMSL  CHPT  3HPC                                      |
|          |                                                                   |
| PCPSQ2   | TP01    TP03    TP12    TP24                                      |
|          |                                                                   |
| PCPSQ3   | .DTHTOPC   TOPC                                                   |
|          |                                                                   |
| PPWSQ1   | PRWE    PSW1    PSW2                                              |
|          |                                                                   |
| MRPSC0   | YEAR    MNTH    DAYS    HOUR    MINU    RPID   MRPIDS CLON        |
| MRPSC0   | CLAT    SELV    CORN                                              |
|          |                                                                   |
| MRPIDS   | <ID1SQ> <ID2SQ> <ID3SQ>                                           |
|          |                                                                   |
| ID1SQ    | SHPC8                                                             |
|          |                                                                   |
| ID2SQ    | BPID                                                              |
|          |                                                                   |
| ID3SQ    | SBPI                                                              |
|          |                                                                   |
| CTWNDS   | TPMI    WDRC    WDSC                                              |
|          |                                                                   |
| MPCPSQ   | TP06    <PCPSQ2>   <PCPSQ3>                                       |
|          |                                                                   |
| BID      | SEQNUM  BUHD  ICLI  BULTIM  BBB                                   |
|          |                                                                   |
| RAWRPT   | RRSTG                                                             |
|          |                                                                   |
| RCPTIM   | RCTS  RCYR  RCMO  RCDY  RCHR  RCMI                                |
|          |                                                                   |
| UASID    | RPID  CLAT  CLON  SELV                                            |
|          |                                                                   |
| UARID    | RATP  A4ME  CORN  UAPART                                          |
|          |                                                                   |
| UARTM    | YEAR  MNTH  DAYS  HOUR                                            |
|          |                                                                   |
| UARLV    | VSIG  QMPR  PRLC  QMGP  <UAGP07>  <UAGP10>                        |
| UARLV    | <UATMP>  <UAWND>  <UAWSH>                                         |
|          |                                                                   |
| UAGP07   | GP07                                                              |
|          |                                                                   |
| UAGP10   | GP10                                                              |
|          |                                                                   |
| UATMP    | QMAT  TMDB  QMDD  TMDP                                            |
|          |                                                                   |
| UAWND    | QMWN  WDIR  WSPD                                                  |
|          |                                                                   |
| UAWSH    | AWSB  AWSA                                                        |
|          |                                                                   |
| UACLD    | CLTP  QMCA  CLAM  HOCB                                            |
|          |                                                                   |
| UASDG    | QMST  SST1  SIRC  TTSS  UALNHR  UALNMN                            |
|          |                                                                   |
| UAADF    | MWDL  MWSL  MWDH  MWSH  STBS5  XMPRLC  XMGP10                     |
|          |                                                                   |
| UARDCS   | UARDC                                                             |
|          |                                                                   |
| OBSEQ    | NPHL     NPQC                                                     |
| OBSEQ    | 201116   ACAV   201000   UCMP    VCMP   201127   SDHS  201000     |
| OBSEQ    | 201116   ACAV   201000   SPP01   WCMP   SDVS                      |
|          |                                                                   |
|------------------------------------------------------------------------------|
| MNEMONIC | SCAL | REFERENCE   | BIT | UNITS                    |-------------|
|----------|------|-------------|-----|--------------------------|-------------|
|          |      |             |     |                          |-------------|
| WMOB     |    0 |           0 |   7 | NUMERIC                  |-------------|
| WMOS     |    0 |           0 |  10 | NUMERIC                  |-------------|
| WMOR     |    0 |           0 |   3 | CODE TABLE               |-------------|
| BPID     |    0 |           0 |  17 | NUMERIC                  |-------------|
| SBPI     |    0 |           0 |  64 | CCITT IA5                |-------------|
| ICLI     |    0 |           0 |  64 | CCITT IA5                |-------------|
| SHPC8    |    0 |           0 |  64 | CCITT IA5                |-------------|
| UAPART   |    0 |           0 |  32 | CCITT IA5                |-------------|
| BUHD     |    0 |           0 |  64 | CCITT IA5                |-------------|
| RSML     |    0 |           0 |  64 | CCITT IA5                |-------------|
| RPID     |    0 |           0 |  64 | CCITT IA5                |-------------|
|          |      |             |     |                          |-------------|
| TOST     |    0 |           0 |   2 | CODE TABLE               |-------------|
| A4ME     |    0 |           0 |   4 | CODE TABLE               |-------------|
| RATP     |    0 |           0 |   8 | CODE TABLE               |-------------|
| SIRC     |    0 |           0 |   4 | CODE TABLE               |-------------|
| TTSS     |    0 |           0 |   7 | CODE TABLE               |-------------|
| MSST     |    0 |           0 |   3 | CODE TABLE               |-------------|
| MWBT     |    0 |           0 |   3 | CODE TABLE               |-------------|
| ITSO     |    0 |           0 |   3 | CODE TABLE               |-------------|
| SEQNUM   |    0 |           0 |  32 | CCITT IA5                |-------------|
|          |      |             |     |                          |-------------|
| YEAR     |    0 |           0 |  12 | YEAR                     |-------------|
| MNTH     |    0 |           0 |   4 | MONTH                    |-------------|
| DAYS     |    0 |           0 |   6 | DAY                      |-------------|
| HOUR     |    0 |           0 |   5 | HOUR                     |-------------|
| MINU     |    0 |           0 |   6 | MINUTE                   |-------------|
| TPMI     |    0 |       -2048 |  12 | MINUTES                  |-------------|
| .DTH.... |    0 |           0 |   8 | HOURS                    |-------------|
| .DTM.... |    0 |           0 |   6 | MINUTES                  |-------------|
| RCYR     |    0 |           0 |  12 | YEAR                     |-------------|
| RCMO     |    0 |           0 |   4 | MONTH                    |-------------|
| RCDY     |    0 |           0 |   6 | DAY                      |-------------|
| RCHR     |    0 |           0 |   5 | HOUR                     |-------------|
| RCMI     |    0 |           0 |   6 | MINUTE                   |-------------|
| UALNHR   |    0 |           0 |   5 | HOUR                     |-------------|
| UALNMN   |    0 |           0 |   6 | MINUTE                   |-------------|
|          |      |             |     |                          |-------------|
| CLAT     |    2 |       -9000 |  15 | DEGREES                  |-------------|
|          |      |             |     |                          |-------------|
| CLON     |    2 |      -18000 |  16 | DEGREES                  |-------------|
|          |      |             |     |                          |-------------|
| SELV     |    0 |        -400 |  15 | METERS                   |-------------|
| PRLC     |   -1 |           0 |  14 | PASCALS                  |-------------|
| HEIT     |    0 |       -1000 |  17 | METERS                   |-------------|
| GP07     |    0 |      -10000 |  20 | (METERS/SECOND)**2       |-------------|
| HINC     |    0 |        -400 |  12 | METERS                   |-------------|
| XMPRLC   |   -1 |           0 |  14 | PASCALS                  |-------------|
|          |      |             |     |                          |-------------|
| VSIG     |    0 |           0 |   7 | FLAG TABLE               |-------------|
| TSIG     |    0 |           0 |   5 | CODE TABLE               |-------------|
| SUWS     |    0 |           0 |   3 | CODE TABLE               |-------------|
| RCTS     |    0 |           0 |   6 | CODE TABLE               |-------------|
| ACAV     |    0 |           0 |  16 | NUMERIC                  |-------------|
|          |      |             |     |                          |-------------|
| GEOP     |   -1 |        -400 |  17 | (METERS/SECOND)**2       |-------------|
| PRES     |   -1 |           0 |  14 | PASCALS                  |-------------|
| GP10     |    0 |      -10000 |  20 | (METERS/SECOND)**2       |-------------|
| PMSL     |   -1 |           0 |  14 | PASCALS                  |-------------|
| CHPT     |    0 |           0 |   4 | CODE TABLE               |-------------|
| 3HPC     |   -1 |        -500 |  10 | PASCALS                  |-------------|
| XMGP10   |    0 |      -10000 |  20 | (METERS/SECOND)**2       |-------------|
|          |      |             |     |                          |-------------|
| WDIR     |    0 |           0 |   9 | DEGREES TRUE             |-------------|
| WSPD     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| UCMP     |    1 |       -4096 |  13 | METERS/SECOND            |-------------|
| VCMP     |    1 |       -4096 |  13 | METERS/SECOND            |-------------|
| WCMP     |    2 |       -4096 |  13 | METERS/SECOND            |-------------|
| MXGS     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| MWDL     |    0 |           0 |   9 | DEGREES TRUE             |-------------|
| MWSL     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| SDHS     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| SDVS     |    1 |           0 |   8 | METERS/SECOND            |-------------|
| AWSB     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| AWSA     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| PKWDDR   |    0 |           0 |   9 | DEGREES TRUE             |-------------|
| PKWDSP   |    1 |           0 |  12 | METERS/SECOND            |-------------|
| XS10     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| XS20     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| MWDH     |    0 |           0 |   9 | DEGREES TRUE             |-------------|
| MWSH     |    1 |           0 |  12 | METERS/SECOND            |-------------|
| WDRC     |    0 |           0 |   9 | DEGREES TRUE             |-------------|
| WDSC     |    1 |           0 |  12 | METERS/SECOND            |-------------|
|          |      |             |     |                          |-------------|
| TMDBST   |    1 |           0 |  12 | DEGREES KELVIN           |-------------|
| TMDB     |    2 |           0 |  16 | DEGREES KELVIN           |-------------|
| TMWB     |    2 |           0 |  16 | DEGREES KELVIN           |-------------|
| TMDP     |    2 |           0 |  16 | DEGREES KELVIN           |-------------|
| MXTM     |    2 |           0 |  16 | DEGREES KELVIN           |-------------|
| MITM     |    2 |           0 |  16 | DEGREES KELVIN           |-------------|
|          |      |             |     |                          |-------------|
| REHU     |    0 |           0 |   7 | %                        |-------------|
| TOPC     |    1 |          -1 |  14 | KG/METER**2              |-------------|
| REQV     |    4 |           0 |  12 | KG/((METERS**2)*SECONDS) |-------------|
| TP01     |    1 |          -1 |  14 | KG/METER**2              |-------------|
| TP03     |    1 |          -1 |  14 | KG/METER**2              |-------------|
| TP06     |    1 |          -1 |  14 | KG/METER**2              |-------------|
| TP12     |    1 |          -1 |  14 | KG/METER**2              |-------------|
| TP24     |    1 |          -1 |  14 | KG/METER**2              |-------------|
| INPC     |    0 |           0 |   3 | CODE TABLE               |-------------|
| STBS5    |    0 |         -40 |   8 | NUMERIC                  |-------------|
|          |      |             |     |                          |-------------|
| HOVI     |   -1 |           0 |  13 | METERS                   |-------------|
| PRWE     |    0 |           0 |   9 | CODE TABLE               |-------------|
| PSW1     |    0 |           0 |   5 | CODE TABLE               |-------------|
| PSW2     |    0 |           0 |   5 | CODE TABLE               |-------------|
| CLAM     |    0 |           0 |   4 | CODE TABLE               |-------------|
| CLTP     |    0 |           0 |   6 | CODE TABLE               |-------------|
| HOCB     |   -1 |         -40 |  11 | METERS                   |-------------|
|          |      |             |     |                          |-------------|
| SPP01    |    0 |           0 |   8 | DB                       |-------------|
|          |      |             |     |                          |-------------|
| DOSW     |    0 |           0 |   9 | DEGREES TRUE             |-------------|
| POWV     |    0 |           0 |   6 | SECONDS                  |-------------|
| POWW     |    0 |           0 |   6 | SECONDS                  |-------------|
| POSW     |    0 |           0 |   6 | SECONDS                  |-------------|
| HOWV     |    1 |           0 |  10 | METERS                   |-------------|
| HOWW     |    1 |           0 |  10 | METERS                   |-------------|
| HOSW     |    1 |           0 |  10 | METERS                   |-------------|
| SST1     |    2 |           0 |  15 | DEGREES KELVIN           |-------------|
|          |      |             |     |                          |-------------|
| NPHL     |    0 |           0 |   2 | CODE TABLE               |-------------|
| NPSM     |    0 |           0 |   2 | CODE TABLE               |-------------|
| NPQC     |    0 |           0 |   4 | FLAG TABLE               |-------------|
|          |      |             |     |                          |-------------|
| QCEVR    |    0 |           0 |   4 | CODE TABLE               |-------------|
| QMGP     |    0 |           0 |   4 | CODE TABLE               |-------------|
| QMAT     |    0 |           0 |   4 | CODE TABLE               |-------------|
| QMDD     |    0 |           0 |   4 | CODE TABLE               |-------------|
| QMWN     |    0 |           0 |   4 | CODE TABLE               |-------------|
| QMCA     |    0 |           0 |   1 | CODE TABLE               |-------------|
| UARDC    |    0 |           0 |   8 | CODE TABLE               |-------------|
| QMPR     |    0 |           0 |   4 | CODE TABLE               |-------------|
| CORN     |    0 |           0 |   3 | CODE TABLE               |-------------|
| QMST     |    0 |           0 |   4 | CODE TABLE               |-------------|
|          |      |             |     |                          |-------------|
| BULTIM   |    0 |           0 |  64 | CCITT IA5                |-------------|
| BBB      |    0 |           0 |  64 | CCITT IA5                |-------------|
| RRSTG    |    0 |           0 |  64 | CCITT IA5                |-------------|
|          |      |             |     |                          |-------------|
`------------------------------------------------------------------------------'