2 ! This file contains a module, which is used to pass around information
3 ! from the Vtable from one program component to another
8 ! We have parameterized the maximum number of variables we expect to want to
10 integer, parameter :: maxlines=100
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 = ' '
16 ! Array DUNITS holds the unit strings for the fields.
17 character (LEN=25), dimension(maxlines) :: Dunits = ' '
19 ! Array DDESC holds the description strings for the fields.
20 character (LEN=46), dimension(maxlines) :: Ddesc = ' '
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 = ' '
29 ! MAXVAR is the count of variables we have read. It is initialized to ZERO.
32 ! MAXOUT is the count of the variables we want to output.
33 ! Initialize it to zero.
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
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(5,maxlines) :: g2code
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
48 integer, dimension(maxlines) :: level1
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
53 integer, dimension(maxlines) :: level2
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
62 integer :: blankcode = -99
63 integer :: splatcode = -88