Update the NCEP g2 library to 1.2.4 and the w3 library to 2.0.1.
[WPS.git] / ungrib / src / ngl / g2 / params_ecmwf.f
blob916b03b1ddf6d46ffa681361f3377afd6802d2f7
1 module params_ecmwf
2 !$$$ SUBPROGRAM DOCUMENTATION BLOCK
3 ! . . . .
4 ! MODULE: params_ecmwf
5 ! PRGMMR: Gordon ORG: W/NP11 DATE: 2006-09-07
7 ! ABSTRACT: This Fortran Module contains info on all the available
8 ! ECMWF GRIB Parameters.
10 ! PROGRAM HISTORY LOG:
11 ! 2006-09-07 Gordon - Modified from Steve Gilbert's params.f for NCEP GRIB data
12 ! 2007-04-20 Vuong - Add more parameters
13 ! 2007-10-11 Vuong - Add more parameters
14 ! 2011-11-16 Vuong - Add parameters MAX and MIN temperature
16 ! USAGE: use params
18 ! ATTRIBUTES:
19 ! LANGUAGE: Fortran 90
20 ! MACHINE: IBM SP
22 !$$$
24 integer,parameter :: MAXPARAM=179
26 type gribparam
27 integer :: g1tblver
28 integer :: grib1val
29 integer :: grib2dsc
30 integer :: grib2cat
31 integer :: grib2num
32 character(len=8) :: abbrev
33 end type gribparam
35 type(gribparam),dimension(MAXPARAM) :: paramlist
37 data paramlist(1) /gribparam(128,1,255,255,255,'STRF ')/
38 data paramlist(2) /gribparam(128,002,255,255,255,'VPOT ')/
39 data paramlist(3) /gribparam(128,003,255,255,255,'THTA ')/
40 data paramlist(4) /gribparam(128,004,255,255,255,'THTE ')/
41 data paramlist(5) /gribparam(128,005,255,255,255,'THTS ')/
42 data paramlist(6) /gribparam(128,011,255,255,255,'UDVW ')/
43 data paramlist(7) /gribparam(128,012,255,255,255,'VDVW ')/
44 data paramlist(8) /gribparam(128,013,255,255,255,'URTW ')/
45 data paramlist(9) /gribparam(128,014,255,255,255,'VRTW ')/
46 data paramlist(10) /gribparam(128,021,255,255,255,'UCTP ')/
47 data paramlist(11) /gribparam(128,022,255,255,255,'UCLN ')/
48 data paramlist(12) /gribparam(128,023,255,255,255,'UCDV ')/
49 data paramlist(13) /gribparam(128,026,255,255,255,'CLAK ')/
50 data paramlist(14) /gribparam(128,027,255,255,255,'CVEGL ')/
51 data paramlist(15) /gribparam(128,028,255,255,255,'CVEGH ')/
52 data paramlist(16) /gribparam(128,029,255,255,255,'TVEGL ')/
53 data paramlist(17) /gribparam(128,030,255,255,255,'TVEGH ')/
54 data paramlist(18) /gribparam(128,031,255,255,255,'CSICE ')/
55 data paramlist(19) /gribparam(128,032,255,255,255,'ASNOW ')/
56 data paramlist(20) /gribparam(128,033,255,255,255,'RSNOW ')/
57 data paramlist(21) /gribparam(128,034,255,255,255,'SSTK ')/
58 data paramlist(22) /gribparam(128,035,255,255,255,'ISTL1 ')/
59 data paramlist(23) /gribparam(128,036,255,255,255,'ISTL2 ')/
60 data paramlist(24) /gribparam(128,037,255,255,255,'ISTL3 ')/
61 data paramlist(25) /gribparam(128,038,255,255,255,'ISTL4 ')/
62 data paramlist(26) /gribparam(128,039,255,255,255,'SWVL1 ')/
63 data paramlist(27) /gribparam(128,040,255,255,255,'SWVL2 ')/
64 data paramlist(28) /gribparam(128,041,255,255,255,'SWVL3 ')/
65 data paramlist(29) /gribparam(128,042,255,255,255,'SWVL4 ')/
66 data paramlist(30) /gribparam(128,043,255,255,255,'SOILT ')/
67 data paramlist(31) /gribparam(128,044,255,255,255,'ESNOW ')/
68 data paramlist(32) /gribparam(128,045,255,255,255,'SMLT ')/
69 data paramlist(33) /gribparam(128,046,255,255,255,'SDUR ')/
70 data paramlist(34) /gribparam(128,047,255,255,255,'DSRP ')/
71 data paramlist(35) /gribparam(128,048,255,255,255,'MAGSS ')/
72 data paramlist(36) /gribparam(128,049,255,255,255,'GUST ')/
73 data paramlist(37) /gribparam(128,050,255,255,255,'LSPF ')/
74 data paramlist(38) /gribparam(128,051,255,255,255,'TMXK24 ')/
75 data paramlist(39) /gribparam(128,052,255,255,255,'TMNK24 ')/
76 data paramlist(40) /gribparam(128,053,255,255,255,'MONT ')/
77 data paramlist(41) /gribparam(128,054,255,255,255,'PRES ')/
78 data paramlist(42) /gribparam(128,060,255,255,255,'PVOR ')/
79 data paramlist(43) /gribparam(128,127,255,255,255,'ATIDE ')/
80 data paramlist(44) /gribparam(128,128,255,255,255,'BVAL ')/
81 data paramlist(45) /gribparam(128,129,255,255,255,'HGHT ')/
82 data paramlist(46) /gribparam(128,130,0,0,0,'TMPK ')/
83 data paramlist(47) /gribparam(128,131,0,2,2,'UWND ')/
84 data paramlist(48) /gribparam(128,132,0,2,3,'VWND ')/
85 data paramlist(49) /gribparam(128,133,255,255,255,'SPCH ')/
86 data paramlist(50) /gribparam(128,134,255,255,255,'PRES ')/
87 data paramlist(51) /gribparam(128,135,255,255,255,'OMEG ')/
88 data paramlist(52) /gribparam(128,136,255,255,255,'TCWTR ')/
89 data paramlist(53) /gribparam(128,137,255,255,255,'TCWV ')/
90 data paramlist(54) /gribparam(128,138,255,255,255,'VORT ')/
91 data paramlist(55) /gribparam(128,139,255,255,255,'STL1 ')/
92 data paramlist(56) /gribparam(128,140,255,255,255,'SWL1 ')/
93 data paramlist(57) /gribparam(128,141,255,255,255,'SNOWD ')/
94 data paramlist(58) /gribparam(128,142,255,255,255,'S--M ')/
95 data paramlist(59) /gribparam(128,143,255,255,255,'C--M ')/
96 data paramlist(60) /gribparam(128,144,255,255,255,'SNOW ')/
97 data paramlist(61) /gribparam(128,145,255,255,255,'BLDS ')/
98 data paramlist(62) /gribparam(128,146,255,255,255,'SSHF ')/
99 data paramlist(63) /gribparam(128,147,255,255,255,'SLHF ')/
100 data paramlist(64) /gribparam(128,148,255,255,255,'CHNK ')/
101 data paramlist(65) /gribparam(128,149,255,255,255,'SNRAD ')/
102 data paramlist(66) /gribparam(128,150,255,255,255,'TNRAD ')/
103 data paramlist(67) /gribparam(128,151,0,3,1,'PMSL ')/
104 data paramlist(68) /gribparam(128,152,255,255,255,'LNSP ')/
105 data paramlist(69) /gribparam(128,153,255,255,255,'SWHR ')/
106 data paramlist(70) /gribparam(128,154,255,255,255,'LWHR ')/
107 data paramlist(71) /gribparam(128,155,255,255,255,'DIVG ')/
108 data paramlist(72) /gribparam(128,156,0,3,5,'HGHT ')/
109 data paramlist(73) /gribparam(128,157,0,1,1,'RELH ')/
110 data paramlist(74) /gribparam(128,158,255,255,255,'TSPRES ')/
111 data paramlist(75) /gribparam(128,159,255,255,255,'BLHGHT ')/
112 data paramlist(76) /gribparam(128,160,255,255,255,'SDOR ')/
113 data paramlist(77) /gribparam(128,161,255,255,255,'ISOR ')/
114 data paramlist(78) /gribparam(128,162,255,255,255,'ANOR ')/
115 data paramlist(79) /gribparam(128,163,255,255,255,'SLOR ')/
116 data paramlist(80) /gribparam(128,164,0,6,1,'TCLD ')/
117 data paramlist(81) /gribparam(128,165,0,2,2,'UWND ')/
118 data paramlist(82) /gribparam(128,166,0,2,3,'VWND ')/
119 data paramlist(83) /gribparam(128,167,0,0,0,'TMPK ')/
120 data paramlist(84) /gribparam(128,168,0,0,6,'DWPK ')/
121 data paramlist(85) /gribparam(128,169,255,255,255,'SSRD ')/
122 data paramlist(86) /gribparam(128,170,255,255,255,'STL2 ')/
123 data paramlist(87) /gribparam(128,171,255,255,255,'SWL2 ')/
124 data paramlist(88) /gribparam(128,172,255,255,255,'LAND ')/
125 data paramlist(89) /gribparam(128,173,255,255,255,'SROUGH ')/
126 data paramlist(90) /gribparam(128,174,255,255,255,'ALBD ')/
127 data paramlist(91) /gribparam(128,175,255,255,255,'STRD ')/
128 data paramlist(92) /gribparam(128,176,255,255,255,'SSRAD ')/
129 data paramlist(93) /gribparam(128,177,255,255,255,'STRAD ')/
130 data paramlist(94) /gribparam(128,178,255,255,255,'TSRAD ')/
131 data paramlist(95) /gribparam(128,179,255,255,255,'TTRAD ')/
132 data paramlist(96) /gribparam(128,180,255,255,255,'EWSS ')/
133 data paramlist(97) /gribparam(128,181,255,255,255,'NSSS ')/
134 data paramlist(98) /gribparam(128,182,255,255,255,'EVAP ')/
135 data paramlist(99) /gribparam(128,183,255,255,255,'STL3 ')/
136 data paramlist(100) /gribparam(128,184,255,255,255,'SWL3 ')/
137 data paramlist(101) /gribparam(128,185,255,255,255,'CCLD ')/
138 data paramlist(102) /gribparam(128,186,255,255,255,'LCLD ')/
139 data paramlist(103) /gribparam(128,187,255,255,255,'MCLD ')/
140 data paramlist(104) /gribparam(128,188,255,255,255,'HCLD ')/
141 data paramlist(105) /gribparam(128,189,255,255,255,'SUND ')/
142 data paramlist(106) /gribparam(128,190,255,255,255,'EWOV ')/
143 data paramlist(107) /gribparam(128,191,255,255,255,'NSOV ')/
144 data paramlist(108) /gribparam(128,192,255,255,255,'NWOV ')/
145 data paramlist(109) /gribparam(128,193,255,255,255,'NEOV ')/
146 data paramlist(110) /gribparam(128,194,255,255,255,'BTMP ')/
147 data paramlist(111) /gribparam(128,195,255,255,255,'LGWS ')/
148 data paramlist(112) /gribparam(128,196,255,255,255,'MGWS ')/
149 data paramlist(113) /gribparam(128,197,255,255,255,'GWDS ')/
150 data paramlist(114) /gribparam(128,198,255,255,255,'SKRC ')/
151 data paramlist(115) /gribparam(128,199,255,255,255,'VEGE ')/
152 data paramlist(116) /gribparam(128,200,255,255,255,'VSGO ')/
153 data paramlist(117) /gribparam(128,201,0,0,4,'TMXK ')/
154 data paramlist(118) /gribparam(128,202,0,0,5,'TMNK ')/
155 data paramlist(119) /gribparam(128,203,255,255,255,'OZMR ')/
156 data paramlist(120) /gribparam(128,204,255,255,255,'PRAW ')/
157 data paramlist(121) /gribparam(128,205,255,255,255,'RUNOFF ')/
158 data paramlist(122) /gribparam(128,206,255,255,255,'TCOZ ')/
159 data paramlist(123) /gribparam(128,207,255,255,255,'SPED ')/
160 data paramlist(124) /gribparam(128,208,255,255,255,'TSRC ')/
161 data paramlist(125) /gribparam(128,209,255,255,255,'TTRC ')/
162 data paramlist(126) /gribparam(128,210,255,255,255,'SSRC ')/
163 data paramlist(127) /gribparam(128,211,255,255,255,'STRC ')/
164 data paramlist(128) /gribparam(128,212,255,255,255,'SINSOL ')/
165 data paramlist(129) /gribparam(128,214,255,255,255,'DHRAD ')/
166 data paramlist(130) /gribparam(128,215,255,255,255,'DHVD ')/
167 data paramlist(131) /gribparam(128,216,255,255,255,'DHCC ')/
168 data paramlist(132) /gribparam(128,217,255,255,255,'DHLC ')/
169 data paramlist(133) /gribparam(128,218,255,255,255,'VDZW ')/
170 data paramlist(134) /gribparam(128,219,255,255,255,'VDMW ')/
171 data paramlist(135) /gribparam(128,220,255,255,255,'EWGD ')/
172 data paramlist(136) /gribparam(128,221,255,255,255,'NSGD ')/
173 data paramlist(137) /gribparam(128,222,255,255,255,'CTZW ')/
174 data paramlist(138) /gribparam(128,223,255,255,255,'CTMW ')/
175 data paramlist(139) /gribparam(128,224,255,255,255,'VDHUM ')/
176 data paramlist(140) /gribparam(128,225,255,255,255,'HTCC ')/
177 data paramlist(141) /gribparam(128,226,255,255,255,'HTLC ')/
178 data paramlist(142) /gribparam(128,227,255,255,255,'CRNH ')/
179 data paramlist(143) /gribparam(128,228,0,1,8,'A PCP ')/
180 data paramlist(144) /gribparam(128,229,255,255,255,'IEWS ')/
181 data paramlist(145) /gribparam(128,230,255,255,255,'INSS ')/
182 data paramlist(146) /gribparam(128,231,255,255,255,'ISHF ')/
183 data paramlist(147) /gribparam(128,232,255,255,255,'MFLUX ')/
184 data paramlist(148) /gribparam(128,233,255,255,255,'ASHUM ')/
185 data paramlist(149) /gribparam(128,234,255,255,255,'LSRH ')/
186 data paramlist(150) /gribparam(128,235,255,255,255,'SKTMP ')/
187 data paramlist(151) /gribparam(128,236,255,255,255,'STL4 ')/
188 data paramlist(152) /gribparam(128,237,255,255,255,'SWL4 ')/
189 data paramlist(153) /gribparam(128,238,255,255,255,'TSNOW ')/
190 data paramlist(154) /gribparam(128,239,255,255,255,'CSNOWF ')/
191 data paramlist(155) /gribparam(128,240,255,255,255,'LSNOWF ')/
192 data paramlist(156) /gribparam(128,241,255,255,255,'ACLD ')/
193 data paramlist(157) /gribparam(128,242,255,255,255,'ALWTND ')/
194 data paramlist(158) /gribparam(128,243,255,255,255,'FALBD ')/
195 data paramlist(159) /gribparam(128,244,255,255,255,'FSROUGH ')/
196 data paramlist(160) /gribparam(128,245,255,255,255,'FLSR ')/
197 data paramlist(161) /gribparam(128,246,255,255,255,'CLWC ')/
198 data paramlist(162) /gribparam(128,247,255,255,255,'CIWC ')/
199 data paramlist(163) /gribparam(128,248,255,255,255,'CLOUD ')/
200 data paramlist(164) /gribparam(128,249,255,255,255,'AIWTND ')/
201 data paramlist(165) /gribparam(128,250,255,255,255,'ICEAGE ')/
202 data paramlist(166) /gribparam(128,251,255,255,255,'ATTE ')/
203 data paramlist(167) /gribparam(128,252,255,255,255,'ATHE ')/
204 data paramlist(168) /gribparam(128,253,255,255,255,'ATZE ')/
205 data paramlist(169) /gribparam(128,254,255,255,255,'ATMW ')/
206 data paramlist(170) /gribparam(128,255,255,255,255,'MISS ')/
207 ! Added 4/20/2007 - For missing GRIB1 to GRIB2 conversions
208 data paramlist(171) /gribparam(1,33,0,2,2,'U GRD ')/
209 data paramlist(172) /gribparam(1,34,0,2,3,'V GRD ')/
210 data paramlist(173) /gribparam(1,2,0,3,1,'PRMSL ')/
211 data paramlist(174) /gribparam(1,7,0,3,5,'HGT ')/
212 ! Added 10/11/2007- Add more parameters
213 data paramlist(175) /gribparam(1,11,0,0,0,'TMP ')/
214 data paramlist(176) /gribparam(1,52,0,1,1,'R H ')/
215 data paramlist(177) /gribparam(1,41,0,2,10,'ABS V ')/
216 ! Added 11/16/2011- Add more parameters
217 data paramlist(178) /gribparam(128,121,0,0,4,'TMXK ')/
218 data paramlist(179) /gribparam(128,122,0,0,5,'TMNK ')/
220 contains
223 subroutine param_ecmwf_g1_to_g2(g1val,g1ver,g2disc,g2cat,g2num)
224 !$$$ SUBPROGRAM DOCUMENTATION BLOCK
225 ! . . . .
226 ! SUBPROGRAM: param_ecmwf_g1_to_g2
227 ! PRGMMR: Gilbert ORG: W/NP11 DATE: 2001-06-05
229 ! ABSTRACT: This subroutine returns the corresponding GRIB2 Discipline
230 ! Category and Number for a given GRIB1 parameter value and table version.
232 ! PROGRAM HISTORY LOG:
233 ! 2000-05-11 Gilbert
235 ! USAGE: CALL param_ecmwf_g1_to_g2(g1val,g1ver,g2disc,g2cat,g2num)
236 ! INPUT ARGUMENT LIST:
237 ! g1val - GRIB1 parameter number for which discipline is requested
238 ! g1ver - GRIB1 parameter table version number
240 ! OUTPUT ARGUMENT LIST:
241 ! g2disc - corresponding GRIB2 Discipline number
242 ! g2cat - corresponding GRIB2 Category number
243 ! g2num - corresponding GRIB2 Parameter number within Category g2cat
245 ! ATTRIBUTES:
246 ! LANGUAGE: Fortran 90
247 ! MACHINE: IBM SP
249 !$$$
250 integer,intent(in) :: g1val,g1ver
251 integer,intent(out) :: g2disc,g2cat,g2num
253 g2disc=255
254 g2cat=255
255 g2num=255
256 ! for testing
257 ! g2num=g1val
258 ! for testing
260 do n=1,MAXPARAM
261 if ( paramlist(n)%grib1val.eq.g1val .AND.
262 & paramlist(n)%g1tblver.eq.g1ver ) then
263 g2disc=paramlist(n)%grib2dsc
264 g2cat=paramlist(n)%grib2cat
265 g2num=paramlist(n)%grib2num
266 c print *,g2disc
267 c print *,g2cat
268 c print *,g2num
269 return
270 endif
271 enddo
273 print *,'param_ecmwf_g1_to_g2:GRIB1 param ',g1val,
274 & ' not found.',
275 & ' for table version ',g1ver
276 return
277 end subroutine
280 subroutine param_ecmwf_g2_to_g1(g2disc,g2cat,g2num,g1val,g1ver)
281 !$$$ SUBPROGRAM DOCUMENTATION BLOCK
282 ! . . . .
283 ! SUBPROGRAM: param_ecmwf_g2_to_g1
284 ! PRGMMR: Gilbert ORG: W/NP11 DATE: 2002-01-04
286 ! ABSTRACT: This function returns the GRIB 1 parameter number for
287 ! a given GRIB2 Discipline, Category and Parameter number.
289 ! PROGRAM HISTORY LOG:
290 ! 2001-06-05 Gilbert
292 ! USAGE: call param_ecmwf_g2_to_g1(g2disc,g2cat,g2num,g1val,g1ver)
293 ! INPUT ARGUMENT LIST:
294 ! g2disc - GRIB2 discipline number (See Code Table 0.0)
295 ! g2cat - corresponding GRIB2 Category number
296 ! g2num - corresponding GRIB2 Parameter number within Category g2cat
298 ! OUTPUT ARGUMENT LIST:
299 ! g1val - GRIB1 parameter number for which discipline is requested
300 ! g1ver - GRIB1 parameter table version number
302 ! REMARKS: None
304 ! ATTRIBUTES:
305 ! LANGUAGE: Fortran 90
306 ! MACHINE: IBM SP
308 !$$$
309 integer,intent(in) :: g2disc,g2cat,g2num
310 integer,intent(out) :: g1val,g1ver
312 g1val=255
313 g1ver=255
315 ! for testing
316 ! if ( g2disc.eq.255.and.g2cat.eq.255 ) then
317 ! g1val=g2num
318 ! g1ver=2
319 ! return
320 ! endif
321 ! for testing
323 do n=1,MAXPARAM
324 if (paramlist(n)%grib2dsc.eq.g2disc.AND.
325 & paramlist(n)%grib2cat.eq.g2cat.AND.
326 & paramlist(n)%grib2num.eq.g2num) then
327 g1val=paramlist(n)%grib1val
328 g1ver=paramlist(n)%g1tblver
329 return
330 endif
331 enddo
333 print *,'param_ecmwf_g2_to_g1:GRIB2 param ',g2disc,g2cat,
334 & g2num,' not found.'
335 return
336 end subroutine
339 end module