1 | ! |
---|
2 | ! This file contains a module, which is used to pass around information |
---|
3 | ! from the Vtable from one program component to another |
---|
4 | ! |
---|
5 | module Table |
---|
6 | implicit none |
---|
7 | |
---|
8 | ! We have parameterized the maximum number of variables we expect to want to |
---|
9 | ! read: |
---|
10 | integer, parameter :: maxlines=100 |
---|
11 | |
---|
12 | ! Each variable has a name. The names are stored in array NAMVAR. |
---|
13 | ! Initialize the NAMVAR field to blanks: |
---|
14 | character (LEN=9) , dimension(maxlines) :: namvar = ' ' |
---|
15 | |
---|
16 | ! Array DUNITS holds the unit strings for the fields. |
---|
17 | character (LEN=25), dimension(maxlines) :: Dunits = ' ' |
---|
18 | |
---|
19 | ! Array DDESC holds the description strings for the fields. |
---|
20 | character (LEN=46), dimension(maxlines) :: Ddesc = ' ' |
---|
21 | |
---|
22 | ! Most of the fields are output, but some are not. The names of the |
---|
23 | ! fields we want to output are stored in NAMEOUT. Initialize the |
---|
24 | ! NAMEOUT field to blanks: |
---|
25 | character (LEN=9) , dimension(maxlines) :: nameout = ' ' |
---|
26 | character (LEN=25), dimension(maxlines) :: unitout = ' ' |
---|
27 | character (LEN=46), dimension(maxlines) :: descout = ' ' |
---|
28 | |
---|
29 | ! MAXVAR is the count of variables we have read. It is initialized to ZERO. |
---|
30 | integer :: maxvar = 0 |
---|
31 | |
---|
32 | ! MAXOUT is the count of the variables we want to output. |
---|
33 | ! Initialize it to zero. |
---|
34 | integer :: maxout = 0 |
---|
35 | |
---|
36 | ! Array GCODE holds the GRIB1 param numbers of the fields we want to access: |
---|
37 | integer, dimension(maxlines) :: gcode |
---|
38 | ! Array LCODE holds the GRIB1 level types of the params we want to access: |
---|
39 | integer, dimension(maxlines) :: lcode |
---|
40 | |
---|
41 | ! Array G2_GCODE holds the GRIB2 param numbers of the fields we want to access |
---|
42 | ! and the GRIB2 level types of the params we want to access: |
---|
43 | integer, dimension(4,maxlines) :: g2code |
---|
44 | |
---|
45 | ! Array LEVEL1 holds the Level-1 values of the fields we want: |
---|
46 | ! If the Vtable has a '*' for the Level-1 value, LEVEL1 has |
---|
47 | ! the value -99. |
---|
48 | integer, dimension(maxlines) :: level1 |
---|
49 | |
---|
50 | ! Array LEVEL2 holds the Level-2 values of the fields we want. |
---|
51 | ! If LEVEL2 is not needed for a particular field, it is set to |
---|
52 | ! -99. |
---|
53 | integer, dimension(maxlines) :: level2 |
---|
54 | |
---|
55 | ! Array IPRTY holds the priority values of the fields: |
---|
56 | ! Priorities are used with surface fields, when we have |
---|
57 | ! encountered the situation where a field may be stored in two different |
---|
58 | ! ways in a file. Ultimately, the field with the lower priority number |
---|
59 | ! (i.e., higher priority) is what is output. |
---|
60 | integer, dimension(maxlines) :: iprty |
---|
61 | |
---|
62 | integer :: blankcode = -99 |
---|
63 | integer :: splatcode = -88 |
---|
64 | |
---|
65 | end module Table |
---|