NCEPLIBS-bufr  11.7.0
 All Data Structures Files Functions Variables Pages
moda_tables.F
Go to the documentation of this file.
1 C> @file
2 C> @brief Declare arrays for internal storage of jump/link table.
3 
4 C> This module contains array and variable declarations used to
5 C> store the internal jump/link table.
6 C>
7 C> <p>Data values within this module are stored by subroutines
8 C> makestab(), tabsub() and tabent().
9 C>
10 C> @author J. Ator
11 C> @date 2014-12-10
12 
13  MODULE moda_tables
14 
15 #ifndef MAXJL_H
16 #define MAXJL_H
17  USE modv_maxjl
18 #endif
19 
20 C> @var maxtab
21 C> Maximum number of entries in the jump/link table;
22 C> equivalent to MAXJL.
23 C>
24 C> @var ntab
25 C> Number of entries in the jump/link table.
26 C>
27 C> @var tag
28 C> Mnemonics in the jump/link table.
29 C>
30 C> @var typ
31 C> Type indicators corresponding to tag:
32 C> - "SUB", if corresponding tag entry is a Table A mnemonic
33 C> - "SEQ", if corresponding tag entry is a Table D mnemonic
34 C> using either short (1-bit) delayed replication, regular
35 C> (non-delayed) replication, or no replication at all
36 C> - "RPC", if corresponding tag entry is a Table D mnemonic
37 C> using either medium (8-bit) or long (16-bit) delayed
38 C> replication
39 C> - "RPS", if corresponding tag entry is a Table D mnemonic
40 C> using medium (8-bit) delayed replication in a stack
41 C> - "DRB", if corresponding tag entry denotes the short (1-bit)
42 C> delayed replication of a Table D mnemonic
43 C> - "DRP", if corresponding tag entry denotes the medium (8-bit)
44 C> or long (16-bit) delayed replication of a Table D mnemonic
45 C> - "DRS", if corresponding tag entry denotes the medium (8-bit)
46 C> delayed replication of a Table D mnemonic in a stack
47 C> - "REP", if corresponding tag entry denotes the regular
48 C> (non-delayed) replication of a Table D mnemonic
49 C> - "CHR", if corresponding tag entry is a Table B mnemonic
50 C> with units of CCITT IA5
51 C> - "NUM", if corresponding tag entry is a Table B mnemonic
52 C> with any units other than CCITT IA5
53 C>
54 C> @var jump
55 C> Jump forward indices corresponding to tag and typ:
56 C> - 0, if corresponding typ entry is "CHR" or "NUM"
57 C> - Jump/link table entry for Table D mnemonic whose replication
58 C> is denoted by corresponding tag entry, if corresponding typ
59 C> entry is "DRB", "DRP" or "REP"
60 C> - Jump/link table entry for Table B or D mnemonic which is
61 C> the first sequential child descriptor of the corresponding
62 C> tag entry, otherwise
63 C>
64 C> @var jmpb
65 C> Jump backward indices corresponding to tag and typ:
66 C> - 0, if corresponding typ entry is "SUB"
67 C> - Jump/link table entry denoting the replication of
68 C> corresponding tag entry, if corresponding typ entry is
69 C> "RPC", or if corresponding typ entry is "SEQ" and
70 C> corresponding tag entry uses either short (1-bit) or
71 C> regular (non-delayed) replication
72 C> - Jump/link table entry for Table A or D mnemonic of
73 C> which corresponding tag entry is a child descriptor,
74 C> otherwise
75 C>
76 C> @var link
77 C> Link indices corresponding to tag, typ and jmpb:
78 C> - 0, if corresponding typ entry is "SUB" or "RPC", or if
79 C> corresponding typ entry is "SEQ" and corresponding tag
80 C> entry uses either short (1-bit) or regular (non-delayed)
81 C> replication, or if corresponding tag entry is the last
82 C> sequential child descriptor of the Table A or D
83 C> mnemonic referenced by corresponding jmpb entry
84 C> - Jump/link table entry for Table B or D mnemonic which
85 C> follows the corresponding tag entry as the next sequential
86 C> child descriptor of the Table A or D mnemonic referenced
87 C> by corresponding jmpb entry, otherwise
88 C>
89 C> @var ibt
90 C> Bit widths corresponding to tag and typ:
91 C> - Bit width of corresponding tag entry, if corresponding
92 C> typ entry is "CHR", "NUM", "DRB" or "DRP"
93 C> - 0, otherwise
94 C>
95 C> @var irf
96 C> Reference values corresponding to tag and typ:
97 C> - Reference value of corresponding tag entry, if
98 C> corresponding typ entry is "NUM"
99 C> - Number of regular (non-delayed) replications of Table D
100 C> mnemonic referenced by corresponding jump entry, if
101 C> corresponding typ entry is "REP"
102 C> - 0, otherwise
103 C>
104 C> @var isc
105 C> Scale factors corresponding to tag and typ:
106 C> - Scale factor of corresponding tag entry, if
107 C> corresponding typ entry is "NUM"
108 C> - Jump/link table entry for Table B or Table D mnemonic
109 C> which is the last sequential child descriptor of the
110 C> corresponding tag entry, if the corresponding typ entry
111 C> is "SUB"
112 C> - 0, otherwise
113 C>
114 C> @var itp
115 C> Integer type values corresponding to typ:
116 C> - 1, if corresponding typ entry is "DRS", "DRP" or "DRB"
117 C> - 2, if corresponding typ entry is "NUM"
118 C> - 3, if corresponding typ entry is "CHR"
119 C> - 0, otherwise
120 C>
121 C> @var vali
122 C> Initialized data values corresponding to typ:
123 C> - Current placeholder value for "missing" data, if
124 C> corresponding typ entry is "REP", "NUM" or "CHR"
125 C> - 0, otherwise
126 C>
127 C> @var knti
128 C> Initialized replication counts corresponding to typ and jump:
129 C> - 0, if corresponding typ entry is "RPC", "RPS" or "DRB"
130 C> - Number of regular (non-delayed) replications of Table D
131 C> mnemonic referenced by corresponding jump entry, if
132 C> corresponding typ entry is "REP"
133 C> - 1, otherwise
134 
135  INTEGER :: MAXTAB
136  INTEGER :: NTAB
137  CHARACTER*10, ALLOCATABLE :: TAG(:)
138  CHARACTER*3, ALLOCATABLE :: TYP(:)
139  INTEGER, ALLOCATABLE :: KNT(:)
140  INTEGER, ALLOCATABLE :: JUMP(:)
141  INTEGER, ALLOCATABLE :: LINK(:)
142  INTEGER, ALLOCATABLE :: JMPB(:)
143  INTEGER, ALLOCATABLE :: IBT(:)
144  INTEGER, ALLOCATABLE :: IRF(:)
145  INTEGER, ALLOCATABLE :: ISC(:)
146  INTEGER, ALLOCATABLE :: ITP(:)
147  REAL*8, ALLOCATABLE :: VALI(:)
148  INTEGER, ALLOCATABLE :: KNTI(:)
149  INTEGER, ALLOCATABLE :: ISEQ(:,:)
150  INTEGER, ALLOCATABLE :: JSEQ(:)
151 
152  END MODULE
This module declares and initializes the MAXJL variable.
Definition: modv_MAXJL.f:13
This module contains array and variable declarations used to store the internal jump/link table...
Definition: moda_tables.F:13