NCEPLIBS-g2tmpl  1.10.0
grib2_all_tables_module.f90
Go to the documentation of this file.
1 
4 
24  implicit none
25 
27  integer, parameter :: maxsubcen=100
29  integer, parameter :: maxver=100
31  integer, parameter :: maxlocver=20
33  integer, parameter :: maxreftime=15
35  integer, parameter :: maxprodstatus=17
37  integer, parameter :: maxtypeofdata=100
39  integer, parameter :: maxtypeofgenproc=100
41  integer, parameter :: maxtypeofensfcst=100
43  integer, parameter :: maxtypeofderivefcst=100
45  integer, parameter :: maxfixedsurfacetypes=200
47  integer, parameter :: maxunitoftimerange=30
49  integer, parameter :: maxgenproc=250
51  integer, parameter :: maxorigincenters=500
53  integer, parameter :: maxtypeoforigfieldval=15
55  integer, parameter :: maxtypeofcompression=50
57  integer, parameter :: maxtypeofpackingmethod=50
59  integer, parameter :: maxstatprocesstypes=50
61  integer, parameter :: maxtypeoftimeintvls=50
63  integer, parameter :: maxtypeofprob=100
65  integer, parameter :: maxtypeofprecip=100
67  integer, parameter :: maxtypeofcluster=100
69  integer, parameter :: maxtypeofaerosol=200
71  integer, parameter :: maxtypeofintvls=50
73  integer, parameter :: maxordofsptdiff=50
74 
76  character(len=20) :: subcenkey
77  integer :: subcenval
78  end type subcenters
79 
81  type(subcenters), dimension(MAXSUBCEN) :: tablec
82 
83  data tablec(1) /subcenters('ncep_reanl',1)/
84  data tablec(2) /subcenters('ncep_ensem',2)/
85  data tablec(3) /subcenters('ncep_nco',3)/
86  data tablec(4) /subcenters('ncep_emc',4)/
87  data tablec(5) /subcenters('ncep_wpc',5)/
88  data tablec(6) /subcenters('ncep_opc',6)/
89  data tablec(7) /subcenters('ncep_cpc',7)/
90  data tablec(8) /subcenters('ncep_awc',8)/
91  data tablec(9) /subcenters('ncep_spc',9)/
92  data tablec(10) /subcenters('ncep_nhc',10)/
93  data tablec(11) /subcenters('nws_tdl',11)/
94  data tablec(12) /subcenters('nesdis_ora',12)/
95  data tablec(13) /subcenters('faa',13)/
96  data tablec(14) /subcenters('nws_mdl',14)/
97  data tablec(15) /subcenters('narr',15)/
98  data tablec(16) /subcenters('swpc',16)/
99  !
100  ! Added Sub-Center (06/26/2019)
101  !
102  data tablec(17) /subcenters('esrl',17)/
103 
105  character(len=20) :: verskey
106  integer :: versval
107  end type version_no
108 
110  type(version_no),dimension(MAXVER) :: table1_0
111 
112  data table1_0(1) /version_no('expt',0)/
113  data table1_0(2) /version_no('v2001',1)/
114  data table1_0(3) /version_no('v2003',2)/
115  data table1_0(4) /version_no('v2005',3)/
116  data table1_0(5) /version_no('v2007',4)/
117  data table1_0(6) /version_no('v2009',5)/
118  data table1_0(7) /version_no('v2010',6)/
119  data table1_0(8) /version_no('v052011',7)/
120  data table1_0(9) /version_no('v112011',8)/
121  data table1_0(10) /version_no('v052012',9)/
122  data table1_0(11) /version_no('v112012',10)/
123  data table1_0(12) /version_no('v052013',11)/
124  data table1_0(13) /version_no('v112013',12)/
125  data table1_0(14) /version_no('v052014',13)/
126  data table1_0(15) /version_no('v112014',14)/
127  data table1_0(16) /version_no('v052015',15)/
128  data table1_0(17) /version_no('v112015',16)/
129  data table1_0(18) /version_no('v052016',17)/
130  data table1_0(19) /version_no('v112016',18)/
131  data table1_0(20) /version_no('v052017',19)/
132  data table1_0(21) /version_no('v112017',20)/
133  data table1_0(22) /version_no('v052018',21)/
134  data table1_0(23) /version_no('v112018',22)/
135  data table1_0(24) /version_no('v052019',23)/
136  data table1_0(25) /version_no('v112019',24)/
137  data table1_0(26) /version_no('v052020',25)/
138  data table1_0(27) /version_no('v112020',26)/
139  data table1_0(28) /version_no('v052021',27)/
140  data table1_0(29) /version_no('v112021',28)/
141  data table1_0(30) /version_no('preoper',29)/
142  !
143  !
145  character(len=20) :: locverskey
146  integer :: locversval
147  end type local_table_vers_no
148 
150  type(local_table_vers_no),dimension(MAXLOCVER) :: table1_1
151  !
152  data table1_1(1) /local_table_vers_no('local_tab_no',0)/
153  data table1_1(2) /local_table_vers_no('local_tab_yes1',1)/
154  data table1_1(3) /local_table_vers_no('local_tab_yes2',2)/
155  data table1_1(4) /local_table_vers_no('local_tab_yes3',3)/
156  data table1_1(5) /local_table_vers_no('local_tab_yes4',4)/
157  data table1_1(6) /local_table_vers_no('local_tab_yes5',5)/
158  data table1_1(7) /local_table_vers_no('missing',255)/
159  !
160  !
162  character(len=20) :: sigrefkey
163  integer :: sigrefval
164  end type sigreftime
165 
166  ! Declare a variable of type discipline
167 
169  type(sigreftime),dimension(MAXREFTIME) :: table1_2
170 
171  data table1_2(1) /sigreftime('anal',0)/
172  data table1_2(2) /sigreftime('fcst',1)/
173  data table1_2(3) /sigreftime('vfcst',2)/
174  data table1_2(4) /sigreftime('obstime',3)/
175  data table1_2(5) /sigreftime('missing',255)/
176  !
177  !
179  character(len=20) :: prodstatuskey
180  integer :: prodstatusval
181  end type prod_status
182 
183  ! Declare a variable of type discipline
184 
186  type(prod_status),dimension(MAXPRODSTATUS) :: table1_3
187 
188  data table1_3(1) /prod_status('oper',0)/
189  data table1_3(2) /prod_status('oper_test',1)/
190  data table1_3(3) /prod_status('res',2)/
191  data table1_3(4) /prod_status('reanal',3)/
192  data table1_3(5) /prod_status('tigge',4)/
193  data table1_3(6) /prod_status('tigge_test',5)/
194  data table1_3(7) /prod_status('missing',255)/
195  data table1_3(8) /prod_status('s2s_oper',6)/
196  data table1_3(9) /prod_status('s2s_test',7)/
197  data table1_3(10) /prod_status('unens_rreanl',8)/
198  data table1_3(11) /prod_status('unens_rreanl_test',9)/
199  !
200  !
202  character(len=20) :: typeofdatakey
203  integer :: typeofdataval
204  end type type_of_data
205  !
207  type(type_of_data),dimension(MAXTYPEOFDATA) :: table1_4
208 
209  data table1_4(1) /type_of_data('anal',0)/
210  data table1_4(2) /type_of_data('fcst',1)/
211  data table1_4(3) /type_of_data('anal_fcst',2)/
212  data table1_4(4) /type_of_data('con_fcst',3)/
213  data table1_4(5) /type_of_data('per_fcst',4)/
214  data table1_4(6) /type_of_data('con_per_fcst',5)/
215  data table1_4(7) /type_of_data('proc_sat_obs',6)/
216  data table1_4(8) /type_of_data('proc_rad_obs',7)/
217  data table1_4(9) /type_of_data('event_prob',8)/
218  data table1_4(10) /type_of_data('missing',255)/
219  data table1_4(11) /type_of_data('experimental_products',192)/
220  !
221  !
223  character(len=30) :: typeofgenprockey
224  integer :: typeofgenprocval
225  end type type_of_gen_proc
226  ! 2015/09/02 Boi Vuong Added 4 type of aerosols in table4_233
227  ! 2019/06/25 Boi Vuong Added new entries 197,198,199 in table4_3
228 
229  !
231  type(type_of_gen_proc),dimension(MAXTYPEOFGENPROC) :: table4_3
232 
233  data table4_3(1) /type_of_gen_proc('anal',0)/
234  data table4_3(2) /type_of_gen_proc('init',1)/
235  data table4_3(3) /type_of_gen_proc('fcst',2)/
236  data table4_3(4) /type_of_gen_proc('bias_corr_fcst',3)/
237  data table4_3(5) /type_of_gen_proc('ens_fcst',4)/
238  data table4_3(6) /type_of_gen_proc('prob_fcst',5)/
239  data table4_3(7) /type_of_gen_proc('fcst_err',6)/
240  data table4_3(8) /type_of_gen_proc('anal_err',7)/
241  data table4_3(9) /type_of_gen_proc('obs',8)/
242  data table4_3(10) /type_of_gen_proc('clim',9)/
243  data table4_3(11) /type_of_gen_proc('prob_wt_fcst',10)/
244  data table4_3(12) /type_of_gen_proc('fcst_con_ind',192)/
245  data table4_3(13) /type_of_gen_proc('bias_corr_ens_fcst',11)/
246  data table4_3(14) /type_of_gen_proc('missing',255)/
247  data table4_3(15) /type_of_gen_proc('post_proc_anal',12)/
248  data table4_3(16) /type_of_gen_proc('post_proc_fcst',13)/
249  data table4_3(17) /type_of_gen_proc('nowcast',14)/
250  data table4_3(18) /type_of_gen_proc('hincsast',15)/
251  data table4_3(19) /type_of_gen_proc('physical_retrieval',16)/
252  data table4_3(20) /type_of_gen_proc('regression_analysis',17)/
253  data table4_3(21) /type_of_gen_proc('difference_two_forecasts',18)/
254  data table4_3(22) /type_of_gen_proc('prob_matched_mean',193)/
255  data table4_3(23) /type_of_gen_proc('neighborhood_prob',194)/
256  data table4_3(24) /type_of_gen_proc('bias_corrected_downscale',195)/
257  data table4_3(25) /type_of_gen_proc('perturbed_analysis',196)/
258  !
259  ! Added Generating Process (06/26/2019)
260  !
261  data table4_3(26) /type_of_gen_proc('ens_scale_prob',197)/
262  data table4_3(27) /type_of_gen_proc('post_dew_fcst',198)/
263  data table4_3(28) /type_of_gen_proc('ens_fcst_base',199)/
264  !
265  ! Added Generating Process (04/20/2021)
266  !
267  data table4_3(29) /type_of_gen_proc('local_prob_match_mean',200)/
268  !
269  !
271  character(len=30) :: unitoftimerangekey
272  integer :: unitoftimerangeval
273  end type unit_of_time_range
274  !
276  type(unit_of_time_range),dimension(MAXUNITOFTIMERANGE) :: table4_4
277 
278  data table4_4(1) /unit_of_time_range('minute',0)/
279  data table4_4(2) /unit_of_time_range('hour',1)/
280  data table4_4(3) /unit_of_time_range('day',2)/
281  data table4_4(4) /unit_of_time_range('month',3)/
282  data table4_4(5) /unit_of_time_range('year',4)/
283  data table4_4(6) /unit_of_time_range('decade',5)/
284  data table4_4(7) /unit_of_time_range('normal_30y',6)/
285  data table4_4(8) /unit_of_time_range('century',7)/
286  data table4_4(9) /unit_of_time_range('3hours',10)/
287  data table4_4(10) /unit_of_time_range('6hours',11)/
288  data table4_4(11) /unit_of_time_range('12hours',12)/
289  data table4_4(12) /unit_of_time_range('second',13)/
290  data table4_4(13) /unit_of_time_range('missing',255)/
291  !
292  !
294  character(len=80) :: fixedsurfacetypeskey
295  integer :: fixedsurfacetypesval
296  end type fixed_surface_types
297  !
299  type(fixed_surface_types),dimension(MAXFIXEDSURFACETYPES) :: table4_5
300 
301  data table4_5(1) /fixed_surface_types('surface',1)/
302  data table4_5(2) /fixed_surface_types('cloud_base',2)/
303  data table4_5(3) /fixed_surface_types('cloud_top',3)/
304  data table4_5(4) /fixed_surface_types('0C_isotherm',4)/
305  data table4_5(5) /fixed_surface_types('lvl_of_adiab_cond_from_sfc',5)/
306  data table4_5(6) /fixed_surface_types('max_wind',6)/
307  data table4_5(7) /fixed_surface_types('tropopause',7)/
308  data table4_5(8) /fixed_surface_types('top_of_atmos',8)/
309  data table4_5(9) /fixed_surface_types('sea_bottom',9)/
310  data table4_5(10) /fixed_surface_types('entire_atmos',10)/
311  data table4_5(11) /fixed_surface_types('cb_base',11)/
312  data table4_5(12) /fixed_surface_types('cb_top',12)/
313  data table4_5(13) /fixed_surface_types('isothermal',20)/
314  data table4_5(14) /fixed_surface_types('isobaric_sfc',100)/
315  data table4_5(15) /fixed_surface_types('mean_sea_lvl',101)/
316  data table4_5(16) /fixed_surface_types('spec_alt_above_mean_sea_lvl',102)/
317  data table4_5(17) /fixed_surface_types('spec_hgt_lvl_above_grnd',103)/
318  data table4_5(18) /fixed_surface_types('sigma_lvl',104)/
319  data table4_5(19) /fixed_surface_types('hybrid_lvl',105)/
320  data table4_5(20) /fixed_surface_types('depth_bel_land_sfc',106)/
321  data table4_5(21) /fixed_surface_types('isentropic_lvl',107)/
322  data table4_5(22) /fixed_surface_types('spec_pres_above_grnd',108)/
323  data table4_5(23) /fixed_surface_types('pot_vort_sfc',109)/
324  data table4_5(24) /fixed_surface_types('eta_lvl',111)/
325  data table4_5(25) /fixed_surface_types('mixed_lyr_depth',117)/
326  data table4_5(26) /fixed_surface_types('depth_below_sea_lvl',160)/
327  data table4_5(27) /fixed_surface_types('entire_atmos_single_lyr',200)/
328  data table4_5(28) /fixed_surface_types('entire_ocean_single_lyr',201)/
329  data table4_5(29) /fixed_surface_types('hghst_trop_frz_lvl',204)/
330  data table4_5(30) /fixed_surface_types('grid_scale_cloud_bot_lvl',206)/
331  data table4_5(31) /fixed_surface_types('grid_scale_cloud_top_lvl',207)/
332  data table4_5(32) /fixed_surface_types('bound_lyr_cloud_bot_lvl',209)/
333  data table4_5(33) /fixed_surface_types('bound_lyr_cloud_top_lvl',210)/
334  data table4_5(34) /fixed_surface_types('bound_lyr_cloud_lyr',211)/
335  data table4_5(35) /fixed_surface_types('low_cloud_bot_lvl',212)/
336  data table4_5(36) /fixed_surface_types('low_cloud_top_lvl',213)/
337  data table4_5(37) /fixed_surface_types('low_cloud_lyr',214)/
338  data table4_5(38) /fixed_surface_types('cloud_ceilng',215)/
339  data table4_5(39) /fixed_surface_types('planetary_bound_lyr',220)/
340  data table4_5(40) /fixed_surface_types('lyr_betwn_2hybrid_lvls',221)/
341  data table4_5(41) /fixed_surface_types('mid_cloud_bot_lvl',222)/
342  data table4_5(42) /fixed_surface_types('mid_cloud_top_lvl',223)/
343  data table4_5(43) /fixed_surface_types('mid_cloud_lyr',224)/
344  data table4_5(44) /fixed_surface_types('high_cloud_bot_lvl',232)/
345  data table4_5(45) /fixed_surface_types('high_cloud_top_lvl',233)/
346  data table4_5(46) /fixed_surface_types('high_cloud_lyr',234)/
347  data table4_5(47) /fixed_surface_types('ocean_isotherm_lvl',235)/
348  data table4_5(48) /fixed_surface_types('lyr_betwn_2depths_below_ocean_sfc',236)/
349  data table4_5(49) /fixed_surface_types('bot_of_ocean_mix_lyr',237)/
350  data table4_5(50) /fixed_surface_types('bot_of_ocean_isoth_lyr',238)/
351  data table4_5(51) /fixed_surface_types('lyr_ocean_sfc_26c_ocean_isotherm_lvl',239)/
352  data table4_5(52) /fixed_surface_types('ocean_mix_lyr',240)/
353  data table4_5(53) /fixed_surface_types('ordered_seq_of_data',241)/
354  data table4_5(54) /fixed_surface_types('convective_cloud_bot_lvl',242)/
355  data table4_5(55) /fixed_surface_types('convective_cloud_top_lvl',243)/
356  data table4_5(56) /fixed_surface_types('convective_cloud_lyr',244)/
357  data table4_5(57) /fixed_surface_types('lwst_lvl_of_wet_bulb_zero',245)/
358  data table4_5(58) /fixed_surface_types('max_equiv_pot_temp_lvl',246)/
359  data table4_5(59) /fixed_surface_types('equil_lvl',247)/
360  data table4_5(60) /fixed_surface_types('shall_convective_cloud_bot_lvl',248)/
361  data table4_5(61) /fixed_surface_types('shall_convective_cloud_top_lvl',249)/
362  data table4_5(62) /fixed_surface_types('deep_convective_cloud_bot_lvl',251)/
363  data table4_5(63) /fixed_surface_types('deep_convective_cloud_top_lvl',252)/
364  data table4_5(64) /fixed_surface_types('lwst_bot_lvl_of_supercooled_liq_water_lyr',253)/
365  data table4_5(65) /fixed_surface_types('hghst_top_lvl_of_supercooled_liq_water_lyr',254)/
366  data table4_5(66) /fixed_surface_types('missing',255)/
367  data table4_5(67) /fixed_surface_types('hybrid_height_lvl',118)/
368  data table4_5(68) /fixed_surface_types('hybrid_pres_lvl',119)/
369  data table4_5(69) /fixed_surface_types('gen_vertical_height_coor',150)/
370  data table4_5(70) /fixed_surface_types('depth_below_water_lvl',161)/
371  data table4_5(71) /fixed_surface_types('lake_or_river_bottom',162)/
372  data table4_5(72) /fixed_surface_types('bottom_of_sediment_layer',163)/
373  data table4_5(73) /fixed_surface_types('bottom_of_therm_sediment_layer',164)/
374  data table4_5(74) /fixed_surface_types('bottom_of_sediment_layer_thermal_wave',165)/
375  data table4_5(75) /fixed_surface_types('maxing_layer',166)/
376  data table4_5(76) /fixed_surface_types('bottom_root_zone',167)/
377  data table4_5(77) /fixed_surface_types('topsfc_ice_onsealakeriver',174)/
378  data table4_5(78) /fixed_surface_types('topsfc_ice_unsnow_onsealakeriver',175)/
379  data table4_5(79) /fixed_surface_types('bottomsfc_ice_onsealakeriver',176)/
380  data table4_5(80) /fixed_surface_types('deep_soil',177)/
381  data table4_5(81) /fixed_surface_types('topsfc_glacierice_inlandice',179)/
382  data table4_5(82) /fixed_surface_types('deepinland_glacierice',180)/
383  data table4_5(83) /fixed_surface_types('gridtile_landfrac',181)/
384  data table4_5(84) /fixed_surface_types('gridtile_waterfrac',182)/
385  data table4_5(85) /fixed_surface_types('gridtile_icefrac_onsealakeriver',183)/
386  data table4_5(86) /fixed_surface_types('gridtile_glacierice_inland_icefrac',184)/
387  data table4_5(87) /fixed_surface_types('lowest_level_vertical_icc',13)/
388  data table4_5(88) /fixed_surface_types('level_free_convection',14)/
389  data table4_5(89) /fixed_surface_types('covection_conden_level',15)/
390  data table4_5(90) /fixed_surface_types('level_neutral_buoy',16)/
391  data table4_5(91) /fixed_surface_types('soil_level',151)/
392  !
393  ! Added fixed surface levels (06/26/2019)
394  !
395  data table4_5(92) /fixed_surface_types('lowest_mass_den',21)/
396  data table4_5(93) /fixed_surface_types('highest_mass_den',22)/
397  data table4_5(94) /fixed_surface_types('lowest_air_con',23)/
398  data table4_5(95) /fixed_surface_types('highest_air_con',24)/
399  data table4_5(96) /fixed_surface_types('highest_rref',25)/
400  data table4_5(97) /fixed_surface_types('log_hyb_lev',113)/
401  data table4_5(98) /fixed_surface_types('snow_lev',114)/
402  data table4_5(100) /fixed_surface_types('sigma_hi_lev',115)/
403  !
404  ! Added fixed surface levels (04/20/2021)
405  !
406  data table4_5(101) /fixed_surface_types('ocean_model_level',168)/
407  data table4_5(102) /fixed_surface_types('ocean_level_water_density',169)/
408  data table4_5(103) /fixed_surface_types('ocean_level_water_potential_temp',170)/
409  data table4_5(104) /fixed_surface_types('eff_layer_top_level',216)/
410  data table4_5(105) /fixed_surface_types('eff_layer_bottom_level',217)/
411  data table4_5(106) /fixed_surface_types('eff_layer',218)/
412  !
413  !
415  character(len=50) :: typeofensfcstkey
416  integer :: typeofensfcstval
417  end type type_of_ens_fcst
418  !
420  type(type_of_ens_fcst),dimension(MAXTYPEOFENSFCST) :: table4_6
421 
422  data table4_6(1) /type_of_ens_fcst('unpert_hi_res_ctrl_fcst',0)/
423  data table4_6(2) /type_of_ens_fcst('unpert_lo_res_ctrl_fcst',1)/
424  data table4_6(3) /type_of_ens_fcst('neg_pert_fcst',2)/
425  data table4_6(4) /type_of_ens_fcst('pos_pert_fcst',3)/
426  data table4_6(5) /type_of_ens_fcst('multi_model_fcst',4)/
427  data table4_6(6) /type_of_ens_fcst('pert_ens_member',192)/
428  !
429  !
431  character(len=50) :: typeofderivefcstkey
432  integer :: typeofderivefcstval
433  end type type_of_derive_fcst
434  !
436  type(type_of_derive_fcst),dimension(MAXTYPEOFDERIVEFCST) :: table4_7
437 
438  data table4_7(1) /type_of_derive_fcst('unweighted_mean_all_mem',0)/
439  data table4_7(2) /type_of_derive_fcst('weighted_mean_all_mem',1)/
440  data table4_7(3) /type_of_derive_fcst('std_devn_res_cluster_mean',2)/
441  data table4_7(4) /type_of_derive_fcst('std_devn_res_cluster_mean_norm',3)/
442  data table4_7(5) /type_of_derive_fcst('spread_all_mem',4)/
443  data table4_7(6) /type_of_derive_fcst('large_anomaly_index',5)/
444  data table4_7(7) /type_of_derive_fcst('unweighted_mean_cluster',6)/
445  data table4_7(8) /type_of_derive_fcst('interquartile_range',7)/
446  data table4_7(9) /type_of_derive_fcst('min_all_ens_mem',8)/
447  data table4_7(10) /type_of_derive_fcst('max_all_ens_mem',9)/
448  data table4_7(11) /type_of_derive_fcst('unweighted_mode_all_mem',192)/
449  data table4_7(12) /type_of_derive_fcst('percentile_val_10',193)/
450  data table4_7(13) /type_of_derive_fcst('percentile_val_50',194)/
451  data table4_7(14) /type_of_derive_fcst('percentile_val_90',195)/
452  data table4_7(15) /type_of_derive_fcst('stat_decide_mem',196)/
453  data table4_7(16) /type_of_derive_fcst('clim_percentile',197)/
454  data table4_7(17) /type_of_derive_fcst('deviation_ens_mean',198)/
455  data table4_7(18) /type_of_derive_fcst('extream_forecast_index',199)/
456  !
457  ! Added type of derive forecast (04/20/2021)
458  !
459  data table4_7(19) /type_of_derive_fcst('equally_weighted_mean',200)/
460  data table4_7(20) /type_of_derive_fcst('percentile_value_5',201)/
461  data table4_7(21) /type_of_derive_fcst('percentile_value_25',202)/
462  data table4_7(22) /type_of_derive_fcst('percentile_value_75',203)/
463  data table4_7(23) /type_of_derive_fcst('percentile_value_95',204)/
464  !
465  !
466  ! Added Clustering Method Table 4.8 (06/26/2019)
467  !
469  character(len=80) :: typeofclusterkey
470  integer :: typeofclusterval
471  end type type_of_cluster
472  !
474  type(type_of_cluster),dimension(MAXTYPEOFCLUSTER) :: table4_8
475 
476  data table4_8(1) /type_of_cluster('anomoly_correlation',0)/
477  data table4_8(2) /type_of_cluster('root_mean_square',1)/
478  !
479  !
480  ! Added Probability Type Table 4.9 (06/26/2019)
481  !
483  character(len=80) :: typeofprobkey
484  integer :: typeofprobval
485  end type type_of_prob
486  !
488  type(type_of_prob),dimension(MAXTYPEOFPROB) :: table4_9
489 
490  data table4_9(1) /type_of_prob('prob_below_lower_limit',0)/
491  data table4_9(2) /type_of_prob('prob_above_upper_limit',1)/
492  data table4_9(3) /type_of_prob('prob_between_upper_lower_limit',2)/
493  data table4_9(4) /type_of_prob('prob_above_lower_limit',3)/
494  data table4_9(5) /type_of_prob('prob_below_upper_limit',4)/
495  data table4_9(6) /type_of_prob('prob_equal_lower_limit',5)/
496  data table4_9(7) /type_of_prob('prob_above_normal_cat',6)/
497  data table4_9(8) /type_of_prob('prob_near_normal_cat',7)/
498  data table4_9(9) /type_of_prob('prob_below_normal_cat',8)/
499  !
500  !
502  character(len=80) :: statprocesstypeskey
503  integer :: statprocesstypesval
505  !
507  type(statistical_processing_types),dimension(MAXSTATPROCESSTYPES) :: table4_10
508 
509  data table4_10(1) /statistical_processing_types('AVE',0)/
510  data table4_10(2) /statistical_processing_types('ACM',1)/
511  data table4_10(3) /statistical_processing_types('MAX',2)/
512  data table4_10(4) /statistical_processing_types('MIN',3)/
513  data table4_10(5) /statistical_processing_types('diff_end-beg',4)/
514  data table4_10(6) /statistical_processing_types('rms',5)/
515  data table4_10(7) /statistical_processing_types('std_devn',6)/
516  data table4_10(8) /statistical_processing_types('covariance',7)/
517  data table4_10(9) /statistical_processing_types('diff_beg-end',8)/
518  data table4_10(10) /statistical_processing_types('ratio',9)/
519  data table4_10(11) /statistical_processing_types('std_anomaly',10)/
520  data table4_10(12) /statistical_processing_types('clim_mean',192)/
521  data table4_10(13) /statistical_processing_types('ave_n_fcsts',193)/
522  data table4_10(14) /statistical_processing_types('ave_n_unin_anal',194)/
523  data table4_10(15) /statistical_processing_types('ave_fcst_acc_24',195)/
524  data table4_10(16) /statistical_processing_types('ave_succ_fcst_acc',196)/
525  data table4_10(17) /statistical_processing_types('ave_fcst_ave_24',197)/
526  data table4_10(18) /statistical_processing_types('ave_succ_fcst_ave',198)/
527  data table4_10(19) /statistical_processing_types('clim_ave_n_anal',199)/
528  data table4_10(20) /statistical_processing_types('clim_ave_n_fcst',200)/
529  data table4_10(21) /statistical_processing_types('clim_rms_diff',201)/
530  data table4_10(22) /statistical_processing_types('clim_std_n_fcst',202)/
531  data table4_10(23) /statistical_processing_types('clim_std_n_anal',203)/
532  data table4_10(24) /statistical_processing_types('ave_fcst_acc_6',204)/
533  data table4_10(25) /statistical_processing_types('ave_fcst_ave_6',205)/
534  data table4_10(26) /statistical_processing_types('ave_fcst_acc_12',206)/
535  data table4_10(27) /statistical_processing_types('ave_fcst_ave_12',207)/
536  data table4_10(28) /statistical_processing_types('missing',255)/
537  data table4_10(29) /statistical_processing_types('summation',11)/
538  data table4_10(30) /statistical_processing_types('confidence_index',12)/
539  data table4_10(31) /statistical_processing_types('quality_indicator',13)/
540  data table4_10(32) /statistical_processing_types('variance',208)/
541  data table4_10(33) /statistical_processing_types('confficient',209)/
542  !
543  !
545  character(len=80) :: typeoftimeintervalskey
546  integer :: typeoftimeintervalsval
547  end type type_of_time_intervals
548  !
550  type(type_of_time_intervals),dimension(MAXTYPEOFTIMEINTVLS) :: table4_11
551 
552  data table4_11(1) /type_of_time_intervals('reserved',0)/
553  data table4_11(2) /type_of_time_intervals('same_fcst_time_start_time_fcst_inc',1)/
554  data table4_11(3) /type_of_time_intervals('same_start_time_fcst_fcst_time_inc',2)/
555  data table4_11(4) /type_of_time_intervals('start_time_fcst_inc_fcst_time_dec',3)/
556  data table4_11(5) /type_of_time_intervals('start_time_fcst_dec_fcst_time_inc',4)/
557  data table4_11(6) /type_of_time_intervals('fltng_time_betwn_fcst_time_end_time_intvl',5)/
558  data table4_11(7) /type_of_time_intervals('local1',192)/
559  data table4_11(8) /type_of_time_intervals('local2',193)/
560  data table4_11(9) /type_of_time_intervals('local3',194)/
561  data table4_11(10) /type_of_time_intervals('missing',255)/
562  !
563  !
565  character(len=80) :: typeofintervalskey
566  integer :: typeofintervalsval
567  end type type_of_intervals
568  !
570  type(type_of_intervals),dimension(MAXTYPEOFINTVLS) :: table4_91
571 
572  data table4_91(1) /type_of_intervals('smaller_than_first_limit',0)/
573  data table4_91(2) /type_of_intervals('greater_than_second_limit',1)/
574  data table4_91(3) /type_of_intervals('between_first_second_limit_noincl2ndlmt',2)/
575  data table4_91(4) /type_of_intervals('greater_than_first_limit',3)/
576  data table4_91(5) /type_of_intervals('smaller_than_second_limit',4)/
577  data table4_91(6) /type_of_intervals('smaller_or_equal_first_limit',5)/
578  data table4_91(7) /type_of_intervals('greater_or_equal_second_limit',6)/
579  data table4_91(8) /type_of_intervals('between_first_second_limit',7)/
580  data table4_91(9) /type_of_intervals('greater_or_equal_first_limit',8)/
581  data table4_91(10) /type_of_intervals('smaller_or_equal_second_limit',9)/
582  data table4_91(11) /type_of_intervals('between_first_second_limit_noincl1stlmt',10)/
583  data table4_91(12) /type_of_intervals('equall_to_first_limit',11)/
584  data table4_91(13) /type_of_intervals('missing',255)/
585  !
586  ! Added Precipitation Table 4.201 (06/26/2019)
587  !
589  character(len=80) :: typeofprecipkey
590  integer :: typeofprecipval
591  end type type_of_precip
592  !
594  type(type_of_precip),dimension(MAXTYPEOFPRECIP) :: table4_201
595 
596  data table4_201(1) /type_of_precip('reserved',0)/
597  data table4_201(2) /type_of_precip('rain',1)/
598  data table4_201(3) /type_of_precip('thunderstorm',2)/
599  data table4_201(4) /type_of_precip('freezing_rain',3)/
600  data table4_201(51) /type_of_precip('mixed_ice',4)/
601  data table4_201(61) /type_of_precip('snow',5)/
602  data table4_201(7) /type_of_precip('wet_snow',6)/
603  data table4_201(8) /type_of_precip('mixture_rain_snow',7)/
604  data table4_201(91) /type_of_precip('ice_pellets',8)/
605  data table4_201(10) /type_of_precip('graupel',9)/
606  data table4_201(11) /type_of_precip('hail',10)/
607  data table4_201(12) /type_of_precip('drizzle',11)/
608  data table4_201(12) /type_of_precip('freezing_drizzle',12)/
609  !
610  !
612  character(len=80) :: typeofaerosolkey
613  integer :: typeofaerosolval
614  end type type_of_aerosol
615  !
617  type(type_of_aerosol),dimension(MAXTYPEOFAEROSOL) :: table4_233
618 
619  data table4_233(1) /type_of_aerosol('ozone',0)/
620  data table4_233(2) /type_of_aerosol('water_vapor',1)/
621  data table4_233(3) /type_of_aerosol('methane',2)/
622  data table4_233(4) /type_of_aerosol('carbon_dioxide',3)/
623  data table4_233(5) /type_of_aerosol('carbon_monoxide',4)/
624  data table4_233(6) /type_of_aerosol('nitrogen_dioxide',5)/
625  data table4_233(7) /type_of_aerosol('nitrous_oxide',6)/
626  data table4_233(8) /type_of_aerosol('formaldehyde',7)/
627  data table4_233(9) /type_of_aerosol('sulphur_dioxide',8)/
628  data table4_233(10) /type_of_aerosol('ammonia',9)/
629  data table4_233(11) /type_of_aerosol('ammonium',10)/
630  data table4_233(12) /type_of_aerosol('nitrogen_monoxide',11)/
631  data table4_233(13) /type_of_aerosol('atomic_oxygen',12)/
632  data table4_233(14) /type_of_aerosol('nitrate_radical',13)/
633  data table4_233(15) /type_of_aerosol('hydroperoxyl_radical',14)/
634  data table4_233(16) /type_of_aerosol('dinitrogen_pentoxide',15)/
635  data table4_233(17) /type_of_aerosol('nitrous_acid',16)/
636  data table4_233(18) /type_of_aerosol('nitric_acid',17)/
637  data table4_233(19) /type_of_aerosol('peroxynitric_acid',18)/
638  data table4_233(20) /type_of_aerosol('hydrogen_peroxide',19)/
639  data table4_233(21) /type_of_aerosol('molecular_hydrogen',20)/
640  data table4_233(22) /type_of_aerosol('atomic_nitrogen',21)/
641  data table4_233(23) /type_of_aerosol('sulphate',22)/
642  data table4_233(24) /type_of_aerosol('radon',23)/
643  data table4_233(25) /type_of_aerosol('elemental_mercury',24)/
644  data table4_233(26) /type_of_aerosol('divalent_mercury',25)/
645  data table4_233(27) /type_of_aerosol('atomic_chlorine',26)/
646  data table4_233(28) /type_of_aerosol('chlorine_monoxide',27)/
647  data table4_233(29) /type_of_aerosol('dichlorine_peroxide',28)/
648  data table4_233(30) /type_of_aerosol('hypochlorous_acid',29)/
649  data table4_233(31) /type_of_aerosol('chlorine_nitrate',30)/
650  data table4_233(32) /type_of_aerosol('chlorine_dioxide',31)/
651  data table4_233(33) /type_of_aerosol('atomic_bromide',32)/
652  data table4_233(34) /type_of_aerosol('bromine_monoxide',33)/
653  data table4_233(35) /type_of_aerosol('bromine_chloride',34)/
654  data table4_233(36) /type_of_aerosol('hydrogen_bromide',35)/
655  data table4_233(37) /type_of_aerosol('hypobromous_acid',36)/
656  data table4_233(38) /type_of_aerosol('bromine_nitrate',37)/
657  data table4_233(39) /type_of_aerosol('hydroxyl_radical',10000)/
658  data table4_233(40) /type_of_aerosol('methyl_peroxy_radical',10001)/
659  data table4_233(41) /type_of_aerosol('methyl_hydroperoxide',10002)/
660  data table4_233(42) /type_of_aerosol('methanol',10004)/
661  data table4_233(43) /type_of_aerosol('formic_acid',10005)/
662  data table4_233(44) /type_of_aerosol('hydrogen_cyanide',10006)/
663  data table4_233(45) /type_of_aerosol('aceto_nitrile',10007)/
664  data table4_233(46) /type_of_aerosol('ethane',10008)/
665  data table4_233(47) /type_of_aerosol('ethene',10009)/
666  data table4_233(48) /type_of_aerosol('ethyne',10010)/
667  data table4_233(49) /type_of_aerosol('ethanol',10011)/
668  data table4_233(50) /type_of_aerosol('acetic_acid',10012)/
669  data table4_233(51) /type_of_aerosol('peroxyacetyl_nitrate',10013)/
670  data table4_233(52) /type_of_aerosol('propane',10014)/
671  data table4_233(53) /type_of_aerosol('propene',10015)/
672  data table4_233(54) /type_of_aerosol('butanes',10016)/
673  data table4_233(55) /type_of_aerosol('isoprene',10017)/
674  data table4_233(56) /type_of_aerosol('alpha_pinene',10018)/
675  data table4_233(57) /type_of_aerosol('beta_pinene',10019)/
676  data table4_233(58) /type_of_aerosol('limonene',10020)/
677  data table4_233(59) /type_of_aerosol('benzene',10021)/
678  data table4_233(60) /type_of_aerosol('toluene',10022)/
679  data table4_233(61) /type_of_aerosol('xylene',10023)/
680  data table4_233(62) /type_of_aerosol('dumethyl_sulphide',10500)/
681  data table4_233(63) /type_of_aerosol('hydrogen_chloride',20001)/
682  data table4_233(64) /type_of_aerosol('cfc-11',20002)/
683  data table4_233(65) /type_of_aerosol('cfc-12',20003)/
684  data table4_233(66) /type_of_aerosol('cfc-113',20004)/
685  data table4_233(67) /type_of_aerosol('cfc-113a',20005)/
686  data table4_233(68) /type_of_aerosol('cfc-114',20006)/
687  data table4_233(69) /type_of_aerosol('cfc-115',20007)/
688  data table4_233(70) /type_of_aerosol('hcfc-22',20008)/
689  data table4_233(71) /type_of_aerosol('hcfc-141b',20009)/
690  data table4_233(72) /type_of_aerosol('hcfc-142b',20010)/
691  data table4_233(73) /type_of_aerosol('halon-1202',20011)/
692  data table4_233(74) /type_of_aerosol('halon-1211',20012)/
693  data table4_233(75) /type_of_aerosol('halon-1301',20013)/
694  data table4_233(76) /type_of_aerosol('halon-2402',20014)/
695  data table4_233(77) /type_of_aerosol('methyl_chloride',20015)/
696  data table4_233(78) /type_of_aerosol('carbon_tetrachloride',20016)/
697  data table4_233(79) /type_of_aerosol('hcc-140a',20017)/
698  data table4_233(80) /type_of_aerosol('methyl_bromide',20018)/
699  data table4_233(81) /type_of_aerosol('hexachlorocyclohexane',20019)/
700  data table4_233(82) /type_of_aerosol('alpha_hexachlorocyclohexane',20020)/
701  data table4_233(83) /type_of_aerosol('hexachlorobiphenyl',20021)/
702  data table4_233(84) /type_of_aerosol('radioactive_pollutant',30000)/
703  data table4_233(85) /type_of_aerosol('hox_radical',60000)/
704  data table4_233(86) /type_of_aerosol('total_inorganic_org_peroxy_radicals',60001)/
705  data table4_233(87) /type_of_aerosol('passive_ozone',60002)/
706  data table4_233(88) /type_of_aerosol('nox_nitrogen',60003)/
707  data table4_233(89) /type_of_aerosol('all_nitrogen_oxides',60004)/
708  data table4_233(90) /type_of_aerosol('total_inorganic_chlorine',60005)/
709  data table4_233(91) /type_of_aerosol('total_inorganic_bromine',60006)/
710  data table4_233(92) /type_of_aerosol('total_inorganic_chlorine_noHclClono2Clox',60007)/
711  data table4_233(93) /type_of_aerosol('total_inorganic_bromine_noHbrBrono2Brox',60008)/
712  data table4_233(94) /type_of_aerosol('lumped_alkanes',60009)/
713  data table4_233(95) /type_of_aerosol('lumped_alkenes',60010)/
714  data table4_233(96) /type_of_aerosol('lumped_aromatic_comp',60011)/
715  data table4_233(97) /type_of_aerosol('lumped_terpenes',60012)/
716  data table4_233(98) /type_of_aerosol('non_methane_volatile_org_comp_carbon)',60013)/
717  data table4_233(99) /type_of_aerosol('anthropogenic_non_methane_voiatile_org_comp_carbon',60014)/
718  data table4_233(100) /type_of_aerosol('biogenic_non_methane_volatile_org_comp_carbon',60015)/
719  data table4_233(101) /type_of_aerosol('lumped_oxygenated_hydrocarbon',60016)/
720  data table4_233(102) /type_of_aerosol('total_aerosol',62000)/
721  data table4_233(103) /type_of_aerosol('dust_dry',62001)/
722  data table4_233(104) /type_of_aerosol('water_in_ambient',62002)/
723  data table4_233(105) /type_of_aerosol('ammonium_dry',62003)/
724  data table4_233(106) /type_of_aerosol('nitrate_dry',62004)/
725  data table4_233(107) /type_of_aerosol('nitric_acid_trihydrate',62005)/
726  data table4_233(108) /type_of_aerosol('sulphate_dry',62006)/
727  data table4_233(109) /type_of_aerosol('mercury_dry',62007)/
728  data table4_233(110) /type_of_aerosol('sea_salt_dry',62008)/
729  data table4_233(111) /type_of_aerosol('black_carbon_dry',62009)/
730  data table4_233(112) /type_of_aerosol('particulate_org_matter_dry',62010)/
731  data table4_233(113) /type_of_aerosol('primary_particulate_org_matter_dry',62011)/
732  data table4_233(114) /type_of_aerosol('secondary_particulate_org_matter_dry',62012)/
733  data table4_233(115) /type_of_aerosol('missing',65535)/
734  data table4_233(116) /type_of_aerosol('black_carbon_hydrophilic',62013)/
735  data table4_233(117) /type_of_aerosol('black_carbon_hydrophobic',62014)/
736  data table4_233(118) /type_of_aerosol('particulate_org_matter_hydrophilic',62015)/
737  data table4_233(119) /type_of_aerosol('particulate_org_matter_hydrophobic',62016)/
738  data table4_233(120) /type_of_aerosol('nitrate_hydrophilic',62017)/
739  data table4_233(121) /type_of_aerosol('nitrate_hydrophobic',62018)/
740  data table4_233(122) /type_of_aerosol('smoke_hi_absorption',62020)/
741  data table4_233(123) /type_of_aerosol('smoke_lo_absorption',62021)/
742  data table4_233(124) /type_of_aerosol('aerosol_hi_absorption',62022)/
743  data table4_233(125) /type_of_aerosol('aerosol_lo_absorption',62023)/
744  data table4_233(126) /type_of_aerosol('volcanic_ash',62025)/
745  !
746  !
748  character(len=50) :: typeoforigfieldvalskey
749  integer :: typeoforigfieldvals
750  end type type_of_orig_field_vals
751  !
753  type(type_of_orig_field_vals), dimension(MAXTYPEOFORIGFIELDVAL) :: table5_1
754  data table5_1(1) /type_of_orig_field_vals('fltng_pnt',0)/
755  data table5_1(2) /type_of_orig_field_vals('integer',1)/
756  data table5_1(3) /type_of_orig_field_vals('local1',192)/
757  data table5_1(4) /type_of_orig_field_vals('local2',193)/
758  data table5_1(5) /type_of_orig_field_vals('local3',194)/
759  data table5_1(6) /type_of_orig_field_vals('local4',195)/
760  data table5_1(7) /type_of_orig_field_vals('local5',196)/
761  data table5_1(8) /type_of_orig_field_vals('local6',197)/
762  data table5_1(9) /type_of_orig_field_vals('local7',198)/
763  data table5_1(10) /type_of_orig_field_vals('local8',199)/
764  data table5_1(11) /type_of_orig_field_vals('local9',200)/
765  data table5_1(12) /type_of_orig_field_vals('local10',201)/
766  data table5_1(13) /type_of_orig_field_vals('missing',255)/
767  !
768  !
770  character(len=50) :: ordofsptdiffkey
771  integer :: ordofsptdiffvals
772  end type order_of_sptdiff_vals
773  !
775  type(order_of_sptdiff_vals), dimension(MAXORDOFSPTDIFF) :: table5_6
776  data table5_6(1) /order_of_sptdiff_vals('1st_ord_sptdiff',1)/
777  data table5_6(2) /order_of_sptdiff_vals('2nd_ord_sptdiff',2)/
778  data table5_6(3) /order_of_sptdiff_vals('missing',255)/
779  !
780  !
782  character(len=50) :: typeofcompressionkey
783  integer :: typeofcompressionvals
784  end type type_of_compression
785  !
787  type(type_of_compression), dimension(MAXTYPEOFCOMPRESSION) :: table5_40
788  data table5_40(1) /type_of_compression('lossless',0)/
789  data table5_40(2) /type_of_compression('lossy',1)/
790  data table5_40(3) /type_of_compression('missing',255)/
791  !
792  !
794  character(len=50) :: packingmethodkey
795  integer :: packingmethodvals
796  end type type_of_packingmethod
797  !
799  type(type_of_packingmethod), dimension(MAXTYPEOFPACKINGMETHOD) :: table5_0
800  data table5_0(1) /type_of_packingmethod('simple_packing',0)/
801  data table5_0(2) /type_of_packingmethod('maxtric_simple_packing',1)/
802  data table5_0(3) /type_of_packingmethod('complex_packing',2)/
803  data table5_0(4) /type_of_packingmethod('complex_packing_spatial_diff',3)/
804  data table5_0(5) /type_of_packingmethod('ieee_floating_point',4)/
805  data table5_0(6) /type_of_packingmethod('jpeg2000',40)/
806  data table5_0(7) /type_of_packingmethod('png',41)/
807  data table5_0(8) /type_of_packingmethod('spectral_simple_packing',50)/
808  data table5_0(9) /type_of_packingmethod('spectral_complex_packing',51)/
809  data table5_0(10) /type_of_packingmethod('simple_packing_log_preprcs',61)/
810  data table5_0(11) /type_of_packingmethod('run_length_packing_lvl_val',200)/
811  !
812  !
814  character(len=50) :: origincenterskey
815  integer :: origincentersval
816  end type origin_centers
817  !
819  type(origin_centers),dimension(MAXORIGINCENTERS) :: on388_table0
820 
821  data on388_table0(1) /origin_centers('melbourne1',1)/
822  data on388_table0(2) /origin_centers('melbourne2',2)/
823  data on388_table0(3) /origin_centers('melbourne3',3)/
824  data on388_table0(4) /origin_centers('moscow1',4)/
825  data on388_table0(5) /origin_centers('moscow2',5)/
826  data on388_table0(6) /origin_centers('moscow3',6)/
827  data on388_table0(7) /origin_centers('nws_ncep',7)/
828  data on388_table0(8) /origin_centers('nws_nwstg',8)/
829  data on388_table0(9) /origin_centers('nws_other',9)/
830  data on388_table0(10) /origin_centers('cairo1',10)/
831  data on388_table0(11) /origin_centers('cairo2',11)/
832  data on388_table0(12) /origin_centers('dakar1',12)/
833  data on388_table0(13) /origin_centers('dakar2',13)/
834  data on388_table0(14) /origin_centers('nairobi1',14)/
835  data on388_table0(15) /origin_centers('nairobi2',15)/
836  data on388_table0(16) /origin_centers('casablanca',16)/
837  data on388_table0(17) /origin_centers('tunis',17)/
838  data on388_table0(18) /origin_centers('tunis_casablanca1',18)/
839  data on388_table0(19) /origin_centers('tunis-casablanca2',19)/
840  data on388_table0(20) /origin_centers('las_palmas',20)/
841  data on388_table0(21) /origin_centers('algiers',21)/
842  data on388_table0(22) /origin_centers('acmad',22)/
843  data on388_table0(23) /origin_centers('mozambique',23)/
844  data on388_table0(24) /origin_centers('pretoria',24)/
845  data on388_table0(25) /origin_centers('la_reunion',25)/
846  data on388_table0(26) /origin_centers('khabarovsk1',26)/
847  data on388_table0(27) /origin_centers('khabarovsk2',27)/
848  data on388_table0(28) /origin_centers('new_delhi1',28)/
849  data on388_table0(29) /origin_centers('new_delhi2',29)/
850  data on388_table0(30) /origin_centers('novosibirsk1',30)/
851  data on388_table0(31) /origin_centers('novosibirsk2',31)/
852  data on388_table0(32) /origin_centers('tashkent',32)/
853  data on388_table0(33) /origin_centers('jeddah',33)/
854  data on388_table0(34) /origin_centers('jma_tokyo1',34)/
855  data on388_table0(35) /origin_centers('jma_tokyo2',35)/
856  data on388_table0(36) /origin_centers('bankok',36)/
857  data on388_table0(37) /origin_centers('ulan_bator',37)/
858  data on388_table0(38) /origin_centers('beijing1',38)/
859  data on388_table0(39) /origin_centers('beijing2',39)/
860  data on388_table0(40) /origin_centers('seoul',40)/
861  data on388_table0(41) /origin_centers('buenos_aires1',41)/
862  data on388_table0(42) /origin_centers('buenos_aires2',42)/
863  data on388_table0(43) /origin_centers('brasilia1',43)/
864  data on388_table0(44) /origin_centers('brasilia2',44)/
865  data on388_table0(45) /origin_centers('santiago',45)/
866  data on388_table0(46) /origin_centers('brazilian_inpe',46)/
867  data on388_table0(47) /origin_centers('columbia',47)/
868  data on388_table0(48) /origin_centers('ecuador',48)/
869  data on388_table0(49) /origin_centers('peru',49)/
870  data on388_table0(50) /origin_centers('venezuela',50)/
871  data on388_table0(51) /origin_centers('miami',51)/
872  data on388_table0(52) /origin_centers('tpc_nhc',52)/
873  data on388_table0(53) /origin_centers('cms_montreal1',53)/
874  data on388_table0(54) /origin_centers('cms_montreal2',54)/
875  data on388_table0(55) /origin_centers('san_francisco',55)/
876  data on388_table0(56) /origin_centers('arinc_center',56)/
877  data on388_table0(57) /origin_centers('usaf_gwc',57)/
878  data on388_table0(58) /origin_centers('us_navy_fnoc',58)/
879  data on388_table0(59) /origin_centers('noaa_fsl_boulder',59)/
880  data on388_table0(60) /origin_centers('ncar_boulder',60)/
881  data on388_table0(61) /origin_centers('service_argos',61)/
882  data on388_table0(62) /origin_centers('us_naval_ocean_off',62)/
883  data on388_table0(63) /origin_centers('honolulu',64)/
884  data on388_table0(64) /origin_centers('darwin1',65)/
885  data on388_table0(65) /origin_centers('darwin2',66)/
886  data on388_table0(66) /origin_centers('melbourne4',67)/
887  data on388_table0(67) /origin_centers('wellington1',69)/
888  data on388_table0(68) /origin_centers('wellington2',70)/
889  data on388_table0(69) /origin_centers('nadi',71)/
890  data on388_table0(70) /origin_centers('singapore',72)/
891  data on388_table0(71) /origin_centers('malaysia',73)/
892  data on388_table0(72) /origin_centers('ukmo_exeter1',74)/
893  data on388_table0(73) /origin_centers('ukmo_exeter2',75)/
894  data on388_table0(74) /origin_centers('moscow4',76)/
895  data on388_table0(75) /origin_centers('offenbach1',78)/
896  data on388_table0(76) /origin_centers('offenbach2',79)/
897  data on388_table0(77) /origin_centers('rome1',80)/
898  data on388_table0(78) /origin_centers('rome2',81)/
899  data on388_table0(79) /origin_centers('norrkoping1',82)/
900  data on388_table0(80) /origin_centers('norrkoping2',83)/
901  data on388_table0(81) /origin_centers('french_weather_toulouse1',84)/
902  data on388_table0(82) /origin_centers('french_weather_toulouse2',85)/
903  data on388_table0(83) /origin_centers('helsinki',86)/
904  data on388_table0(84) /origin_centers('belgrade',87)/
905  data on388_table0(85) /origin_centers('oslo',88)/
906  data on388_table0(86) /origin_centers('prague',89)/
907  data on388_table0(87) /origin_centers('episkopi',90)/
908  data on388_table0(88) /origin_centers('ankara',91)/
909  data on388_table0(89) /origin_centers('frankfurt_main',92)/
910  data on388_table0(90) /origin_centers('london',93)/
911  data on388_table0(91) /origin_centers('copenhagen',94)/
912  data on388_table0(92) /origin_centers('rota',95)/
913  data on388_table0(93) /origin_centers('athens',96)/
914  data on388_table0(94) /origin_centers('esa',97)/
915  data on388_table0(95) /origin_centers('ecmwf',98)/
916  data on388_table0(96) /origin_centers('de_bilt_netherlands',99)/
917  data on388_table0(97) /origin_centers('brazzaville',100)/
918  data on388_table0(98) /origin_centers('abidjan',101)/
919  data on388_table0(99) /origin_centers('libyan_arab_jamahiriya',102)/
920  data on388_table0(100) /origin_centers('madagascar',103)/
921  data on388_table0(101) /origin_centers('mauritius',104)/
922  data on388_table0(102) /origin_centers('niger',105)/
923  data on388_table0(103) /origin_centers('seychelles',106)/
924  data on388_table0(104) /origin_centers('uganda',107)/
925  data on388_table0(105) /origin_centers('tanzania',108)/
926  data on388_table0(106) /origin_centers('zimbabwe',109)/
927  data on388_table0(107) /origin_centers('hong_kong',110)/
928  data on388_table0(108) /origin_centers('afghanistan',111)/
929  data on388_table0(109) /origin_centers('bahrain',112)/
930  data on388_table0(110) /origin_centers('bangladesh',113)/
931  data on388_table0(111) /origin_centers('bhutan',114)/
932  data on388_table0(112) /origin_centers('cambodia',115)/
933  data on388_table0(113) /origin_centers('dprk',116)/
934  data on388_table0(114) /origin_centers('iran',117)/
935  data on388_table0(115) /origin_centers('iraq',118)/
936  data on388_table0(116) /origin_centers('kazakhstan',119)/
937  data on388_table0(117) /origin_centers('kuwait',120)/
938  data on388_table0(118) /origin_centers('kyrgyz_republic',121)/
939  data on388_table0(119) /origin_centers('lao_pdr',122)/
940  data on388_table0(120) /origin_centers('macao_china',123)/
941  data on388_table0(121) /origin_centers('maldives',124)/
942  data on388_table0(122) /origin_centers('myanmar',125)/
943  data on388_table0(123) /origin_centers('nepal',126)/
944  data on388_table0(124) /origin_centers('oman',127)/
945  data on388_table0(125) /origin_centers('pakistan',128)/
946  data on388_table0(126) /origin_centers('qatar',129)/
947  data on388_table0(127) /origin_centers('yemen',130)/
948  data on388_table0(128) /origin_centers('sri_lanka',131)/
949  data on388_table0(129) /origin_centers('tajikistan',132)/
950  data on388_table0(130) /origin_centers('turkmenistan',133)/
951  data on388_table0(131) /origin_centers('uae',134)/
952  data on388_table0(132) /origin_centers('uzbekistan',135)/
953  data on388_table0(133) /origin_centers('viet_nam ',136)/
954  data on388_table0(134) /origin_centers('bolivia',140)/
955  data on388_table0(135) /origin_centers('guyana',141)/
956  data on388_table0(136) /origin_centers('paraguay',142)/
957  data on388_table0(137) /origin_centers('suriname',143)/
958  data on388_table0(138) /origin_centers('uruguay',144)/
959  data on388_table0(139) /origin_centers('french_guyana',145)/
960  data on388_table0(140) /origin_centers('brazilian_navy_hydro_center',146)/
961  data on388_table0(141) /origin_centers('antigua_barbuda',150)/
962  data on388_table0(142) /origin_centers('bahamas',151)/
963  data on388_table0(143) /origin_centers('barbados',152)/
964  data on388_table0(144) /origin_centers('belize',153)/
965  data on388_table0(145) /origin_centers('british_caribbean_terr_center',154)/
966  data on388_table0(146) /origin_centers('san_jose',155)/
967  data on388_table0(147) /origin_centers('cuba',156)/
968  data on388_table0(148) /origin_centers('dominica',157)/
969  data on388_table0(149) /origin_centers('dominican_republic',158)/
970  data on388_table0(150) /origin_centers('el_salvador',159)/
971  data on388_table0(151) /origin_centers('us_noaa_nesdis',160)/
972  data on388_table0(152) /origin_centers('us_noaa_oar',161)/
973  data on388_table0(153) /origin_centers('guatemala',162)/
974  data on388_table0(154) /origin_centers('haiti',163)/
975  data on388_table0(155) /origin_centers('honduras',164)/
976  data on388_table0(156) /origin_centers('jamaica',165)/
977  data on388_table0(157) /origin_centers('mexico',166)/
978  data on388_table0(158) /origin_centers('netherlands_antilles_aruba',167)/
979  data on388_table0(159) /origin_centers('nicaragua',168)/
980  data on388_table0(160) /origin_centers('panama',169)/
981  data on388_table0(161) /origin_centers('saint_lucia',170)/
982  data on388_table0(162) /origin_centers('trinidad_tobago',171)/
983  data on388_table0(163) /origin_centers('french_departments',172)/
984  data on388_table0(164) /origin_centers('cook_islands',190)/
985  data on388_table0(165) /origin_centers('french_polynesia',191)/
986  data on388_table0(166) /origin_centers('tonga',192)/
987  data on388_table0(167) /origin_centers('vanuatu',193)/
988  data on388_table0(168) /origin_centers('brunei',194)/
989  data on388_table0(169) /origin_centers('indonesia',195)/
990  data on388_table0(170) /origin_centers('kiribati',196)/
991  data on388_table0(171) /origin_centers('federated_states_micronesia',197)/
992  data on388_table0(172) /origin_centers('new_caledonia',198)/
993  data on388_table0(173) /origin_centers('niue',199)/
994  data on388_table0(174) /origin_centers('papua_new_guinea',200)/
995  data on388_table0(175) /origin_centers('philippines',201)/
996  data on388_table0(176) /origin_centers('samoa',202)/
997  data on388_table0(177) /origin_centers('solomon_islands',203)/
998  data on388_table0(178) /origin_centers('frascati',210)/
999  data on388_table0(179) /origin_centers('lanion',211)/
1000  data on388_table0(180) /origin_centers('lisboa',212)/
1001  data on388_table0(181) /origin_centers('reykjavik',213)/
1002  data on388_table0(182) /origin_centers('madrid',214)/
1003  data on388_table0(183) /origin_centers('zurich',215)/
1004  data on388_table0(184) /origin_centers('service_argos_toulouse_fr',216)/
1005  data on388_table0(185) /origin_centers('bratislava',217)/
1006  data on388_table0(186) /origin_centers('budapest',218)/
1007  data on388_table0(187) /origin_centers('ljubljana',219)/
1008  data on388_table0(188) /origin_centers('warsaw',220)/
1009  data on388_table0(189) /origin_centers('zagreb',221)/
1010  data on388_table0(190) /origin_centers('albania',222)/
1011  data on388_table0(191) /origin_centers('armenia',223)/
1012  data on388_table0(192) /origin_centers('austria',224)/
1013  data on388_table0(193) /origin_centers('azerbaijan',225)/
1014  data on388_table0(194) /origin_centers('belarus',226)/
1015  data on388_table0(195) /origin_centers('belgium',227)/
1016  data on388_table0(196) /origin_centers('bosnia_herzegovina',228)/
1017  data on388_table0(197) /origin_centers('bulgaria',229)/
1018  data on388_table0(198) /origin_centers('cyprus',230)/
1019  data on388_table0(199) /origin_centers('estonia',231)/
1020  data on388_table0(200) /origin_centers('georgia',232)/
1021  data on388_table0(201) /origin_centers('dublin',233)/
1022  data on388_table0(202) /origin_centers('israel',234)/
1023  data on388_table0(203) /origin_centers('jordan',235)/
1024  data on388_table0(204) /origin_centers('latvia',236)/
1025  data on388_table0(205) /origin_centers('lebanon',237)/
1026  data on388_table0(206) /origin_centers('lithuania',238)/
1027  data on388_table0(207) /origin_centers('luxembourg',239)/
1028  data on388_table0(208) /origin_centers('malta',240)/
1029  data on388_table0(209) /origin_centers('monaco',241)/
1030  data on388_table0(210) /origin_centers('romania',242)/
1031  data on388_table0(211) /origin_centers('syrian_arab_republic',243)/
1032  data on388_table0(212) /origin_centers('macedonia',244)/
1033  data on388_table0(213) /origin_centers('ukraine',245)/
1034  data on388_table0(214) /origin_centers('republic_moldova',246)/
1035  data on388_table0(215) /origin_centers('eumetsat_op_cen',254)/
1036  data on388_table0(216) /origin_centers('missing',255)/
1037  !
1038  ! Added original center (06/26/2019)
1039  !
1040  data on388_table0(217) /origin_centers('ncsa_argentina',147)/
1041  data on388_table0(218) /origin_centers('brazilian_decea',148)/
1042  !
1043  !
1045  character(len=30) :: genprockey
1046  integer :: genprocval
1047  end type gen_proc
1048  !
1050  type(gen_proc),dimension(MAXGENPROC) :: on388_tablea
1051 
1052  data on388_tablea(1) /gen_proc('res',0)/
1053  data on388_tablea(2) /gen_proc('uvim',2)/
1054  data on388_tablea(3) /gen_proc('ncep_arl_tdm',3)/
1055  data on388_tablea(4) /gen_proc('ncep_arl_smoke',4)/
1056  data on388_tablea(5) /gen_proc('sat_der_prec_temp',5)/
1057  data on388_tablea(6) /gen_proc('gwind_wave_mod',10)/
1058  data on388_tablea(7) /gen_proc('multi_grid_wave_mod',11)/
1059  data on388_tablea(8) /gen_proc('prob_st_surg',12)/
1060  data on388_tablea(9) /gen_proc('lfm_anal',19)/
1061  data on388_tablea(10) /gen_proc('snow_cov_anal',25)/
1062  data on388_tablea(11) /gen_proc('for_gen_field',30)/
1063  data on388_tablea(12) /gen_proc('val_add_post_proc_field',31)/
1064  data on388_tablea(13) /gen_proc('ngm',39)/
1065  data on388_tablea(14) /gen_proc('goi_gfs',42)/
1066  data on388_tablea(15) /gen_proc('goi_fnl',43)/
1067  data on388_tablea(16) /gen_proc('ssta',44)/
1068  data on388_tablea(17) /gen_proc('coast_ocm',45)/
1069  data on388_tablea(18) /gen_proc('hycom_glob',46)/
1070  data on388_tablea(19) /gen_proc('hycom_npb',47)/
1071  data on388_tablea(20) /gen_proc('hycom_nab',48)/
1072  data on388_tablea(21) /gen_proc('ozone_anal_tiros',49)/
1073  data on388_tablea(22) /gen_proc('ozone_anal_nimbus',52)/
1074  data on388_tablea(23) /gen_proc('lfm_fofm',53)/
1075  data on388_tablea(24) /gen_proc('roi',64)/
1076  data on388_tablea(25) /gen_proc('t80l18gfs',68)/
1077  data on388_tablea(26) /gen_proc('t80l18mrf',69)/
1078  data on388_tablea(27) /gen_proc('qlm',70)/
1079  data on388_tablea(28) /gen_proc('fogfm_opc',73)/
1080  data on388_tablea(29) /gen_proc('gulf_of_mex_wind_wave',74)/
1081  data on388_tablea(30) /gen_proc('gulf_of_alas_wind_wave',75)/
1082  data on388_tablea(31) /gen_proc('bias_corr_mrf',76)/
1083  data on388_tablea(32) /gen_proc('t126l28gfs',77)/
1084  data on388_tablea(33) /gen_proc('t126l28mrf',78)/
1085  data on388_tablea(34) /gen_proc('backup_from_prev_run',79)/
1086  data on388_tablea(35) /gen_proc('t62l28mrf',80)/
1087  data on388_tablea(36) /gen_proc('anal_gfs',81)/
1088  data on388_tablea(37) /gen_proc('anal_gdas',82)/
1089  data on388_tablea(38) /gen_proc('meso_nam12km',84)/
1090  data on388_tablea(39) /gen_proc('early_hur_wind_speed_prob',86)/
1091  data on388_tablea(40) /gen_proc('cac_ensem_fcsts_spect',87)/
1092  data on388_tablea(41) /gen_proc('nww3_owm',88)/
1093  data on388_tablea(42) /gen_proc('nmm_8km',89)/
1094  data on388_tablea(43) /gen_proc('t62l28extmrf',90)/
1095  data on388_tablea(44) /gen_proc('t62l28extgfs',91)/
1096  data on388_tablea(45) /gen_proc('t62l28mrffnl',92)/
1097  data on388_tablea(46) /gen_proc('t62l28gdasmrf',93)/
1098  data on388_tablea(47) /gen_proc('t170l42mrf',94)/
1099  data on388_tablea(48) /gen_proc('t126l42mrf',95)/
1100  data on388_tablea(49) /gen_proc('gfs_avn',96)/
1101  data on388_tablea(50) /gen_proc('cfs_t62l64_l40mom3',98)/
1102  data on388_tablea(51) /gen_proc('misc_test_id',99)/
1103  data on388_tablea(52) /gen_proc('ruc_sanal_60km_40n',100)/
1104  data on388_tablea(53) /gen_proc('core',101)/
1105  data on388_tablea(54) /gen_proc('rap',105)/
1106  data on388_tablea(55) /gen_proc('gefs',107)/
1107  data on388_tablea(56) /gen_proc('lamp',108)/
1108  data on388_tablea(57) /gen_proc('rtma',109)/
1109  data on388_tablea(58) /gen_proc('nam_15k',110)/
1110  data on388_tablea(59) /gen_proc('nam_gen_sref',111)/
1111  data on388_tablea(60) /gen_proc('wrf_nmm_ncep',112)/
1112  data on388_tablea(61) /gen_proc('prod_ncep_sref',113)/
1113  data on388_tablea(62) /gen_proc('naefs_prod_ncep_cmc',114)/
1114  data on388_tablea(63) /gen_proc('down_scal_gfs_nam_ext',115)/
1115  data on388_tablea(64) /gen_proc('wrf_em_ncar_arwrf',116)/
1116  data on388_tablea(65) /gen_proc('ice_conc_anal',120)/
1117  data on388_tablea(66) /gen_proc('wna_reg_wav_mod',121)/
1118  data on388_tablea(67) /gen_proc('alas_wat_reg_wav_mod',122)/
1119  data on388_tablea(68) /gen_proc('na_hurr_wav_mod',123)/
1120  data on388_tablea(69) /gen_proc('enp_reg_wav_mod',124)/
1121  data on388_tablea(70) /gen_proc('np_hurr_wav_mod',125)/
1122  data on388_tablea(71) /gen_proc('sea_ice_fcst_mod',126)/
1123  data on388_tablea(72) /gen_proc('lake_ice_fcst_mod',127)/
1124  data on388_tablea(73) /gen_proc('glob_oce_fcst_mod',128)/
1125  data on388_tablea(74) /gen_proc('godas',129)/
1126  data on388_tablea(75) /gen_proc('merge_fields_ruc_nam_gfs',130)/
1127  data on388_tablea(76) /gen_proc('great_lakes_wave_mod',131)/
1128  data on388_tablea(77) /gen_proc('narr',140)/
1129  data on388_tablea(78) /gen_proc('ldafs',141)/
1130  data on388_tablea(79) /gen_proc('nwsrfs',150)/
1131  data on388_tablea(80) /gen_proc('nwsffgs',151)/
1132  data on388_tablea(81) /gen_proc('wsr_88d_s2_prec_anal',152)/
1133  data on388_tablea(82) /gen_proc('wsr_88d_s3_prec_anal',153)/
1134  data on388_tablea(83) /gen_proc('qpf_ncep',180)/
1135  data on388_tablea(84) /gen_proc('rfcqpf_ncep',181)/
1136  data on388_tablea(85) /gen_proc('rfcqpe_ncep',182)/
1137  data on388_tablea(86) /gen_proc('ndfd_ncep_hpc',183)/
1138  data on388_tablea(87) /gen_proc('ncwd_ncep_awc',190)/
1139  data on388_tablea(88) /gen_proc('cipap_ncep_awc',191)/
1140  data on388_tablea(89) /gen_proc('anal_ncep_awc',192)/
1141  data on388_tablea(90) /gen_proc('fcst_ncep_awc',193)/
1142  data on388_tablea(91) /gen_proc('cdas2',195)/
1143  data on388_tablea(92) /gen_proc('cdas2_regen',196)/
1144  data on388_tablea(93) /gen_proc('cdas',197)/
1145  data on388_tablea(94) /gen_proc('cdas_regen',198)/
1146  data on388_tablea(95) /gen_proc('cfsr_t382l64_l40mom4',199)/
1147  data on388_tablea(96) /gen_proc('cpc_man_fcst',200)/
1148  data on388_tablea(97) /gen_proc('cpc_auto_prod',201)/
1149  data on388_tablea(98) /gen_proc('epa_usne',210)/
1150  data on388_tablea(99) /gen_proc('epa_use',211)/
1151  data on388_tablea(100) /gen_proc('spc_man_fcst',215)/
1152  data on388_tablea(101) /gen_proc('ncep_opc_auto_prod',220)/
1153  data on388_tablea(102) /gen_proc('missing',255)/
1154  data on388_tablea(103) /gen_proc('ngac',117)/
1155  data on388_tablea(104) /gen_proc('hrrr',83)/
1156  data on388_tablea(105) /gen_proc('ncep_arl_dust',6)/
1157  data on388_tablea(106) /gen_proc('hrricane_mult_wave',13)/
1158  data on388_tablea(107) /gen_proc('extratropical_storm_surge',14)/
1159  data on388_tablea(108) /gen_proc('nearshore_wave_prediction',15)/
1160  data on388_tablea(109) /gen_proc('href',132)/
1161  data on388_tablea(110) /gen_proc('great_lakes_short_range_mod',133)/
1162  !
1163  ! Added new entries in tablea (06/27/2019)
1164  !
1165  data on388_tablea(111) /gen_proc('extra_trop_storm_surge',16)/
1166  data on388_tablea(112) /gen_proc('extra_trop_storm_surge_pacific',17)/
1167  data on388_tablea(113) /gen_proc('prob_extra_trop_storm_surge',18)/
1168  data on388_tablea(114) /gen_proc('linmit_fine_mesh_anal',19)/
1169  data on388_tablea(115) /gen_proc('extra_trop_storm_surge_micronesia',20)/
1170  data on388_tablea(116) /gen_proc('hur_weather_res_and_fcst',71)/
1171  data on388_tablea(117) /gen_proc('hur_non-hydro_multi',72)/
1172  !
1173  ! Added new entries in tablea (03/11/2021)
1174  !
1175  data on388_tablea(118) /gen_proc('rrfs',134)/
1176 
1177 contains
1178  !
1189  subroutine get_g2_subcenters(key,value,ierr)
1190  character(len=*) :: key
1191  integer :: value,n,ierr
1192  !
1193  do n=1,maxsubcen
1194  if (trim(tablec(n)%subcenkey).eq.trim(key)) then
1195  value=tablec(n)%subcenval
1196  return
1197  endif
1198  enddo
1199  print *,'get_g2_subcenters key: ', key, &
1200  ' not found in ON-388 table C'
1201  ierr=9
1202  return
1203  end subroutine get_g2_subcenters
1213  subroutine get_g2_versionno(key,value,ierr)
1214  character(len=*) :: key
1215  integer :: value,n,ierr
1216  !
1217  do n=1,maxver
1218  if (trim(table1_0(n)%verskey).eq.trim(key)) then
1219  value=table1_0(n)%versval
1220  return
1221  endif
1222  enddo
1223  print *,'get_g2_versionno key: ', key, &
1224  ' not found in table 1.0'
1225  ierr=9
1226  return
1227  end subroutine get_g2_versionno
1237  subroutine get_g2_loctabversno(key,value,ierr)
1238  character(len=*) :: key
1239  integer :: value,n,ierr
1240  !
1241  do n=1,maxlocver
1242  if (trim(table1_1(n)%locverskey).eq.trim(key)) then
1243  value=table1_1(n)%locversval
1244  return
1245  endif
1246  enddo
1247  print *,'get_g2_loctabversno key: ', key, &
1248  ' not found in table 1.1'
1249  ierr=9
1250  return
1251  end subroutine get_g2_loctabversno
1255 
1261  subroutine get_g2_sigreftime(key,value,ierr)
1262  ! integer, parameter :: MAXREFTIME=15
1263  character(len=*) :: key
1264  integer :: value,n,ierr
1265  !
1266  do n=1,maxreftime
1267  if (trim(table1_2(n)%sigrefkey).eq.trim(key)) then
1268  value=table1_2(n)%sigrefval
1269  return
1270  endif
1271  enddo
1272  print *,'get_g2_sigreftime key: ', key, &
1273  ' not found in table 1.2'
1274  ierr=9
1275  return
1276  end subroutine get_g2_sigreftime
1286  subroutine get_g2_prodstatus(key,value,ierr)
1287  character(len=*) :: key
1288  integer :: value,n,ierr
1289  !
1290  do n=1,maxprodstatus
1291  if (trim(table1_3(n)%prodstatuskey).eq.trim(key)) then
1292  value=table1_3(n)%prodstatusval
1293  return
1294  endif
1295  enddo
1296  print *,'get_g2_prodstatus key: ', key, &
1297  ' not found in table 1.3'
1298  ierr=9
1299  return
1300  end subroutine get_g2_prodstatus
1310  subroutine get_g2_typeofdata(key,value,ierr)
1311  character(len=*) :: key
1312  integer :: value,n,ierr
1313  !
1314  do n=1,maxtypeofdata
1315  if (trim(table1_4(n)%typeofdatakey).eq.trim(key)) then
1316  value=table1_4(n)%typeofdataval
1317  return
1318  endif
1319  enddo
1320  print *,'get_g2_typeofdata key: ', key, &
1321  ' not found in table 1.4'
1322  ierr=9
1323  return
1324  end subroutine get_g2_typeofdata
1334  subroutine get_g2_typeofgenproc(key,value,ierr)
1335  character(len=*) :: key
1336  integer :: value,n,ierr
1337  !
1338  do n=1,maxtypeofgenproc
1339  if (trim(table4_3(n)%typeofgenprockey).eq.trim(key)) then
1340  value=table4_3(n)%typeofgenprocval
1341  return
1342  endif
1343  enddo
1344  print *,'get_g2_typeofgenproc key}: ', key, &
1345  ' not found in table 4.3'
1346  ierr=9
1347  return
1348  end subroutine get_g2_typeofgenproc
1358  subroutine get_g2_unitoftimerange(key,value,ierr)
1359  character(len=*) :: key
1360  integer :: value,n,ierr
1361  !
1362  do n=1,maxunitoftimerange
1363  if (trim(table4_4(n)%unitoftimerangekey).eq.trim(key)) then
1364  value=table4_4(n)%unitoftimerangeval
1365  return
1366  endif
1367  enddo
1368 
1369  value=255
1370  print *,'get_g2_unitoftimerange key: ', key, &
1371  ' not found in table 4.4'
1372  ierr=9
1373  return
1374  end subroutine get_g2_unitoftimerange
1384  subroutine get_g2_fixedsurfacetypes(key,value,ierr)
1385  character(len=*) :: key
1386  integer :: value,n,ierr
1387  !
1388  do n=1,maxfixedsurfacetypes
1389  if (trim(table4_5(n)%fixedsurfacetypeskey).eq.trim(key)) then
1390  value=table4_5(n)%fixedsurfacetypesval
1391  return
1392  endif
1393  enddo
1394 
1395  value=table4_5(66)%fixedsurfacetypesval
1396  ! print *,'get_g2_fixedsurfacetypes key: ', trim(key), value, &
1397  ! ' not found in table 4.5'
1398  ! ierr=9
1399  return
1400  end subroutine get_g2_fixedsurfacetypes
1413  subroutine get_g2_statprocesstypes(key,value,ierr)
1414  character(len=*),intent(in) :: key
1415  ! integer,intent(out) :: value,ierr
1416  integer :: value,ierr
1417  integer :: n
1418  !
1419  do n=1,maxstatprocesstypes
1420  if (trim(table4_10(n)%statprocesstypeskey).eq.key) then
1421  value=table4_10(n)%statprocesstypesval
1422  return
1423  endif
1424  enddo
1425  print *,'get_g2_statprocesstypes key: ', key, &
1426  ' not found in table 4.10'
1427  ierr=9
1428  return
1429  end subroutine get_g2_statprocesstypes
1441  subroutine get_g2_typeoftimeintervals(key,value,ierr)
1442  character(len=*) :: key
1443  integer :: value,n,ierr
1444  !
1445  do n=1,maxtypeoftimeintvls
1446  if (trim(table4_11(n)%typeoftimeintervalskey).eq.key) then
1447  value=table4_11(n)%typeoftimeintervalsval
1448  return
1449  endif
1450  enddo
1451  print *,'get_g2_typeoftimeintervals key: ', key, &
1452  ' not found in table 4.11'
1453  ierr=9
1454  return
1455  end subroutine get_g2_typeoftimeintervals
1466  subroutine get_g2_typeofintervals(key,value,ierr)
1467  character(len=*) :: key
1468  integer :: value,n,ierr
1469  !
1470  do n=1,maxtypeofintvls
1471  if (trim(table4_91(n)%typeofintervalskey).eq.trim(key)) then
1472  value=table4_91(n)%typeofintervalsval
1473  return
1474  endif
1475  enddo
1476 
1477  if(trim(key).eq.'') then
1478  value=255
1479  return
1480  endif
1481  print *,'get_g2_typeofintervals key: ', key, &
1482  ' not found in table 4.91'
1483  ierr=9
1484  return
1485  end subroutine get_g2_typeofintervals
1497  subroutine get_g2_typeofaerosol(key,value,ierr)
1498  character(len=*) :: key
1499  integer :: value,n,ierr
1500  !
1501  do n=1,maxtypeofaerosol
1502  if (trim(table4_233(n)%typeofaerosolkey).eq.trim(key)) then
1503  value=table4_233(n)%typeofaerosolval
1504  return
1505  endif
1506  enddo
1507 
1508  if (trim(key).eq.'') then
1509  value=65535
1510  return
1511  endif
1512  print *,'get_g2_typeofaerosol key: ', key, &
1513  ' not found in table 4.233'
1514  ierr=9
1515  return
1516  end subroutine get_g2_typeofaerosol
1527  subroutine get_g2_on388origincenters(key,value,ierr)
1528  character(len=*) :: key
1529  integer :: value,n,ierr
1530  !
1531  do n=1,maxorigincenters
1532  if (trim(on388_table0(n)%origincenterskey).eq.trim(key)) then
1533  value=on388_table0(n)%origincentersval
1534  return
1535  endif
1536  enddo
1537  print *,'get_g2_on388origincenters key: ', key, &
1538  ' not found in ON-388 - table 0'
1539  ierr=9
1540  return
1541  end subroutine get_g2_on388origincenters
1552  subroutine get_g2_on388genproc(key,value,ierr)
1553  character(len=*) :: key
1554  integer :: value,n,ierr
1555  !
1556  do n=1,maxgenproc
1557  if (trim(on388_tablea(n)%genprockey).eq.trim(key)) then
1558  value=on388_tablea(n)%genprocval
1559  return
1560  endif
1561  enddo
1562  print *,'get_g2_on388genproc key: ', key, &
1563  ' not found in ON-388 - table A'
1564  ierr=9
1565  return
1566  end subroutine get_g2_on388genproc
1576  subroutine get_g2_typeoforigfieldvals(key,value,ierr)
1577  character(len=*) :: key
1578  integer :: value,n,ierr
1579  !
1580  do n=1,maxtypeoforigfieldval
1581  if (trim(table5_1(n)%typeoforigfieldvalskey).eq.trim(key)) then
1582  value=table5_1(n)%typeoforigfieldvals
1583  return
1584  endif
1585  enddo
1586 
1587  print *,'get_g2_typeoforigfieldvals key: ', key, &
1588  ' not found in table 5.1'
1589  ierr=9
1590  return
1591  end subroutine get_g2_typeoforigfieldvals
1602  subroutine get_g2_ordofspcdiffvals(key,value,ierr)
1603  character(len=*) :: key
1604  integer :: value,n,ierr
1605  !
1606  do n=1,maxordofsptdiff
1607  if (trim(table5_6(n)%ordofsptdiffkey).eq.trim(key)) then
1608  value=table5_6(n)%ordofsptdiffvals
1609  return
1610  endif
1611  enddo
1612  print *,'get_g2_ordofsptdiffvals key: ', key, &
1613  ' not found in table 5.6'
1614  ierr=9
1615  value=1
1616  return
1617  end subroutine get_g2_ordofspcdiffvals
1627  subroutine get_g2_typeofcompression(key,value,ierr)
1628  character(len=*) :: key
1629  integer :: value,n,ierr
1630  !
1631  do n=1,maxtypeofcompression
1632  if (trim(table5_40(n)%typeofcompressionkey).eq.trim(key)) then
1633  value=table5_40(n)%typeofcompressionvals
1634  return
1635  endif
1636  enddo
1637  print *,'get_g2_typeofcompression key: ', key, &
1638  ' not found in table 5.40'
1639  ierr=9
1640  return
1641  end subroutine get_g2_typeofcompression
1655  subroutine get_g2_sec5packingmethod(key,value,ierr)
1656  character(len=*) :: key
1657  integer :: value,n,ierr
1658  !
1659  do n=1,maxtypeofpackingmethod
1660  if (trim(table5_0(n)%packingmethodkey).eq.trim(key)) then
1661  value=table5_0(n)%packingmethodvals
1662  return
1663  endif
1664  enddo
1665  print *,'get_g2_sec5packingmethod key: ', key, &
1666  ' not found in table 5.0'
1667  ierr=9
1668  return
1669  end subroutine get_g2_sec5packingmethod
1680  subroutine g2sec0(idisc,listsec0)
1681  integer :: idisc
1682  integer :: listsec0(2)
1683  !
1684  listsec0(1) = idisc
1685  listsec0(2) = 2 ! Edition number - 2 for GRIB2
1686  end subroutine g2sec0
1706  subroutine g2sec1(origin_key,subcen_key,vers_key,lvers_key,sigreftime_key,refyear_val, &
1707  refmon_val,refday_val,refhour_val,refmin_val,refsec_val,prodstatus_key, &
1708  typeofdata_key,listsec1)
1709  ! integer,intent(inout) :: listsec1(13)
1710  integer :: listsec1(13)
1711  integer :: refyear_val,refmon_val,refday_val,refhour_val,refmin_val,refsec_val
1712  character(len=*) :: origin_key,subcen_key,vers_key,lvers_key, &
1713  sigreftime_key,prodstatus_key,typeofdata_key
1714  !
1715  integer(4) :: value,ierr
1716  !
1717  call get_g2_on388origincenters(origin_key,value,ierr)
1718  listsec1(1) = value
1719  !
1720  call get_g2_subcenters(subcen_key,value,ierr)
1721  listsec1(2) = value
1722  !
1723  call get_g2_versionno(vers_key,value,ierr)
1724  listsec1(3) = value
1725  !
1726  call get_g2_loctabversno(lvers_key,value,ierr)
1727  listsec1(4) = value
1728  !
1729  call get_g2_sigreftime(sigreftime_key,value,ierr)
1730  listsec1(5) = value
1731  !
1732  ! Set the time yyyy,mm,dd,hh,min,sec
1733  !
1734  listsec1(6) = refyear_val
1735  listsec1(7) = refmon_val
1736  listsec1(8) = refday_val
1737  listsec1(9) = refhour_val
1738  listsec1(10) = refmin_val
1739  listsec1(11) = refsec_val
1740  !
1741  call get_g2_prodstatus(prodstatus_key,value,ierr)
1742  listsec1(12) = value
1743  !
1744  call get_g2_typeofdata(typeofdata_key,value,ierr)
1745  listsec1(13) = value
1746  !
1747  end subroutine g2sec1
1770  subroutine g2sec4_temp0(icatg,iparm,typ_gen_proc_key, &
1771  gen_proc_or_mod_key,hrs_obs_cutoff,min_obs_cutoff, &
1772  unit_of_time_key,fcst_time,lvl_type1,scale_fac1, &
1773  scaled_val1,lvl_type2,scale_fac2,scaled_val2, &
1774  ipdstmpl0)
1775  integer(4),intent(in) :: icatg,iparm,hrs_obs_cutoff,min_obs_cutoff, &
1776  fcst_time,scale_fac1,scaled_val1,scale_fac2,scaled_val2
1777  ! integer(4),intent(inout) :: bckgnd_gen_proc_id ! defined by the center
1778  !
1779  character(len=*),intent(in) :: typ_gen_proc_key,gen_proc_or_mod_key, &
1780  unit_of_time_key,lvl_type1,lvl_type2
1781  !
1782  integer(4),intent(inout) :: ipdstmpl0(15)
1783  !
1784  !local vars
1785  integer(4) :: value,ierr
1786  integer(4) :: bckgnd_gen_proc_id ! defined by the center
1787  !
1788  bckgnd_gen_proc_id=0 ! defined by the center
1789  !
1790  ipdstmpl0(1) = icatg
1791  ipdstmpl0(2) = iparm
1792  !
1793  call get_g2_typeofgenproc(typ_gen_proc_key,value,ierr)
1794  ipdstmpl0(3) = value
1795  !
1796  ipdstmpl0(4) = bckgnd_gen_proc_id
1797  !
1798  call get_g2_on388genproc(gen_proc_or_mod_key,value,ierr)
1799  ipdstmpl0(5) = value
1800  !
1801  ipdstmpl0(6) = hrs_obs_cutoff
1802  ipdstmpl0(7) = min_obs_cutoff
1803  !
1804  call get_g2_unitoftimerange(unit_of_time_key,value,ierr)
1805  ipdstmpl0(8) = value
1806  ipdstmpl0(9) = fcst_time
1807  !
1808  call get_g2_fixedsurfacetypes(lvl_type1,value,ierr)
1809  ipdstmpl0(10) = value
1810  ipdstmpl0(11) = scale_fac1
1811  ipdstmpl0(12) = scaled_val1
1812  !
1813  call get_g2_fixedsurfacetypes(lvl_type2,value,ierr)
1814  ipdstmpl0(13) = value
1815  !
1816  ipdstmpl0(14) = scale_fac2
1817  ipdstmpl0(15) = scaled_val2
1818  !
1819  end subroutine g2sec4_temp0
1872  subroutine g2sec4_temp8(icatg,iparm,typ_gen_proc_key,gen_proc_or_mod_key, &
1873  hrs_obs_cutoff,min_obs_cutoff,unit_of_time_key, &
1874  fcst_time,lvl_type1,scale_fac1,scaled_val1,lvl_type2, &
1875  scale_fac2,scaled_val2,year_intvl, &
1876  mon_intvl,day_intvl,hour_intvl,min_intvl,sec_intvl, &
1877  num_time_range,stat_miss_val,type_of_stat_proc, &
1878  type_of_time_inc,stat_unit_time_key, &
1879  leng_time_range_stat,stat_unit_time_key_succ, &
1880  time_inc_betwn_succ_fld,ipdstmpl8)
1881  !
1882  integer(4),intent(in) :: icatg,iparm,hrs_obs_cutoff,min_obs_cutoff,fcst_time, &
1883  scale_fac1,scaled_val1,scale_fac2,scaled_val2
1884  integer(4),intent(in) :: year_intvl,mon_intvl,day_intvl,hour_intvl,min_intvl, &
1885  sec_intvl,num_time_range,stat_miss_val, &
1886  leng_time_range_stat,time_inc_betwn_succ_fld
1887  !
1888  character(len=*),intent(in) :: typ_gen_proc_key,gen_proc_or_mod_key, &
1889  unit_of_time_key,lvl_type1,lvl_type2, &
1890  type_of_stat_proc,type_of_time_inc, &
1891  stat_unit_time_key,stat_unit_time_key_succ
1892  !
1893  integer(4) :: bckgnd_gen_proc_id ! defined by the center
1894  !
1895  integer(4),intent(inout) :: ipdstmpl8(29) ! currently works only for n=1
1896  ! later on, this will be generalized
1897  !
1898  !-- local vars
1899  integer(4) :: value,ierr
1900  !
1901  bckgnd_gen_proc_id=0
1902  !
1903  ipdstmpl8(1) = icatg
1904  ipdstmpl8(2) = iparm
1905  !
1906  call get_g2_typeofgenproc(typ_gen_proc_key,value,ierr)
1907  ipdstmpl8(3) = value
1908  !
1909  ipdstmpl8(4) = bckgnd_gen_proc_id
1910  !
1911  call get_g2_on388genproc(gen_proc_or_mod_key,value,ierr)
1912  ipdstmpl8(5) = value
1913  !
1914  ipdstmpl8(6) = hrs_obs_cutoff
1915  ipdstmpl8(7) = min_obs_cutoff
1916  !
1917  call get_g2_unitoftimerange(unit_of_time_key,value,ierr)
1918  ipdstmpl8(8) = value
1919  ipdstmpl8(9) = fcst_time
1920  !
1921  call get_g2_fixedsurfacetypes(lvl_type1,value,ierr)
1922  ipdstmpl8(10) = value
1923  ipdstmpl8(11) = scale_fac1
1924  ipdstmpl8(12) = scaled_val1
1925  !
1926  call get_g2_fixedsurfacetypes(lvl_type2,value,ierr)
1927  ipdstmpl8(13) = value
1928  !
1929  ipdstmpl8(14) = scale_fac2
1930  ipdstmpl8(15) = scaled_val2
1931  ipdstmpl8(16) = year_intvl
1932  ipdstmpl8(17) = mon_intvl
1933  ipdstmpl8(18) = day_intvl
1934  ipdstmpl8(19) = hour_intvl
1935  ipdstmpl8(20) = min_intvl
1936  ipdstmpl8(21) = sec_intvl
1937  !
1938  ipdstmpl8(22) = num_time_range ! choose n=1 for this case
1939  ipdstmpl8(23) = stat_miss_val ! choose 0 for this case
1940  !
1941  call get_g2_statprocesstypes(type_of_stat_proc,value,ierr)
1942  ipdstmpl8(24) = value ! types_of_stat_proc='accumulation'
1943  !
1944  call get_g2_typeoftimeintervals(type_of_time_inc,value,ierr)
1945  ipdstmpl8(25) = value ! type_of_time_inc='same_start_time_fcst_fcst_time_inc'
1946  ! value = 2 (Successive times processed have same start
1947  ! time of forecast, forecast time is incremented)
1948  !
1949  call get_g2_unitoftimerange(stat_unit_time_key,value,ierr)
1950  ipdstmpl8(26) = value ! stat_unit_time_key='hour'
1951  ! value = 1
1952  ipdstmpl8(27) = leng_time_range_stat ! value = 6
1953  !
1954  call get_g2_unitoftimerange(stat_unit_time_key_succ,value,ierr)
1955  ! stat_unit_time_key_succ='missing'
1956  ipdstmpl8(28) = value ! value = 255
1957  !
1958  ipdstmpl8(29) = time_inc_betwn_succ_fld ! value = 0
1959  !
1960  end subroutine g2sec4_temp8
1989  subroutine g2sec4_temp44(icatg,iparm,aer_type,typ_intvl_size, &
1990  scale_fac1_size,scale_val1_size,scale_fac2_size, &
1991  scale_val2_size,typ_gen_proc_key, &
1992  gen_proc_or_mod_key,hrs_obs_cutoff,min_obs_cutoff, &
1993  unit_of_time_key,fcst_time,lvl_type1,scale_fac1, &
1994  scaled_val1,lvl_type2,scale_fac2,scaled_val2, &
1995  ipdstmpl44)
1996  integer(4),intent(in) :: icatg,iparm,hrs_obs_cutoff,min_obs_cutoff, &
1997  scale_fac1_size,scale_fac2_size, &
1998  fcst_time,scale_fac1,scaled_val1, scale_fac2,scaled_val2
1999  real,intent(in) :: scale_val1_size,scale_val2_size
2000  !
2001  character(len=*),intent(in) :: aer_type,typ_intvl_size,typ_gen_proc_key, &
2002  gen_proc_or_mod_key,unit_of_time_key,lvl_type1,lvl_type2
2003  !
2004  integer(4),intent(inout) :: ipdstmpl44(21)
2005  !
2006  !local vars
2007  integer(4) :: value,ierr
2008  integer(4) :: bckgnd_gen_proc_id ! defined by the center
2009  !
2010  bckgnd_gen_proc_id=0 ! defined by the center
2011  !
2012  ipdstmpl44(1) = icatg
2013  ipdstmpl44(2) = iparm
2014  !
2015  call get_g2_typeofaerosol(aer_type,value,ierr)
2016  ipdstmpl44(3) = value
2017  !
2018  call get_g2_typeofintervals(typ_intvl_size,value,ierr)
2019  ipdstmpl44(4) = value
2020  ipdstmpl44(5) = scale_fac1_size
2021  ipdstmpl44(6) = scale_val1_size
2022  ipdstmpl44(7) = scale_fac2_size
2023  ipdstmpl44(8) = scale_val2_size
2024  !
2025  call get_g2_typeofgenproc(typ_gen_proc_key,value,ierr)
2026  ipdstmpl44(9) = value
2027  !
2028  ipdstmpl44(10) = bckgnd_gen_proc_id
2029  !
2030  call get_g2_on388genproc(gen_proc_or_mod_key,value,ierr)
2031  ipdstmpl44(11) = value
2032  !
2033  ipdstmpl44(12) = hrs_obs_cutoff
2034  ipdstmpl44(13) = min_obs_cutoff
2035  !
2036  call get_g2_unitoftimerange(unit_of_time_key,value,ierr)
2037  ipdstmpl44(14) = value
2038  ipdstmpl44(15) = fcst_time
2039  !
2040  call get_g2_fixedsurfacetypes(lvl_type1,value,ierr)
2041  ipdstmpl44(16) = value
2042  ipdstmpl44(17) = scale_fac1
2043  ipdstmpl44(18) = scaled_val1
2044  !
2045  call get_g2_fixedsurfacetypes(lvl_type2,value,ierr)
2046  ipdstmpl44(19) = value
2047  !
2048  ipdstmpl44(20) = scale_fac2
2049  ipdstmpl44(21) = scaled_val2
2050  !
2051  end subroutine g2sec4_temp44
2085  subroutine g2sec4_temp48(icatg,iparm,aer_type,typ_intvl_size, &
2086  scale_fac1_size,scale_val1_size,scale_fac2_size, &
2087  scale_val2_size,typ_intvl_wavelength, &
2088  scale_fac1_wavelength,scale_val1_wavelength, &
2089  scale_fac2_wavelength,scale_val2_wavelength, &
2090  typ_gen_proc_key, gen_proc_or_mod_key, &
2091  hrs_obs_cutoff,min_obs_cutoff, &
2092  unit_of_time_key,fcst_time,lvl_type1,scale_fac1, &
2093  scaled_val1,lvl_type2,scale_fac2,scaled_val2, &
2094  ipdstmpl48)
2095  integer(4),intent(in) :: icatg,iparm,hrs_obs_cutoff,min_obs_cutoff, &
2096  scale_fac1_size,scale_fac2_size, scale_fac1_wavelength, &
2097  scale_fac2_wavelength, &
2098  fcst_time,scale_fac1,scaled_val1, &
2099  scale_fac2,scaled_val2
2100  real,intent(in) :: scale_val1_size,scale_val2_size,scale_val1_wavelength, &
2101  scale_val2_wavelength
2102  !
2103  character(len=*),intent(in) :: aer_type,typ_intvl_size, &
2104  typ_intvl_wavelength,typ_gen_proc_key, &
2105  gen_proc_or_mod_key,unit_of_time_key,lvl_type1,lvl_type2
2106  !
2107  integer(4),intent(inout) :: ipdstmpl48(26)
2108  !
2109  !local vars
2110  integer(4) :: value,ierr
2111  integer(4) :: bckgnd_gen_proc_id ! defined by the center
2112  !
2113  bckgnd_gen_proc_id=0 ! defined by the center
2114  !
2115  ipdstmpl48(1) = icatg
2116  ipdstmpl48(2) = iparm
2117  !
2118  call get_g2_typeofaerosol(aer_type,value,ierr)
2119  ipdstmpl48(3) = value
2120  !
2121  call get_g2_typeofintervals(typ_intvl_size,value,ierr)
2122  ipdstmpl48(4) = value
2123  ipdstmpl48(5) = scale_fac1_size
2124  ipdstmpl48(6) = nint(scale_val1_size)
2125  ipdstmpl48(7) = scale_fac2_size
2126  ipdstmpl48(8) = nint(scale_val2_size)
2127  !
2128  call get_g2_typeofintervals(typ_intvl_wavelength,value,ierr)
2129  ipdstmpl48(9) = value
2130  ipdstmpl48(10) = scale_fac1_wavelength
2131  ipdstmpl48(11) = nint(scale_val1_wavelength)
2132  ipdstmpl48(12) = scale_fac2_wavelength
2133  ipdstmpl48(13) = nint(scale_val2_wavelength)
2134  !
2135  call get_g2_typeofgenproc(typ_gen_proc_key,value,ierr)
2136  ipdstmpl48(14) = value
2137  !
2138  ipdstmpl48(15) = bckgnd_gen_proc_id
2139  !
2140  call get_g2_on388genproc(gen_proc_or_mod_key,value,ierr)
2141  ipdstmpl48(16) = value
2142  !
2143  ipdstmpl48(17) = hrs_obs_cutoff
2144  ipdstmpl48(18) = min_obs_cutoff
2145  !
2146  call get_g2_unitoftimerange(unit_of_time_key,value,ierr)
2147  ipdstmpl48(19) = value
2148  ipdstmpl48(20) = fcst_time
2149  !
2150  call get_g2_fixedsurfacetypes(lvl_type1,value,ierr)
2151  ipdstmpl48(21) = value
2152  ipdstmpl48(22) = scale_fac1
2153  ipdstmpl48(23) = scaled_val1
2154  !
2155  call get_g2_fixedsurfacetypes(lvl_type2,value,ierr)
2156  ipdstmpl48(24) = value
2157  !
2158  ipdstmpl48(25) = scale_fac2
2159  ipdstmpl48(26) = scaled_val2
2160  !
2161  end subroutine g2sec4_temp48
2162  !
2163  !
2172  subroutine get_g2_typeofensfcst(key,value,ierr)
2173  character(len=*) :: key
2174  integer :: value,n,ierr
2175  !
2176  do n=1,maxtypeofensfcst
2177  if (trim(table4_6(n)%typeofensfcstkey).eq.trim(key)) then
2178  value=table4_6(n)%typeofensfcstval
2179  return
2180  endif
2181  enddo
2182  print *,'get_g2_typeofensfcst key: ', key, &
2183  ' not found in table 4.6'
2184  ierr=9
2185  return
2186  end subroutine get_g2_typeofensfcst
2196  subroutine get_g2_typeofderivefcst(key,value,ierr)
2197  character(len=*) :: key
2198  integer :: value,n,ierr
2199  !
2200  do n=1,maxtypeofderivefcst
2201  if (trim(table4_7(n)%typeofderivefcstkey).eq.trim(key)) then
2202  value=table4_7(n)%typeofderivefcstval
2203  return
2204  endif
2205  enddo
2206  print *,'get_g2_typeofderivefcst key: ', key, &
2207  ' not found in table 4.7'
2208  ierr=9
2209  return
2210  end subroutine get_g2_typeofderivefcst
2233  subroutine g2sec5_temp0(dec_scale_fac,bin_scale_fac,tlnumbits,ifield5)
2234  integer(4),intent(in) :: bin_scale_fac,dec_scale_fac,tlnumbits
2235  integer(4),intent(out) :: ifield5(5)
2236  ! character(len=50) :: type_of_field
2237  integer(4) :: value,ierr
2238  !
2239  ifield5(1) = 0 ! Any value. Will be later overwritten
2240  ifield5(2) = bin_scale_fac
2241  ifield5(3) = dec_scale_fac
2242  ifield5(4) = tlnumbits
2243  ifield5(5) = 0 !g2 lib only 0
2244  !
2245  end subroutine g2sec5_temp0
2262  subroutine g2sec5_temp2(dec_scale_fac,bin_scale_fac,ifield5)
2263  !
2264  integer(4),intent(inout) :: ifield5(16)
2265  integer(4),intent(in) :: dec_scale_fac,bin_scale_fac
2266  !
2267  integer(4) :: value,ierr
2268  !
2269  ifield5=0
2270  ifield5(1) = 0 ! Any value. Will be later overwritten
2271  ifield5(2) = bin_scale_fac
2272  ifield5(3) = dec_scale_fac
2273  !
2274  end subroutine g2sec5_temp2
2292  subroutine g2sec5_temp3(dec_scale_fac,bin_scale_fac,order_of_sptdiff, &
2293  ifield5)
2294  !
2295  integer(4),intent(in) :: dec_scale_fac,bin_scale_fac
2296  character(*),intent(in) :: order_of_sptdiff
2297  integer(4),intent(out) :: ifield5(18)
2298  !
2299  integer(4) :: value,ierr
2300  !
2301  ifield5=0
2302  ifield5(1) = 0 ! Any value. Will be later overwritten
2303  ifield5(2) = bin_scale_fac
2304  ifield5(3) = dec_scale_fac
2305  !
2306  call get_g2_ordofspcdiffvals(order_of_sptdiff,value,ierr)
2307  ifield5(17) = value
2308  !
2309  end subroutine g2sec5_temp3
2337  subroutine g2sec5_temp40(dec_scale_fac,bin_scale_fac,tlnumbits, &
2338  type_of_compression,ifield5)
2339  !
2340  integer(4),intent(in) :: bin_scale_fac,dec_scale_fac,tlnumbits
2341  character(*),intent(in) :: type_of_compression
2342  integer(4),intent(inout) :: ifield5(7)
2343  !
2344  !--- local variable
2345  integer(4) :: value,ierr
2346  integer,parameter :: MAX_NUMBIT=16
2347  integer ibm
2348  integer,allocatable :: mg(:)
2349  !
2350  ifield5(1) = 0 ! Any value. Will be later overwritten
2351  ifield5(2) = bin_scale_fac
2352  ifield5(3) = dec_scale_fac
2353  ifield5(4) = tlnumbits
2354  ifield5(5) = 0 !g2lib assumes original data were reals
2355  !
2356  ! call get_g2_typeoforigfieldvals(type_of_field,value,ierr)
2357  ! ifield5(5) = value
2358  !
2360  ifield5(6) = value
2361  !
2362  ifield5(7) = 255
2363  end subroutine g2sec5_temp40
2364 
2373  subroutine get_g2_typeofcluster(key,value,ierr)
2374  character(len=*) :: key
2375  integer :: value,n,ierr
2376  !
2377  do n=1,maxtypeofcluster
2378  if (trim(table4_8(n)%typeofclusterkey).eq.trim(key)) then
2379  value=table4_8(n)%typeofclusterval
2380  return
2381  endif
2382  enddo
2383  print *,'get_g2_typeofcluster key: ', key, &
2384  ' not found in table 4.8'
2385  ierr=9
2386  return
2387  end subroutine get_g2_typeofcluster
2397  subroutine get_g2_typeofprob(key,value,ierr)
2398  character(len=*) :: key
2399  integer :: value,n,ierr
2400  !
2401  do n=1,maxtypeofprob
2402  if (trim(table4_9(n)%typeofprobkey).eq.trim(key)) then
2403  value=table4_9(n)%typeofprobval
2404  return
2405  endif
2406  enddo
2407  print *,'get_g2_typeofprob key: ', key, &
2408  ' not found in table 4.9'
2409  ierr=9
2410  return
2411  end subroutine get_g2_typeofprob
2412 
2421  subroutine get_g2_typeofprecip(key,value,ierr)
2422  character(len=*) :: key
2423  integer :: value,n,ierr
2424  !
2425  do n=1,maxtypeofprecip
2426  if (trim(table4_201(n)%typeofprecipkey).eq.trim(key)) then
2427  value=table4_201(n)%typeofprecipval
2428  return
2429  endif
2430  enddo
2431  print *,'get_g2_typeofprecip key: ', key, &
2432  ' not found in table 4.201'
2433  ierr=9
2434  return
2435  end subroutine get_g2_typeofprecip
2436 
2437 end module grib2_all_tables_module
Define the variables in the derived data type discipline provided in Section 0.
subroutine get_g2_on388genproc(key, value, ierr)
This subroutine returns the corresponding GRIB1 - PDS Ocet6 data value (Generating process or model) ...
subroutine g2sec5_temp3(dec_scale_fac, bin_scale_fac, order_of_sptdiff, ifield5)
This subroutine returns the section 5 list array with a given binary, and decimal scale factor from G...
type(prod_status), dimension(maxprodstatus) table1_3
Table 1 3.
subroutine g2sec1(origin_key, subcen_key, vers_key, lvers_key, sigreftime_key, refyear_val, refmon_val, refday_val, refhour_val, refmin_val, refsec_val, prodstatus_key, typeofdata_key, listsec1)
This subroutine returns the section 1 list for given keys.
type(order_of_sptdiff_vals), dimension(maxordofsptdiff) table5_6
table5_6
subroutine get_g2_typeofgenproc(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Type of Generating Process value for a given short ...
type(type_of_gen_proc), dimension(maxtypeofgenproc) table4_3
table4_3
subroutine get_g2_typeoftimeintervals(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Type of time intervals value for a given short key ...
subroutine get_g2_subcenters(key, value, ierr)
This subroutine returns the corresponding GRIB2 subcenters value for a given short key name based on ...
type(subcenters), dimension(maxsubcen) tablec
tablec
subroutine get_g2_sigreftime(key, value, ierr)
This subroutine returns the corresponding GRIB2 significant reference time value for a given short ke...
type(type_of_time_intervals), dimension(maxtypeoftimeintvls) table4_11
table4_11
integer, parameter maxreftime
maxreftime
subroutine get_g2_typeofderivefcst(key, value, ierr)
This subroutine returns the corresponding GRIB2 type of derive forecast value for a given short key n...
type(type_of_aerosol), dimension(maxtypeofaerosol) table4_233
table4_233
subroutine get_g2_ordofspcdiffvals(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Table 5.6 Order of spatial differencing for a given...
subroutine get_g2_fixedsurfacetypes(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Fixed Surface Types and Units value for a given sho...
integer, parameter maxtypeofprecip
maxtypeofprecip
type(type_of_derive_fcst), dimension(maxtypeofderivefcst) table4_7
table4_7
subroutine get_g2_typeofdata(key, value, ierr)
This subroutine returns the corresponding GRIB2 type of data value for a given short key name based o...
integer, parameter maxtypeoftimeintvls
maxtypeoftimeintvls
type(type_of_compression), dimension(maxtypeofcompression) table5_40
table5_40
subroutine get_g2_typeoforigfieldvals(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Table 5.1 Type of Original Field Values for a given...
type(type_of_prob), dimension(maxtypeofprob) table4_9
table4_9
type(local_table_vers_no), dimension(maxlocver) table1_1
Table 1 1.
integer, parameter maxfixedsurfacetypes
Max fixed surface types.
type(type_of_precip), dimension(maxtypeofprecip) table4_201
table4_201
subroutine get_g2_statprocesstypes(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Type of statistica processing value for a given sho...
type(type_of_orig_field_vals), dimension(maxtypeoforigfieldval) table5_1
table5_1
integer, parameter maxtypeofpackingmethod
maxtypeofpackingmethod
type(type_of_packingmethod), dimension(maxtypeofpackingmethod) table5_0
table5_0
subroutine get_g2_typeofcluster(key, value, ierr)
This subroutine returns the corresponding GRIB2 type of clustering method for a given short key name ...
integer, parameter maxtypeofderivefcst
maxtypeofderivefcst
type(type_of_data), dimension(maxtypeofdata) table1_4
table1_4
subroutine g2sec4_temp48(icatg, iparm, aer_type, typ_intvl_size, scale_fac1_size, scale_val1_size, scale_fac2_size, scale_val2_size, typ_intvl_wavelength, scale_fac1_wavelength, scale_val1_wavelength, scale_fac2_wavelength, scale_val2_wavelength, typ_gen_proc_key, gen_proc_or_mod_key, hrs_obs_cutoff, min_obs_cutoff, unit_of_time_key, fcst_time, lvl_type1, scale_fac1, scaled_val1, lvl_type2, scale_fac2, scaled_val2, ipdstmpl48)
This subroutine returns the Grib2 Section 4 Template 4.0 list for given keys PDT 4....
integer, parameter maxver
maxver
subroutine get_g2_typeofcompression(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Table 5.40 Type of compression for a given short ke...
integer, parameter maxtypeofdata
maxtypeofdata
integer, parameter maxprodstatus
maxprodstatus
integer, parameter maxtypeofcompression
maxtypeofcompression
subroutine get_g2_typeofintervals(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Type of intervals value for a given short key name ...
type(type_of_ens_fcst), dimension(maxtypeofensfcst) table4_6
table4_6
type(type_of_intervals), dimension(maxtypeofintvls) table4_91
table4_91
subroutine get_g2_unitoftimerange(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Indicator of unit of time range value for a given s...
subroutine g2sec0(idisc, listsec0)
This subroutine returns the section 0 list for a given discipline value.
type(gen_proc), dimension(maxgenproc) on388_tablea
ON 388 Table A.
integer, parameter maxsubcen
maxsubcen
integer, parameter maxordofsptdiff
maxordofsptdiff
integer, parameter maxorigincenters
maxorigincenters
subroutine g2sec4_temp44(icatg, iparm, aer_type, typ_intvl_size, scale_fac1_size, scale_val1_size, scale_fac2_size, scale_val2_size, typ_gen_proc_key, gen_proc_or_mod_key, hrs_obs_cutoff, min_obs_cutoff, unit_of_time_key, fcst_time, lvl_type1, scale_fac1, scaled_val1, lvl_type2, scale_fac2, scaled_val2, ipdstmpl44)
This subroutine returns the Grib2 Section 4 Template 4.44 list for given keys PDT 4....
subroutine g2sec4_temp0(icatg, iparm, typ_gen_proc_key, gen_proc_or_mod_key, hrs_obs_cutoff, min_obs_cutoff, unit_of_time_key, fcst_time, lvl_type1, scale_fac1, scaled_val1, lvl_type2, scale_fac2, scaled_val2, ipdstmpl0)
This subroutine returns the Grib2 Section 4 Template 4.0 list for given keys PDT 4....
integer, parameter maxlocver
maxlocver
integer, parameter maxtypeofaerosol
maxtypeofaerosol
integer, parameter maxstatprocesstypes
maxstatprocesstypes
integer, parameter maxgenproc
maxgenproc
type(version_no), dimension(maxver) table1_0
Table 1 0.
subroutine g2sec5_temp2(dec_scale_fac, bin_scale_fac, ifield5)
This subroutine returns the section 5 list array with a given binary, and decimal scale factor from G...
type(sigreftime), dimension(maxreftime) table1_2
Table 1 2.
integer, parameter maxtypeoforigfieldval
maxtypeoforigfieldval
subroutine g2sec5_temp40(dec_scale_fac, bin_scale_fac, tlnumbits, type_of_compression, ifield5)
This subroutine returns the section 5 list array for a given decimal scale factor (D),...
subroutine get_g2_versionno(key, value, ierr)
This subroutine returns the corresponding GRIB2 version number for a given short key name based on Ta...
subroutine g2sec5_temp0(dec_scale_fac, bin_scale_fac, tlnumbits, ifield5)
This subroutine returns the section 5 list array for a given decimal scale factor (D) and type of ori...
integer, parameter maxtypeofintvls
maxtypeofintvls
type(fixed_surface_types), dimension(maxfixedsurfacetypes) table4_5
table4_5
type(unit_of_time_range), dimension(maxunitoftimerange) table4_4
table4_4
integer, parameter maxtypeofcluster
maxtypeofcluster
subroutine get_g2_typeofprecip(key, value, ierr)
This subroutine returns the corresponding GRIB2 type of precipitation for a given short key name base...
subroutine get_g2_prodstatus(key, value, ierr)
This subroutine returns the corresponding GRIB2 production status of data value for a given short key...
subroutine g2sec4_temp8(icatg, iparm, typ_gen_proc_key, gen_proc_or_mod_key, hrs_obs_cutoff, min_obs_cutoff, unit_of_time_key, fcst_time, lvl_type1, scale_fac1, scaled_val1, lvl_type2, scale_fac2, scaled_val2, year_intvl, mon_intvl, day_intvl, hour_intvl, min_intvl, sec_intvl, num_time_range, stat_miss_val, type_of_stat_proc, type_of_time_inc, stat_unit_time_key, leng_time_range_stat, stat_unit_time_key_succ, time_inc_betwn_succ_fld, ipdstmpl8)
This subroutine returns the Grib2 Section 4 Template 4.8 list for given keys PDT 4....
subroutine get_g2_typeofaerosol(key, value, ierr)
This subroutine returns the corresponding GRIB2 - Type of aerosol value for a given short key name ba...
type(type_of_cluster), dimension(maxtypeofcluster) table4_8
table4_8
integer, parameter maxtypeofgenproc
maxtypeofgenproc
integer, parameter maxunitoftimerange
maxunitoftimerange
type(origin_centers), dimension(maxorigincenters) on388_table0
ON388 Table.
subroutine get_g2_typeofensfcst(key, value, ierr)
This subroutine returns the corresponding GRIB2 type of ensemble forecast value for a given short key...
integer, parameter maxtypeofprob
maxtypeofprob
subroutine get_g2_sec5packingmethod(key, value, ierr)
This subroutine returns the corresponding GRIB2 template number for a given short key name based on G...
integer, parameter maxtypeofensfcst
maxtypeofensfcst
subroutine get_g2_loctabversno(key, value, ierr)
This subroutine returns the corresponding GRIB2 local table version number for a given short key name...
subroutine get_g2_on388origincenters(key, value, ierr)
This subroutine returns the corresponding GRIB1 - PDS Ocet5 GRIB2 - Section 1, Octet 6-7 National/Int...
type(statistical_processing_types), dimension(maxstatprocesstypes) table4_10
table4_10
subroutine get_g2_typeofprob(key, value, ierr)
This subroutine returns the corresponding GRIB2 type of probability for a given short key name based ...