NCEPLIBS-g2tmpl  1.12.0
grib2_all_tables_module.F90
Go to the documentation of this file.
1 
4 
26  implicit none
27 
29  integer, parameter :: maxsubcen=100
31  integer, parameter :: maxver=100
33  integer, parameter :: maxlocver=20
35  integer, parameter :: maxreftime=15
37  integer, parameter :: maxprodstatus=17
39  integer, parameter :: maxtypeofdata=100
41  integer, parameter :: maxtypeofgenproc=100
43  integer, parameter :: maxtypeofensfcst=100
45  integer, parameter :: maxtypeofderivefcst=100
47  integer, parameter :: maxfixedsurfacetypes=200
49  integer, parameter :: maxunitoftimerange=30
51  integer, parameter :: maxgenproc=250
53  integer, parameter :: maxorigincenters=500
55  integer, parameter :: maxtypeoforigfieldval=15
57  integer, parameter :: maxtypeofcompression=50
59  integer, parameter :: maxtypeofpackingmethod=50
61  integer, parameter :: maxstatprocesstypes=50
63  integer, parameter :: maxtypeoftimeintvls=50
65  integer, parameter :: maxtypeofprob=100
67  integer, parameter :: maxtypeofprecip=100
69  integer, parameter :: maxtypeofcluster=100
71  integer, parameter :: maxtypeofaerosol=200
73  integer, parameter :: maxtypeofintvls=50
75  integer, parameter :: maxordofsptdiff=50
76 
78  character(len=20) :: subcenkey
79  integer :: subcenval
80  end type subcenters
81 
83  type(subcenters), dimension(MAXSUBCEN) :: tablec
84 
85  data tablec(1) /subcenters('ncep_reanl',1)/
86  data tablec(2) /subcenters('ncep_ensem',2)/
87  data tablec(3) /subcenters('ncep_nco',3)/
88  data tablec(4) /subcenters('ncep_emc',4)/
89  data tablec(5) /subcenters('ncep_wpc',5)/
90  data tablec(6) /subcenters('ncep_opc',6)/
91  data tablec(7) /subcenters('ncep_cpc',7)/
92  data tablec(8) /subcenters('ncep_awc',8)/
93  data tablec(9) /subcenters('ncep_spc',9)/
94  data tablec(10) /subcenters('ncep_nhc',10)/
95  data tablec(11) /subcenters('nws_tdl',11)/
96  data tablec(12) /subcenters('nesdis_ora',12)/
97  data tablec(13) /subcenters('faa',13)/
98  data tablec(14) /subcenters('nws_mdl',14)/
99  data tablec(15) /subcenters('narr',15)/
100  data tablec(16) /subcenters('swpc',16)/
101  !
102  ! Added Sub-Center (06/26/2019)
103  !
104  data tablec(17) /subcenters('esrl',17)/
105  ! Added National Water Center Sub-Center (02/23/2024)
106  data tablec(18) /subcenters('nwc',18)/
107 
109  character(len=20) :: verskey
110  integer :: versval
111  end type version_no
112 
114  type(version_no),dimension(MAXVER) :: table1_0
115 
116  data table1_0(1) /version_no('expt',0)/
117  data table1_0(2) /version_no('v2001',1)/
118  data table1_0(3) /version_no('v2003',2)/
119  data table1_0(4) /version_no('v2005',3)/
120  data table1_0(5) /version_no('v2007',4)/
121  data table1_0(6) /version_no('v2009',5)/
122  data table1_0(7) /version_no('v2010',6)/
123  data table1_0(8) /version_no('v052011',7)/
124  data table1_0(9) /version_no('v112011',8)/
125  data table1_0(10) /version_no('v052012',9)/
126  data table1_0(11) /version_no('v112012',10)/
127  data table1_0(12) /version_no('v052013',11)/
128  data table1_0(13) /version_no('v112013',12)/
129  data table1_0(14) /version_no('v052014',13)/
130  data table1_0(15) /version_no('v112014',14)/
131  data table1_0(16) /version_no('v052015',15)/
132  data table1_0(17) /version_no('v112015',16)/
133  data table1_0(18) /version_no('v052016',17)/
134  data table1_0(19) /version_no('v112016',18)/
135  data table1_0(20) /version_no('v052017',19)/
136  data table1_0(21) /version_no('v112017',20)/
137  data table1_0(22) /version_no('v052018',21)/
138  data table1_0(23) /version_no('v112018',22)/
139  data table1_0(24) /version_no('v052019',23)/
140  data table1_0(25) /version_no('v112019',24)/
141  data table1_0(26) /version_no('v052020',25)/
142  data table1_0(27) /version_no('v112020',26)/
143  data table1_0(28) /version_no('v052021',27)/
144  data table1_0(29) /version_no('v112021',28)/
145  data table1_0(30) /version_no('preoper',29)/
146  !
147  !
149  character(len=20) :: locverskey
150  integer :: locversval
151  end type local_table_vers_no
152 
154  type(local_table_vers_no),dimension(MAXLOCVER) :: table1_1
155  !
156  data table1_1(1) /local_table_vers_no('local_tab_no',0)/
157  data table1_1(2) /local_table_vers_no('local_tab_yes1',1)/
158  data table1_1(3) /local_table_vers_no('local_tab_yes2',2)/
159  data table1_1(4) /local_table_vers_no('local_tab_yes3',3)/
160  data table1_1(5) /local_table_vers_no('local_tab_yes4',4)/
161  data table1_1(6) /local_table_vers_no('local_tab_yes5',5)/
162  data table1_1(7) /local_table_vers_no('missing',255)/
163  !
164  !
166  character(len=20) :: sigrefkey
167  integer :: sigrefval
168  end type sigreftime
169 
170  ! Declare a variable of type discipline
171 
173  type(sigreftime),dimension(MAXREFTIME) :: table1_2
174 
175  data table1_2(1) /sigreftime('anal',0)/
176  data table1_2(2) /sigreftime('fcst',1)/
177  data table1_2(3) /sigreftime('vfcst',2)/
178  data table1_2(4) /sigreftime('obstime',3)/
179  data table1_2(5) /sigreftime('missing',255)/
180  !
181  !
183  character(len=20) :: prodstatuskey
184  integer :: prodstatusval
185  end type prod_status
186 
187  ! Declare a variable of type discipline
188 
190  type(prod_status),dimension(MAXPRODSTATUS) :: table1_3
191 
192  data table1_3(1) /prod_status('oper',0)/
193  data table1_3(2) /prod_status('oper_test',1)/
194  data table1_3(3) /prod_status('res',2)/
195  data table1_3(4) /prod_status('reanal',3)/
196  data table1_3(5) /prod_status('tigge',4)/
197  data table1_3(6) /prod_status('tigge_test',5)/
198  data table1_3(7) /prod_status('missing',255)/
199  data table1_3(8) /prod_status('s2s_oper',6)/
200  data table1_3(9) /prod_status('s2s_test',7)/
201  data table1_3(10) /prod_status('unens_rreanl',8)/
202  data table1_3(11) /prod_status('unens_rreanl_test',9)/
203  !
204  !
206  character(len=20) :: typeofdatakey
207  integer :: typeofdataval
208  end type type_of_data
209  !
211  type(type_of_data),dimension(MAXTYPEOFDATA) :: table1_4
212 
213  data table1_4(1) /type_of_data('anal',0)/
214  data table1_4(2) /type_of_data('fcst',1)/
215  data table1_4(3) /type_of_data('anal_fcst',2)/
216  data table1_4(4) /type_of_data('con_fcst',3)/
217  data table1_4(5) /type_of_data('per_fcst',4)/
218  data table1_4(6) /type_of_data('con_per_fcst',5)/
219  data table1_4(7) /type_of_data('proc_sat_obs',6)/
220  data table1_4(8) /type_of_data('proc_rad_obs',7)/
221  data table1_4(9) /type_of_data('event_prob',8)/
222  data table1_4(10) /type_of_data('missing',255)/
223  data table1_4(11) /type_of_data('experimental_product',192)/
224  !
225  !
227  character(len=30) :: typeofgenprockey
228  integer :: typeofgenprocval
229  end type type_of_gen_proc
230  ! 2015/09/02 Boi Vuong Added 4 type of aerosols in table4_233
231  ! 2019/06/25 Boi Vuong Added new entries 197,198,199 in table4_3
232 
233  !
235  type(type_of_gen_proc),dimension(MAXTYPEOFGENPROC) :: table4_3
236 
237  data table4_3(1) /type_of_gen_proc('anal',0)/
238  data table4_3(2) /type_of_gen_proc('init',1)/
239  data table4_3(3) /type_of_gen_proc('fcst',2)/
240  data table4_3(4) /type_of_gen_proc('bias_corr_fcst',3)/
241  data table4_3(5) /type_of_gen_proc('ens_fcst',4)/
242  data table4_3(6) /type_of_gen_proc('prob_fcst',5)/
243  data table4_3(7) /type_of_gen_proc('fcst_err',6)/
244  data table4_3(8) /type_of_gen_proc('anal_err',7)/
245  data table4_3(9) /type_of_gen_proc('obs',8)/
246  data table4_3(10) /type_of_gen_proc('clim',9)/
247  data table4_3(11) /type_of_gen_proc('prob_wt_fcst',10)/
248  data table4_3(12) /type_of_gen_proc('fcst_con_ind',192)/
249  data table4_3(13) /type_of_gen_proc('bias_corr_ens_fcst',11)/
250  data table4_3(14) /type_of_gen_proc('missing',255)/
251  data table4_3(15) /type_of_gen_proc('post_proc_anal',12)/
252  data table4_3(16) /type_of_gen_proc('post_proc_fcst',13)/
253  data table4_3(17) /type_of_gen_proc('nowcast',14)/
254  data table4_3(18) /type_of_gen_proc('hincsast',15)/
255  data table4_3(19) /type_of_gen_proc('physical_retrieval',16)/
256  data table4_3(20) /type_of_gen_proc('regression_analysis',17)/
257  data table4_3(21) /type_of_gen_proc('difference_two_forecasts',18)/
258  data table4_3(22) /type_of_gen_proc('prob_matched_mean',193)/
259  data table4_3(23) /type_of_gen_proc('neighborhood_prob',194)/
260  data table4_3(24) /type_of_gen_proc('bias_corrected_downscale',195)/
261  data table4_3(25) /type_of_gen_proc('perturbed_analysis',196)/
262  !
263  ! Added Generating Process (06/26/2019)
264  !
265  data table4_3(26) /type_of_gen_proc('ens_scale_prob',197)/
266  data table4_3(27) /type_of_gen_proc('post_dew_fcst',198)/
267  data table4_3(28) /type_of_gen_proc('ens_fcst_base',199)/
268  !
269  ! Added Generating Process (04/20/2021)
270  !
271  data table4_3(29) /type_of_gen_proc('local_prob_match_mean',200)/
272  !
273  !
275  character(len=30) :: unitoftimerangekey
276  integer :: unitoftimerangeval
277  end type unit_of_time_range
278  !
280  type(unit_of_time_range),dimension(MAXUNITOFTIMERANGE) :: table4_4
281 
282  data table4_4(1) /unit_of_time_range('minute',0)/
283  data table4_4(2) /unit_of_time_range('hour',1)/
284  data table4_4(3) /unit_of_time_range('day',2)/
285  data table4_4(4) /unit_of_time_range('month',3)/
286  data table4_4(5) /unit_of_time_range('year',4)/
287  data table4_4(6) /unit_of_time_range('decade',5)/
288  data table4_4(7) /unit_of_time_range('normal_30y',6)/
289  data table4_4(8) /unit_of_time_range('century',7)/
290  data table4_4(9) /unit_of_time_range('3hours',10)/
291  data table4_4(10) /unit_of_time_range('6hours',11)/
292  data table4_4(11) /unit_of_time_range('12hours',12)/
293  data table4_4(12) /unit_of_time_range('second',13)/
294  data table4_4(13) /unit_of_time_range('missing',255)/
295  !
296  !
298  character(len=80) :: fixedsurfacetypeskey
299  integer :: fixedsurfacetypesval
300  end type fixed_surface_types
301  !
303  type(fixed_surface_types),dimension(MAXFIXEDSURFACETYPES) :: table4_5
304 
305  data table4_5(1) /fixed_surface_types('surface',1)/
306  data table4_5(2) /fixed_surface_types('cloud_base',2)/
307  data table4_5(3) /fixed_surface_types('cloud_top',3)/
308  data table4_5(4) /fixed_surface_types('0C_isotherm',4)/
309  data table4_5(5) /fixed_surface_types('lvl_of_adiab_cond_from_sfc',5)/
310  data table4_5(6) /fixed_surface_types('max_wind',6)/
311  data table4_5(7) /fixed_surface_types('tropopause',7)/
312  data table4_5(8) /fixed_surface_types('top_of_atmos',8)/
313  data table4_5(9) /fixed_surface_types('sea_bottom',9)/
314  data table4_5(10) /fixed_surface_types('entire_atmos',10)/
315  data table4_5(11) /fixed_surface_types('cb_base',11)/
316  data table4_5(12) /fixed_surface_types('cb_top',12)/
317  data table4_5(13) /fixed_surface_types('isothermal',20)/
318  data table4_5(14) /fixed_surface_types('isobaric_sfc',100)/
319  data table4_5(15) /fixed_surface_types('mean_sea_lvl',101)/
320  data table4_5(16) /fixed_surface_types('spec_alt_above_mean_sea_lvl',102)/
321  data table4_5(17) /fixed_surface_types('spec_hgt_lvl_above_grnd',103)/
322  data table4_5(18) /fixed_surface_types('sigma_lvl',104)/
323  data table4_5(19) /fixed_surface_types('hybrid_lvl',105)/
324  data table4_5(20) /fixed_surface_types('depth_bel_land_sfc',106)/
325  data table4_5(21) /fixed_surface_types('isentropic_lvl',107)/
326  data table4_5(22) /fixed_surface_types('spec_pres_above_grnd',108)/
327  data table4_5(23) /fixed_surface_types('pot_vort_sfc',109)/
328  data table4_5(24) /fixed_surface_types('eta_lvl',111)/
329  data table4_5(25) /fixed_surface_types('mixed_lyr_depth',117)/
330  data table4_5(26) /fixed_surface_types('depth_below_sea_lvl',160)/
331  data table4_5(27) /fixed_surface_types('entire_atmos_single_lyr',200)/
332  data table4_5(28) /fixed_surface_types('entire_ocean_single_lyr',201)/
333  data table4_5(29) /fixed_surface_types('hghst_trop_frz_lvl',204)/
334  data table4_5(30) /fixed_surface_types('grid_scale_cloud_bot_lvl',206)/
335  data table4_5(31) /fixed_surface_types('grid_scale_cloud_top_lvl',207)/
336  data table4_5(32) /fixed_surface_types('bound_lyr_cloud_bot_lvl',209)/
337  data table4_5(33) /fixed_surface_types('bound_lyr_cloud_top_lvl',210)/
338  data table4_5(34) /fixed_surface_types('bound_lyr_cloud_lyr',211)/
339  data table4_5(35) /fixed_surface_types('low_cloud_bot_lvl',212)/
340  data table4_5(36) /fixed_surface_types('low_cloud_top_lvl',213)/
341  data table4_5(37) /fixed_surface_types('low_cloud_lyr',214)/
342  data table4_5(38) /fixed_surface_types('cloud_ceilng',215)/
343  data table4_5(39) /fixed_surface_types('planetary_bound_lyr',220)/
344  data table4_5(40) /fixed_surface_types('lyr_betwn_2hybrid_lvls',221)/
345  data table4_5(41) /fixed_surface_types('mid_cloud_bot_lvl',222)/
346  data table4_5(42) /fixed_surface_types('mid_cloud_top_lvl',223)/
347  data table4_5(43) /fixed_surface_types('mid_cloud_lyr',224)/
348  data table4_5(44) /fixed_surface_types('high_cloud_bot_lvl',232)/
349  data table4_5(45) /fixed_surface_types('high_cloud_top_lvl',233)/
350  data table4_5(46) /fixed_surface_types('high_cloud_lyr',234)/
351  data table4_5(47) /fixed_surface_types('ocean_isotherm_lvl',235)/
352  data table4_5(48) /fixed_surface_types('lyr_betwn_2depths_below_ocean_sfc',236)/
353  data table4_5(49) /fixed_surface_types('bot_of_ocean_mix_lyr',237)/
354  data table4_5(50) /fixed_surface_types('bot_of_ocean_isoth_lyr',238)/
355  data table4_5(51) /fixed_surface_types('lyr_ocean_sfc_26c_ocean_isotherm_lvl',239)/
356  data table4_5(52) /fixed_surface_types('ocean_mix_lyr',240)/
357  data table4_5(53) /fixed_surface_types('ordered_seq_of_data',241)/
358  data table4_5(54) /fixed_surface_types('convective_cloud_bot_lvl',242)/
359  data table4_5(55) /fixed_surface_types('convective_cloud_top_lvl',243)/
360  data table4_5(56) /fixed_surface_types('convective_cloud_lyr',244)/
361  data table4_5(57) /fixed_surface_types('lwst_lvl_of_wet_bulb_zero',245)/
362  data table4_5(58) /fixed_surface_types('max_equiv_pot_temp_lvl',246)/
363  data table4_5(59) /fixed_surface_types('equil_lvl',247)/
364  data table4_5(60) /fixed_surface_types('shall_convective_cloud_bot_lvl',248)/
365  data table4_5(61) /fixed_surface_types('shall_convective_cloud_top_lvl',249)/
366  data table4_5(62) /fixed_surface_types('deep_convective_cloud_bot_lvl',251)/
367  data table4_5(63) /fixed_surface_types('deep_convective_cloud_top_lvl',252)/
368  data table4_5(64) /fixed_surface_types('lwst_bot_lvl_of_supercooled_liq_water_lyr',253)/
369  data table4_5(65) /fixed_surface_types('hghst_top_lvl_of_supercooled_liq_water_lyr',254)/
370  data table4_5(66) /fixed_surface_types('missing',255)/
371  data table4_5(67) /fixed_surface_types('hybrid_height_lvl',118)/
372  data table4_5(68) /fixed_surface_types('hybrid_pres_lvl',119)/
373  data table4_5(69) /fixed_surface_types('gen_vertical_height_coor',150)/
374  data table4_5(70) /fixed_surface_types('depth_below_water_lvl',161)/
375  data table4_5(71) /fixed_surface_types('lake_or_river_bottom',162)/
376  data table4_5(72) /fixed_surface_types('bottom_of_sediment_layer',163)/
377  data table4_5(73) /fixed_surface_types('bottom_of_therm_sediment_layer',164)/
378  data table4_5(74) /fixed_surface_types('bottom_of_sediment_layer_thermal_wave',165)/
379  data table4_5(75) /fixed_surface_types('maxing_layer',166)/
380  data table4_5(76) /fixed_surface_types('bottom_root_zone',167)/
381  data table4_5(77) /fixed_surface_types('topsfc_ice_onsealakeriver',174)/
382  data table4_5(78) /fixed_surface_types('topsfc_ice_unsnow_onsealakeriver',175)/
383  data table4_5(79) /fixed_surface_types('bottomsfc_ice_onsealakeriver',176)/
384  data table4_5(80) /fixed_surface_types('deep_soil',177)/
385  data table4_5(81) /fixed_surface_types('topsfc_glacierice_inlandice',179)/
386  data table4_5(82) /fixed_surface_types('deepinland_glacierice',180)/
387  data table4_5(83) /fixed_surface_types('gridtile_landfrac',181)/
388  data table4_5(84) /fixed_surface_types('gridtile_waterfrac',182)/
389  data table4_5(85) /fixed_surface_types('gridtile_icefrac_onsealakeriver',183)/
390  data table4_5(86) /fixed_surface_types('gridtile_glacierice_inland_icefrac',184)/
391  data table4_5(87) /fixed_surface_types('lowest_level_vertical_icc',13)/
392  data table4_5(88) /fixed_surface_types('level_free_convection',14)/
393  data table4_5(89) /fixed_surface_types('covection_conden_level',15)/
394  data table4_5(90) /fixed_surface_types('level_neutral_buoy',16)/
395  data table4_5(91) /fixed_surface_types('soil_level',151)/
396  !
397  ! Added fixed surface levels (06/26/2019)
398  !
399  data table4_5(92) /fixed_surface_types('lowest_mass_den',21)/
400  data table4_5(93) /fixed_surface_types('highest_mass_den',22)/
401  data table4_5(94) /fixed_surface_types('lowest_air_con',23)/
402  data table4_5(95) /fixed_surface_types('highest_air_con',24)/
403  data table4_5(96) /fixed_surface_types('highest_rref',25)/
404  data table4_5(97) /fixed_surface_types('log_hyb_lev',113)/
405  data table4_5(98) /fixed_surface_types('snow_lev',114)/
406  data table4_5(100) /fixed_surface_types('sigma_hi_lev',115)/
407  !
408  ! Added fixed surface levels (04/20/2021)
409  !
410  data table4_5(101) /fixed_surface_types('ocean_model_level',168)/
411  data table4_5(102) /fixed_surface_types('ocean_level_water_density',169)/
412  data table4_5(103) /fixed_surface_types('ocean_level_water_potential_temp',170)/
413  data table4_5(104) /fixed_surface_types('eff_layer_top_level',216)/
414  data table4_5(105) /fixed_surface_types('eff_layer_bottom_level',217)/
415  data table4_5(106) /fixed_surface_types('eff_layer',218)/
416  !
417  !
419  character(len=50) :: typeofensfcstkey
420  integer :: typeofensfcstval
421  end type type_of_ens_fcst
422  !
424  type(type_of_ens_fcst),dimension(MAXTYPEOFENSFCST) :: table4_6
425 
426  data table4_6(1) /type_of_ens_fcst('unpert_hi_res_ctrl_fcst',0)/
427  data table4_6(2) /type_of_ens_fcst('unpert_lo_res_ctrl_fcst',1)/
428  data table4_6(3) /type_of_ens_fcst('neg_pert_fcst',2)/
429  data table4_6(4) /type_of_ens_fcst('pos_pert_fcst',3)/
430  data table4_6(5) /type_of_ens_fcst('multi_model_fcst',4)/
431  data table4_6(6) /type_of_ens_fcst('pert_ens_member',192)/
432  !
433  !
435  character(len=50) :: typeofderivefcstkey
436  integer :: typeofderivefcstval
437  end type type_of_derive_fcst
438  !
440  type(type_of_derive_fcst),dimension(MAXTYPEOFDERIVEFCST) :: table4_7
441 
442  data table4_7(1) /type_of_derive_fcst('unweighted_mean_all_mem',0)/
443  data table4_7(2) /type_of_derive_fcst('weighted_mean_all_mem',1)/
444  data table4_7(3) /type_of_derive_fcst('std_devn_res_cluster_mean',2)/
445  data table4_7(4) /type_of_derive_fcst('std_devn_res_cluster_mean_norm',3)/
446  data table4_7(5) /type_of_derive_fcst('spread_all_mem',4)/
447  data table4_7(6) /type_of_derive_fcst('large_anomaly_index',5)/
448  data table4_7(7) /type_of_derive_fcst('unweighted_mean_cluster',6)/
449  data table4_7(8) /type_of_derive_fcst('interquartile_range',7)/
450  data table4_7(9) /type_of_derive_fcst('min_all_ens_mem',8)/
451  data table4_7(10) /type_of_derive_fcst('max_all_ens_mem',9)/
452  data table4_7(11) /type_of_derive_fcst('unweighted_mode_all_mem',192)/
453  data table4_7(12) /type_of_derive_fcst('percentile_val_10',193)/
454  data table4_7(13) /type_of_derive_fcst('percentile_val_50',194)/
455  data table4_7(14) /type_of_derive_fcst('percentile_val_90',195)/
456  data table4_7(15) /type_of_derive_fcst('stat_decide_mem',196)/
457  data table4_7(16) /type_of_derive_fcst('clim_percentile',197)/
458  data table4_7(17) /type_of_derive_fcst('deviation_ens_mean',198)/
459  data table4_7(18) /type_of_derive_fcst('extream_forecast_index',199)/
460  !
461  ! Added type of derive forecast (04/20/2021)
462  !
463  data table4_7(19) /type_of_derive_fcst('equally_weighted_mean',200)/
464  data table4_7(20) /type_of_derive_fcst('percentile_value_5',201)/
465  data table4_7(21) /type_of_derive_fcst('percentile_value_25',202)/
466  data table4_7(22) /type_of_derive_fcst('percentile_value_75',203)/
467  data table4_7(23) /type_of_derive_fcst('percentile_value_95',204)/
468  !
469  !
470  ! Added Clustering Method Table 4.8 (06/26/2019)
471  !
473  character(len=80) :: typeofclusterkey
474  integer :: typeofclusterval
475  end type type_of_cluster
476  !
478  type(type_of_cluster),dimension(MAXTYPEOFCLUSTER) :: table4_8
479 
480  data table4_8(1) /type_of_cluster('anomoly_correlation',0)/
481  data table4_8(2) /type_of_cluster('root_mean_square',1)/
482  !
483  !
484  ! Added Probability Type Table 4.9 (06/26/2019)
485  !
487  character(len=80) :: typeofprobkey
488  integer :: typeofprobval
489  end type type_of_prob
490  !
492  type(type_of_prob),dimension(MAXTYPEOFPROB) :: table4_9
493 
494  data table4_9(1) /type_of_prob('prob_below_lower_limit',0)/
495  data table4_9(2) /type_of_prob('prob_above_upper_limit',1)/
496  data table4_9(3) /type_of_prob('prob_between_upper_lower_limit',2)/
497  data table4_9(4) /type_of_prob('prob_above_lower_limit',3)/
498  data table4_9(5) /type_of_prob('prob_below_upper_limit',4)/
499  data table4_9(6) /type_of_prob('prob_equal_lower_limit',5)/
500  data table4_9(7) /type_of_prob('prob_above_normal_cat',6)/
501  data table4_9(8) /type_of_prob('prob_near_normal_cat',7)/
502  data table4_9(9) /type_of_prob('prob_below_normal_cat',8)/
503  !
504  !
506  character(len=80) :: statprocesstypeskey
507  integer :: statprocesstypesval
509  !
511  type(statistical_processing_types),dimension(MAXSTATPROCESSTYPES) :: table4_10
512 
513  data table4_10(1) /statistical_processing_types('AVE',0)/
514  data table4_10(2) /statistical_processing_types('ACM',1)/
515  data table4_10(3) /statistical_processing_types('MAX',2)/
516  data table4_10(4) /statistical_processing_types('MIN',3)/
517  data table4_10(5) /statistical_processing_types('diff_end-beg',4)/
518  data table4_10(6) /statistical_processing_types('rms',5)/
519  data table4_10(7) /statistical_processing_types('std_devn',6)/
520  data table4_10(8) /statistical_processing_types('covariance',7)/
521  data table4_10(9) /statistical_processing_types('diff_beg-end',8)/
522  data table4_10(10) /statistical_processing_types('ratio',9)/
523  data table4_10(11) /statistical_processing_types('std_anomaly',10)/
524  data table4_10(12) /statistical_processing_types('clim_mean',192)/
525  data table4_10(13) /statistical_processing_types('ave_n_fcsts',193)/
526  data table4_10(14) /statistical_processing_types('ave_n_unin_anal',194)/
527  data table4_10(15) /statistical_processing_types('ave_fcst_acc_24',195)/
528  data table4_10(16) /statistical_processing_types('ave_succ_fcst_acc',196)/
529  data table4_10(17) /statistical_processing_types('ave_fcst_ave_24',197)/
530  data table4_10(18) /statistical_processing_types('ave_succ_fcst_ave',198)/
531  data table4_10(19) /statistical_processing_types('clim_ave_n_anal',199)/
532  data table4_10(20) /statistical_processing_types('clim_ave_n_fcst',200)/
533  data table4_10(21) /statistical_processing_types('clim_rms_diff',201)/
534  data table4_10(22) /statistical_processing_types('clim_std_n_fcst',202)/
535  data table4_10(23) /statistical_processing_types('clim_std_n_anal',203)/
536  data table4_10(24) /statistical_processing_types('ave_fcst_acc_6',204)/
537  data table4_10(25) /statistical_processing_types('ave_fcst_ave_6',205)/
538  data table4_10(26) /statistical_processing_types('ave_fcst_acc_12',206)/
539  data table4_10(27) /statistical_processing_types('ave_fcst_ave_12',207)/
540  data table4_10(28) /statistical_processing_types('missing',255)/
541  data table4_10(29) /statistical_processing_types('summation',11)/
542  data table4_10(30) /statistical_processing_types('confidence_index',12)/
543  data table4_10(31) /statistical_processing_types('quality_indicator',13)/
544  data table4_10(32) /statistical_processing_types('variance',208)/
545  data table4_10(33) /statistical_processing_types('confficient',209)/
546  !
547  !
549  character(len=80) :: typeoftimeintervalskey
550  integer :: typeoftimeintervalsval
551  end type type_of_time_intervals
552  !
554  type(type_of_time_intervals),dimension(MAXTYPEOFTIMEINTVLS) :: table4_11
555 
556  data table4_11(1) /type_of_time_intervals('reserved',0)/
557  data table4_11(2) /type_of_time_intervals('same_fcst_time_start_time_fcst_inc',1)/
558  data table4_11(3) /type_of_time_intervals('same_start_time_fcst_fcst_time_inc',2)/
559  data table4_11(4) /type_of_time_intervals('start_time_fcst_inc_fcst_time_dec',3)/
560  data table4_11(5) /type_of_time_intervals('start_time_fcst_dec_fcst_time_inc',4)/
561  data table4_11(6) /type_of_time_intervals('fltng_time_betwn_fcst_time_end_time_intvl',5)/
562  data table4_11(7) /type_of_time_intervals('local1',192)/
563  data table4_11(8) /type_of_time_intervals('local2',193)/
564  data table4_11(9) /type_of_time_intervals('local3',194)/
565  data table4_11(10) /type_of_time_intervals('missing',255)/
566  !
567  !
569  character(len=80) :: typeofintervalskey
570  integer :: typeofintervalsval
571  end type type_of_intervals
572  !
574  type(type_of_intervals),dimension(MAXTYPEOFINTVLS) :: table4_91
575 
576  data table4_91(1) /type_of_intervals('smaller_than_first_limit',0)/
577  data table4_91(2) /type_of_intervals('greater_than_second_limit',1)/
578  data table4_91(3) /type_of_intervals('between_first_second_limit_noincl2ndlmt',2)/
579  data table4_91(4) /type_of_intervals('greater_than_first_limit',3)/
580  data table4_91(5) /type_of_intervals('smaller_than_second_limit',4)/
581  data table4_91(6) /type_of_intervals('smaller_or_equal_first_limit',5)/
582  data table4_91(7) /type_of_intervals('greater_or_equal_second_limit',6)/
583  data table4_91(8) /type_of_intervals('between_first_second_limit',7)/
584  data table4_91(9) /type_of_intervals('greater_or_equal_first_limit',8)/
585  data table4_91(10) /type_of_intervals('smaller_or_equal_second_limit',9)/
586  data table4_91(11) /type_of_intervals('between_first_second_limit_noincl1stlmt',10)/
587  data table4_91(12) /type_of_intervals('equall_to_first_limit',11)/
588  data table4_91(13) /type_of_intervals('missing',255)/
589  !
590  ! Added Precipitation Table 4.201 (06/26/2019)
591  !
593  character(len=80) :: typeofprecipkey
594  integer :: typeofprecipval
595  end type type_of_precip
596  !
598  type(type_of_precip),dimension(MAXTYPEOFPRECIP) :: table4_201
599 
600  data table4_201(1) /type_of_precip('reserved',0)/
601  data table4_201(2) /type_of_precip('rain',1)/
602  data table4_201(3) /type_of_precip('thunderstorm',2)/
603  data table4_201(4) /type_of_precip('freezing_rain',3)/
604  data table4_201(5) /type_of_precip('mixed_ice',4)/
605  data table4_201(6) /type_of_precip('snow',5)/
606  data table4_201(7) /type_of_precip('wet_snow',6)/
607  data table4_201(8) /type_of_precip('mixture_rain_snow',7)/
608  data table4_201(91) /type_of_precip('ice_pellets',8)/
609  data table4_201(10) /type_of_precip('graupel',9)/
610  data table4_201(11) /type_of_precip('hail',10)/
611  data table4_201(12) /type_of_precip('drizzle',11)/
612  data table4_201(13) /type_of_precip('freezing_drizzle',12)/
613  !
614  !
616  character(len=80) :: typeofaerosolkey
617  integer :: typeofaerosolval
618  end type type_of_aerosol
619  !
621  type(type_of_aerosol),dimension(MAXTYPEOFAEROSOL) :: table4_233
622 
623  data table4_233(1) /type_of_aerosol('ozone',0)/
624  data table4_233(2) /type_of_aerosol('water_vapor',1)/
625  data table4_233(3) /type_of_aerosol('methane',2)/
626  data table4_233(4) /type_of_aerosol('carbon_dioxide',3)/
627  data table4_233(5) /type_of_aerosol('carbon_monoxide',4)/
628  data table4_233(6) /type_of_aerosol('nitrogen_dioxide',5)/
629  data table4_233(7) /type_of_aerosol('nitrous_oxide',6)/
630  data table4_233(8) /type_of_aerosol('formaldehyde',7)/
631  data table4_233(9) /type_of_aerosol('sulphur_dioxide',8)/
632  data table4_233(10) /type_of_aerosol('ammonia',9)/
633  data table4_233(11) /type_of_aerosol('ammonium',10)/
634  data table4_233(12) /type_of_aerosol('nitrogen_monoxide',11)/
635  data table4_233(13) /type_of_aerosol('atomic_oxygen',12)/
636  data table4_233(14) /type_of_aerosol('nitrate_radical',13)/
637  data table4_233(15) /type_of_aerosol('hydroperoxyl_radical',14)/
638  data table4_233(16) /type_of_aerosol('dinitrogen_pentoxide',15)/
639  data table4_233(17) /type_of_aerosol('nitrous_acid',16)/
640  data table4_233(18) /type_of_aerosol('nitric_acid',17)/
641  data table4_233(19) /type_of_aerosol('peroxynitric_acid',18)/
642  data table4_233(20) /type_of_aerosol('hydrogen_peroxide',19)/
643  data table4_233(21) /type_of_aerosol('molecular_hydrogen',20)/
644  data table4_233(22) /type_of_aerosol('atomic_nitrogen',21)/
645  data table4_233(23) /type_of_aerosol('sulphate',22)/
646  data table4_233(24) /type_of_aerosol('radon',23)/
647  data table4_233(25) /type_of_aerosol('elemental_mercury',24)/
648  data table4_233(26) /type_of_aerosol('divalent_mercury',25)/
649  data table4_233(27) /type_of_aerosol('atomic_chlorine',26)/
650  data table4_233(28) /type_of_aerosol('chlorine_monoxide',27)/
651  data table4_233(29) /type_of_aerosol('dichlorine_peroxide',28)/
652  data table4_233(30) /type_of_aerosol('hypochlorous_acid',29)/
653  data table4_233(31) /type_of_aerosol('chlorine_nitrate',30)/
654  data table4_233(32) /type_of_aerosol('chlorine_dioxide',31)/
655  data table4_233(33) /type_of_aerosol('atomic_bromide',32)/
656  data table4_233(34) /type_of_aerosol('bromine_monoxide',33)/
657  data table4_233(35) /type_of_aerosol('bromine_chloride',34)/
658  data table4_233(36) /type_of_aerosol('hydrogen_bromide',35)/
659  data table4_233(37) /type_of_aerosol('hypobromous_acid',36)/
660  data table4_233(38) /type_of_aerosol('bromine_nitrate',37)/
661  data table4_233(39) /type_of_aerosol('hydroxyl_radical',10000)/
662  data table4_233(40) /type_of_aerosol('methyl_peroxy_radical',10001)/
663  data table4_233(41) /type_of_aerosol('methyl_hydroperoxide',10002)/
664  data table4_233(42) /type_of_aerosol('methanol',10004)/
665  data table4_233(43) /type_of_aerosol('formic_acid',10005)/
666  data table4_233(44) /type_of_aerosol('hydrogen_cyanide',10006)/
667  data table4_233(45) /type_of_aerosol('aceto_nitrile',10007)/
668  data table4_233(46) /type_of_aerosol('ethane',10008)/
669  data table4_233(47) /type_of_aerosol('ethene',10009)/
670  data table4_233(48) /type_of_aerosol('ethyne',10010)/
671  data table4_233(49) /type_of_aerosol('ethanol',10011)/
672  data table4_233(50) /type_of_aerosol('acetic_acid',10012)/
673  data table4_233(51) /type_of_aerosol('peroxyacetyl_nitrate',10013)/
674  data table4_233(52) /type_of_aerosol('propane',10014)/
675  data table4_233(53) /type_of_aerosol('propene',10015)/
676  data table4_233(54) /type_of_aerosol('butanes',10016)/
677  data table4_233(55) /type_of_aerosol('isoprene',10017)/
678  data table4_233(56) /type_of_aerosol('alpha_pinene',10018)/
679  data table4_233(57) /type_of_aerosol('beta_pinene',10019)/
680  data table4_233(58) /type_of_aerosol('limonene',10020)/
681  data table4_233(59) /type_of_aerosol('benzene',10021)/
682  data table4_233(60) /type_of_aerosol('toluene',10022)/
683  data table4_233(61) /type_of_aerosol('xylene',10023)/
684  data table4_233(62) /type_of_aerosol('dumethyl_sulphide',10500)/
685  data table4_233(63) /type_of_aerosol('hydrogen_chloride',20001)/
686  data table4_233(64) /type_of_aerosol('cfc-11',20002)/
687  data table4_233(65) /type_of_aerosol('cfc-12',20003)/
688  data table4_233(66) /type_of_aerosol('cfc-113',20004)/
689  data table4_233(67) /type_of_aerosol('cfc-113a',20005)/
690  data table4_233(68) /type_of_aerosol('cfc-114',20006)/
691  data table4_233(69) /type_of_aerosol('cfc-115',20007)/
692  data table4_233(70) /type_of_aerosol('hcfc-22',20008)/
693  data table4_233(71) /type_of_aerosol('hcfc-141b',20009)/
694  data table4_233(72) /type_of_aerosol('hcfc-142b',20010)/
695  data table4_233(73) /type_of_aerosol('halon-1202',20011)/
696  data table4_233(74) /type_of_aerosol('halon-1211',20012)/
697  data table4_233(75) /type_of_aerosol('halon-1301',20013)/
698  data table4_233(76) /type_of_aerosol('halon-2402',20014)/
699  data table4_233(77) /type_of_aerosol('methyl_chloride',20015)/
700  data table4_233(78) /type_of_aerosol('carbon_tetrachloride',20016)/
701  data table4_233(79) /type_of_aerosol('hcc-140a',20017)/
702  data table4_233(80) /type_of_aerosol('methyl_bromide',20018)/
703  data table4_233(81) /type_of_aerosol('hexachlorocyclohexane',20019)/
704  data table4_233(82) /type_of_aerosol('alpha_hexachlorocyclohexane',20020)/
705  data table4_233(83) /type_of_aerosol('hexachlorobiphenyl',20021)/
706  data table4_233(84) /type_of_aerosol('radioactive_pollutant',30000)/
707  data table4_233(85) /type_of_aerosol('hox_radical',60000)/
708  data table4_233(86) /type_of_aerosol('total_inorganic_org_peroxy_radicals',60001)/
709  data table4_233(87) /type_of_aerosol('passive_ozone',60002)/
710  data table4_233(88) /type_of_aerosol('nox_nitrogen',60003)/
711  data table4_233(89) /type_of_aerosol('all_nitrogen_oxides',60004)/
712  data table4_233(90) /type_of_aerosol('total_inorganic_chlorine',60005)/
713  data table4_233(91) /type_of_aerosol('total_inorganic_bromine',60006)/
714  data table4_233(92) /type_of_aerosol('total_inorganic_chlorine_noHclClono2Clox',60007)/
715  data table4_233(93) /type_of_aerosol('total_inorganic_bromine_noHbrBrono2Brox',60008)/
716  data table4_233(94) /type_of_aerosol('lumped_alkanes',60009)/
717  data table4_233(95) /type_of_aerosol('lumped_alkenes',60010)/
718  data table4_233(96) /type_of_aerosol('lumped_aromatic_comp',60011)/
719  data table4_233(97) /type_of_aerosol('lumped_terpenes',60012)/
720  data table4_233(98) /type_of_aerosol('non_methane_volatile_org_comp_carbon)',60013)/
721  data table4_233(99) /type_of_aerosol('anthropogenic_non_methane_voiatile_org_comp_carbon',60014)/
722  data table4_233(100) /type_of_aerosol('biogenic_non_methane_volatile_org_comp_carbon',60015)/
723  data table4_233(101) /type_of_aerosol('lumped_oxygenated_hydrocarbon',60016)/
724  data table4_233(102) /type_of_aerosol('total_aerosol',62000)/
725  data table4_233(103) /type_of_aerosol('dust_dry',62001)/
726  data table4_233(104) /type_of_aerosol('water_in_ambient',62002)/
727  data table4_233(105) /type_of_aerosol('ammonium_dry',62003)/
728  data table4_233(106) /type_of_aerosol('nitrate_dry',62004)/
729  data table4_233(107) /type_of_aerosol('nitric_acid_trihydrate',62005)/
730  data table4_233(108) /type_of_aerosol('sulphate_dry',62006)/
731  data table4_233(109) /type_of_aerosol('mercury_dry',62007)/
732  data table4_233(110) /type_of_aerosol('sea_salt_dry',62008)/
733  data table4_233(111) /type_of_aerosol('black_carbon_dry',62009)/
734  data table4_233(112) /type_of_aerosol('particulate_org_matter_dry',62010)/
735  data table4_233(113) /type_of_aerosol('primary_particulate_org_matter_dry',62011)/
736  data table4_233(114) /type_of_aerosol('secondary_particulate_org_matter_dry',62012)/
737  data table4_233(115) /type_of_aerosol('missing',65535)/
738  data table4_233(116) /type_of_aerosol('black_carbon_hydrophilic',62013)/
739  data table4_233(117) /type_of_aerosol('black_carbon_hydrophobic',62014)/
740  data table4_233(118) /type_of_aerosol('particulate_org_matter_hydrophilic',62015)/
741  data table4_233(119) /type_of_aerosol('particulate_org_matter_hydrophobic',62016)/
742  data table4_233(120) /type_of_aerosol('nitrate_hydrophilic',62017)/
743  data table4_233(121) /type_of_aerosol('nitrate_hydrophobic',62018)/
744  data table4_233(122) /type_of_aerosol('smoke_hi_absorption',62020)/
745  data table4_233(123) /type_of_aerosol('smoke_lo_absorption',62021)/
746  data table4_233(124) /type_of_aerosol('aerosol_hi_absorption',62022)/
747  data table4_233(125) /type_of_aerosol('aerosol_lo_absorption',62023)/
748  data table4_233(126) /type_of_aerosol('volcanic_ash',62025)/
749  ! Add new parameter (04/12/2022)
750  data table4_233(127) /type_of_aerosol('brown_carbon_dry',63034)/
751  !
752  !
754  character(len=50) :: typeoforigfieldvalskey
755  integer :: typeoforigfieldvals
756  end type type_of_orig_field_vals
757  !
759  type(type_of_orig_field_vals), dimension(MAXTYPEOFORIGFIELDVAL) :: table5_1
760  data table5_1(1) /type_of_orig_field_vals('fltng_pnt',0)/
761  data table5_1(2) /type_of_orig_field_vals('integer',1)/
762  data table5_1(3) /type_of_orig_field_vals('local1',192)/
763  data table5_1(4) /type_of_orig_field_vals('local2',193)/
764  data table5_1(5) /type_of_orig_field_vals('local3',194)/
765  data table5_1(6) /type_of_orig_field_vals('local4',195)/
766  data table5_1(7) /type_of_orig_field_vals('local5',196)/
767  data table5_1(8) /type_of_orig_field_vals('local6',197)/
768  data table5_1(9) /type_of_orig_field_vals('local7',198)/
769  data table5_1(10) /type_of_orig_field_vals('local8',199)/
770  data table5_1(11) /type_of_orig_field_vals('local9',200)/
771  data table5_1(12) /type_of_orig_field_vals('local10',201)/
772  data table5_1(13) /type_of_orig_field_vals('missing',255)/
773  !
774  !
776  character(len=50) :: ordofsptdiffkey
777  integer :: ordofsptdiffvals
778  end type order_of_sptdiff_vals
779  !
781  type(order_of_sptdiff_vals), dimension(MAXORDOFSPTDIFF) :: table5_6
782  data table5_6(1) /order_of_sptdiff_vals('1st_ord_sptdiff',1)/
783  data table5_6(2) /order_of_sptdiff_vals('2nd_ord_sptdiff',2)/
784  data table5_6(3) /order_of_sptdiff_vals('missing',255)/
785  !
786  !
788  character(len=50) :: typeofcompressionkey
789  integer :: typeofcompressionvals
790  end type type_of_compression
791  !
793  type(type_of_compression), dimension(MAXTYPEOFCOMPRESSION) :: table5_40
794  data table5_40(1) /type_of_compression('lossless',0)/
795  data table5_40(2) /type_of_compression('lossy',1)/
796  data table5_40(3) /type_of_compression('missing',255)/
797  !
798  !
800  character(len=50) :: packingmethodkey
801  integer :: packingmethodvals
802  end type type_of_packingmethod
803  !
805  type(type_of_packingmethod), dimension(MAXTYPEOFPACKINGMETHOD) :: table5_0
806  data table5_0(1) /type_of_packingmethod('simple_packing',0)/
807  data table5_0(2) /type_of_packingmethod('maxtric_simple_packing',1)/
808  data table5_0(3) /type_of_packingmethod('complex_packing',2)/
809  data table5_0(4) /type_of_packingmethod('complex_packing_spatial_diff',3)/
810  data table5_0(5) /type_of_packingmethod('ieee_floating_point',4)/
811  data table5_0(6) /type_of_packingmethod('jpeg2000',40)/
812  data table5_0(7) /type_of_packingmethod('png',41)/
813  data table5_0(8) /type_of_packingmethod('spectral_simple_packing',50)/
814  data table5_0(9) /type_of_packingmethod('spectral_complex_packing',51)/
815  data table5_0(10) /type_of_packingmethod('simple_packing_log_preprcs',61)/
816  data table5_0(11) /type_of_packingmethod('run_length_packing_lvl_val',200)/
817  !
818  !
820  character(len=50) :: origincenterskey
821  integer :: origincentersval
822  end type origin_centers
823  !
825  type(origin_centers),dimension(MAXORIGINCENTERS) :: on388_table0
826 
827  data on388_table0(1) /origin_centers('melbourne1',1)/
828  data on388_table0(2) /origin_centers('melbourne2',2)/
829  data on388_table0(3) /origin_centers('melbourne3',3)/
830  data on388_table0(4) /origin_centers('moscow1',4)/
831  data on388_table0(5) /origin_centers('moscow2',5)/
832  data on388_table0(6) /origin_centers('moscow3',6)/
833  data on388_table0(7) /origin_centers('nws_ncep',7)/
834  data on388_table0(8) /origin_centers('nws_nwstg',8)/
835  data on388_table0(9) /origin_centers('nws_other',9)/
836  data on388_table0(10) /origin_centers('cairo1',10)/
837  data on388_table0(11) /origin_centers('cairo2',11)/
838  data on388_table0(12) /origin_centers('dakar1',12)/
839  data on388_table0(13) /origin_centers('dakar2',13)/
840  data on388_table0(14) /origin_centers('nairobi1',14)/
841  data on388_table0(15) /origin_centers('nairobi2',15)/
842  data on388_table0(16) /origin_centers('casablanca',16)/
843  data on388_table0(17) /origin_centers('tunis',17)/
844  data on388_table0(18) /origin_centers('tunis_casablanca1',18)/
845  data on388_table0(19) /origin_centers('tunis-casablanca2',19)/
846  data on388_table0(20) /origin_centers('las_palmas',20)/
847  data on388_table0(21) /origin_centers('algiers',21)/
848  data on388_table0(22) /origin_centers('acmad',22)/
849  data on388_table0(23) /origin_centers('mozambique',23)/
850  data on388_table0(24) /origin_centers('pretoria',24)/
851  data on388_table0(25) /origin_centers('la_reunion',25)/
852  data on388_table0(26) /origin_centers('khabarovsk1',26)/
853  data on388_table0(27) /origin_centers('khabarovsk2',27)/
854  data on388_table0(28) /origin_centers('new_delhi1',28)/
855  data on388_table0(29) /origin_centers('new_delhi2',29)/
856  data on388_table0(30) /origin_centers('novosibirsk1',30)/
857  data on388_table0(31) /origin_centers('novosibirsk2',31)/
858  data on388_table0(32) /origin_centers('tashkent',32)/
859  data on388_table0(33) /origin_centers('jeddah',33)/
860  data on388_table0(34) /origin_centers('jma_tokyo1',34)/
861  data on388_table0(35) /origin_centers('jma_tokyo2',35)/
862  data on388_table0(36) /origin_centers('bankok',36)/
863  data on388_table0(37) /origin_centers('ulan_bator',37)/
864  data on388_table0(38) /origin_centers('beijing1',38)/
865  data on388_table0(39) /origin_centers('beijing2',39)/
866  data on388_table0(40) /origin_centers('seoul',40)/
867  data on388_table0(41) /origin_centers('buenos_aires1',41)/
868  data on388_table0(42) /origin_centers('buenos_aires2',42)/
869  data on388_table0(43) /origin_centers('brasilia1',43)/
870  data on388_table0(44) /origin_centers('brasilia2',44)/
871  data on388_table0(45) /origin_centers('santiago',45)/
872  data on388_table0(46) /origin_centers('brazilian_inpe',46)/
873  data on388_table0(47) /origin_centers('columbia',47)/
874  data on388_table0(48) /origin_centers('ecuador',48)/
875  data on388_table0(49) /origin_centers('peru',49)/
876  data on388_table0(50) /origin_centers('venezuela',50)/
877  data on388_table0(51) /origin_centers('miami',51)/
878  data on388_table0(52) /origin_centers('tpc_nhc',52)/
879  data on388_table0(53) /origin_centers('cms_montreal1',53)/
880  data on388_table0(54) /origin_centers('cms_montreal2',54)/
881  data on388_table0(55) /origin_centers('san_francisco',55)/
882  data on388_table0(56) /origin_centers('arinc_center',56)/
883  data on388_table0(57) /origin_centers('usaf_gwc',57)/
884  data on388_table0(58) /origin_centers('us_navy_fnoc',58)/
885  data on388_table0(59) /origin_centers('noaa_fsl_boulder',59)/
886  data on388_table0(60) /origin_centers('ncar_boulder',60)/
887  data on388_table0(61) /origin_centers('service_argos',61)/
888  data on388_table0(62) /origin_centers('us_naval_ocean_off',62)/
889  data on388_table0(63) /origin_centers('honolulu',64)/
890  data on388_table0(64) /origin_centers('darwin1',65)/
891  data on388_table0(65) /origin_centers('darwin2',66)/
892  data on388_table0(66) /origin_centers('melbourne4',67)/
893  data on388_table0(67) /origin_centers('wellington1',69)/
894  data on388_table0(68) /origin_centers('wellington2',70)/
895  data on388_table0(69) /origin_centers('nadi',71)/
896  data on388_table0(70) /origin_centers('singapore',72)/
897  data on388_table0(71) /origin_centers('malaysia',73)/
898  data on388_table0(72) /origin_centers('ukmo_exeter1',74)/
899  data on388_table0(73) /origin_centers('ukmo_exeter2',75)/
900  data on388_table0(74) /origin_centers('moscow4',76)/
901  data on388_table0(75) /origin_centers('offenbach1',78)/
902  data on388_table0(76) /origin_centers('offenbach2',79)/
903  data on388_table0(77) /origin_centers('rome1',80)/
904  data on388_table0(78) /origin_centers('rome2',81)/
905  data on388_table0(79) /origin_centers('norrkoping1',82)/
906  data on388_table0(80) /origin_centers('norrkoping2',83)/
907  data on388_table0(81) /origin_centers('french_weather_toulouse1',84)/
908  data on388_table0(82) /origin_centers('french_weather_toulouse2',85)/
909  data on388_table0(83) /origin_centers('helsinki',86)/
910  data on388_table0(84) /origin_centers('belgrade',87)/
911  data on388_table0(85) /origin_centers('oslo',88)/
912  data on388_table0(86) /origin_centers('prague',89)/
913  data on388_table0(87) /origin_centers('episkopi',90)/
914  data on388_table0(88) /origin_centers('ankara',91)/
915  data on388_table0(89) /origin_centers('frankfurt_main',92)/
916  data on388_table0(90) /origin_centers('london',93)/
917  data on388_table0(91) /origin_centers('copenhagen',94)/
918  data on388_table0(92) /origin_centers('rota',95)/
919  data on388_table0(93) /origin_centers('athens',96)/
920  data on388_table0(94) /origin_centers('esa',97)/
921  data on388_table0(95) /origin_centers('ecmwf',98)/
922  data on388_table0(96) /origin_centers('de_bilt_netherlands',99)/
923  data on388_table0(97) /origin_centers('brazzaville',100)/
924  data on388_table0(98) /origin_centers('abidjan',101)/
925  data on388_table0(99) /origin_centers('libyan_arab_jamahiriya',102)/
926  data on388_table0(100) /origin_centers('madagascar',103)/
927  data on388_table0(101) /origin_centers('mauritius',104)/
928  data on388_table0(102) /origin_centers('niger',105)/
929  data on388_table0(103) /origin_centers('seychelles',106)/
930  data on388_table0(104) /origin_centers('uganda',107)/
931  data on388_table0(105) /origin_centers('tanzania',108)/
932  data on388_table0(106) /origin_centers('zimbabwe',109)/
933  data on388_table0(107) /origin_centers('hong_kong',110)/
934  data on388_table0(108) /origin_centers('afghanistan',111)/
935  data on388_table0(109) /origin_centers('bahrain',112)/
936  data on388_table0(110) /origin_centers('bangladesh',113)/
937  data on388_table0(111) /origin_centers('bhutan',114)/
938  data on388_table0(112) /origin_centers('cambodia',115)/
939  data on388_table0(113) /origin_centers('dprk',116)/
940  data on388_table0(114) /origin_centers('iran',117)/
941  data on388_table0(115) /origin_centers('iraq',118)/
942  data on388_table0(116) /origin_centers('kazakhstan',119)/
943  data on388_table0(117) /origin_centers('kuwait',120)/
944  data on388_table0(118) /origin_centers('kyrgyz_republic',121)/
945  data on388_table0(119) /origin_centers('lao_pdr',122)/
946  data on388_table0(120) /origin_centers('macao_china',123)/
947  data on388_table0(121) /origin_centers('maldives',124)/
948  data on388_table0(122) /origin_centers('myanmar',125)/
949  data on388_table0(123) /origin_centers('nepal',126)/
950  data on388_table0(124) /origin_centers('oman',127)/
951  data on388_table0(125) /origin_centers('pakistan',128)/
952  data on388_table0(126) /origin_centers('qatar',129)/
953  data on388_table0(127) /origin_centers('yemen',130)/
954  data on388_table0(128) /origin_centers('sri_lanka',131)/
955  data on388_table0(129) /origin_centers('tajikistan',132)/
956  data on388_table0(130) /origin_centers('turkmenistan',133)/
957  data on388_table0(131) /origin_centers('uae',134)/
958  data on388_table0(132) /origin_centers('uzbekistan',135)/
959  data on388_table0(133) /origin_centers('viet_nam ',136)/
960  data on388_table0(134) /origin_centers('bolivia',140)/
961  data on388_table0(135) /origin_centers('guyana',141)/
962  data on388_table0(136) /origin_centers('paraguay',142)/
963  data on388_table0(137) /origin_centers('suriname',143)/
964  data on388_table0(138) /origin_centers('uruguay',144)/
965  data on388_table0(139) /origin_centers('french_guyana',145)/
966  data on388_table0(140) /origin_centers('brazilian_navy_hydro_center',146)/
967  data on388_table0(141) /origin_centers('antigua_barbuda',150)/
968  data on388_table0(142) /origin_centers('bahamas',151)/
969  data on388_table0(143) /origin_centers('barbados',152)/
970  data on388_table0(144) /origin_centers('belize',153)/
971  data on388_table0(145) /origin_centers('british_caribbean_terr_center',154)/
972  data on388_table0(146) /origin_centers('san_jose',155)/
973  data on388_table0(147) /origin_centers('cuba',156)/
974  data on388_table0(148) /origin_centers('dominica',157)/
975  data on388_table0(149) /origin_centers('dominican_republic',158)/
976  data on388_table0(150) /origin_centers('el_salvador',159)/
977  data on388_table0(151) /origin_centers('us_noaa_nesdis',160)/
978  data on388_table0(152) /origin_centers('us_noaa_oar',161)/
979  data on388_table0(153) /origin_centers('guatemala',162)/
980  data on388_table0(154) /origin_centers('haiti',163)/
981  data on388_table0(155) /origin_centers('honduras',164)/
982  data on388_table0(156) /origin_centers('jamaica',165)/
983  data on388_table0(157) /origin_centers('mexico',166)/
984  data on388_table0(158) /origin_centers('netherlands_antilles_aruba',167)/
985  data on388_table0(159) /origin_centers('nicaragua',168)/
986  data on388_table0(160) /origin_centers('panama',169)/
987  data on388_table0(161) /origin_centers('saint_lucia',170)/
988  data on388_table0(162) /origin_centers('trinidad_tobago',171)/
989  data on388_table0(163) /origin_centers('french_departments',172)/
990  data on388_table0(164) /origin_centers('cook_islands',190)/
991  data on388_table0(165) /origin_centers('french_polynesia',191)/
992  data on388_table0(166) /origin_centers('tonga',192)/
993  data on388_table0(167) /origin_centers('vanuatu',193)/
994  data on388_table0(168) /origin_centers('brunei',194)/
995  data on388_table0(169) /origin_centers('indonesia',195)/
996  data on388_table0(170) /origin_centers('kiribati',196)/
997  data on388_table0(171) /origin_centers('federated_states_micronesia',197)/
998  data on388_table0(172) /origin_centers('new_caledonia',198)/
999  data on388_table0(173) /origin_centers('niue',199)/
1000  data on388_table0(174) /origin_centers('papua_new_guinea',200)/
1001  data on388_table0(175) /origin_centers('philippines',201)/
1002  data on388_table0(176) /origin_centers('samoa',202)/
1003  data on388_table0(177) /origin_centers('solomon_islands',203)/
1004  data on388_table0(178) /origin_centers('frascati',210)/
1005  data on388_table0(179) /origin_centers('lanion',211)/
1006  data on388_table0(180) /origin_centers('lisboa',212)/
1007  data on388_table0(181) /origin_centers('reykjavik',213)/
1008  data on388_table0(182) /origin_centers('madrid',214)/
1009  data on388_table0(183) /origin_centers('zurich',215)/
1010  data on388_table0(184) /origin_centers('service_argos_toulouse_fr',216)/
1011  data on388_table0(185) /origin_centers('bratislava',217)/
1012  data on388_table0(186) /origin_centers('budapest',218)/
1013  data on388_table0(187) /origin_centers('ljubljana',219)/
1014  data on388_table0(188) /origin_centers('warsaw',220)/
1015  data on388_table0(189) /origin_centers('zagreb',221)/
1016  data on388_table0(190) /origin_centers('albania',222)/
1017  data on388_table0(191) /origin_centers('armenia',223)/
1018  data on388_table0(192) /origin_centers('austria',224)/
1019  data on388_table0(193) /origin_centers('azerbaijan',225)/
1020  data on388_table0(194) /origin_centers('belarus',226)/
1021  data on388_table0(195) /origin_centers('belgium',227)/
1022  data on388_table0(196) /origin_centers('bosnia_herzegovina',228)/
1023  data on388_table0(197) /origin_centers('bulgaria',229)/
1024  data on388_table0(198) /origin_centers('cyprus',230)/
1025  data on388_table0(199) /origin_centers('estonia',231)/
1026  data on388_table0(200) /origin_centers('georgia',232)/
1027  data on388_table0(201) /origin_centers('dublin',233)/
1028  data on388_table0(202) /origin_centers('israel',234)/
1029  data on388_table0(203) /origin_centers('jordan',235)/
1030  data on388_table0(204) /origin_centers('latvia',236)/
1031  data on388_table0(205) /origin_centers('lebanon',237)/
1032  data on388_table0(206) /origin_centers('lithuania',238)/
1033  data on388_table0(207) /origin_centers('luxembourg',239)/
1034  data on388_table0(208) /origin_centers('malta',240)/
1035  data on388_table0(209) /origin_centers('monaco',241)/
1036  data on388_table0(210) /origin_centers('romania',242)/
1037  data on388_table0(211) /origin_centers('syrian_arab_republic',243)/
1038  data on388_table0(212) /origin_centers('macedonia',244)/
1039  data on388_table0(213) /origin_centers('ukraine',245)/
1040  data on388_table0(214) /origin_centers('republic_moldova',246)/
1041  data on388_table0(215) /origin_centers('eumetsat_op_cen',254)/
1042  data on388_table0(216) /origin_centers('missing',255)/
1043  !
1044  ! Added original center (06/26/2019)
1045  !
1046  data on388_table0(217) /origin_centers('ncsa_argentina',147)/
1047  data on388_table0(218) /origin_centers('brazilian_decea',148)/
1048  !
1049  !
1051  character(len=30) :: genprockey
1052  integer :: genprocval
1053  end type gen_proc
1054  !
1056  type(gen_proc),dimension(MAXGENPROC) :: on388_tablea
1057 
1058  data on388_tablea(1) /gen_proc('res',0)/
1059  data on388_tablea(2) /gen_proc('uvim',2)/
1060  data on388_tablea(3) /gen_proc('ncep_arl_tdm',3)/
1061  data on388_tablea(4) /gen_proc('ncep_arl_smoke',4)/
1062  data on388_tablea(5) /gen_proc('sat_der_prec_temp',5)/
1063  data on388_tablea(6) /gen_proc('gwind_wave_mod',10)/
1064  data on388_tablea(7) /gen_proc('multi_grid_wave_mod',11)/
1065  data on388_tablea(8) /gen_proc('prob_st_surg',12)/
1066  data on388_tablea(9) /gen_proc('lfm_anal',19)/
1067  data on388_tablea(10) /gen_proc('snow_cov_anal',25)/
1068  data on388_tablea(11) /gen_proc('for_gen_field',30)/
1069  data on388_tablea(12) /gen_proc('val_add_post_proc_field',31)/
1070  data on388_tablea(13) /gen_proc('ngm',39)/
1071  data on388_tablea(14) /gen_proc('goi_gfs',42)/
1072  data on388_tablea(15) /gen_proc('goi_fnl',43)/
1073  data on388_tablea(16) /gen_proc('ssta',44)/
1074  data on388_tablea(17) /gen_proc('coast_ocm',45)/
1075  data on388_tablea(18) /gen_proc('hycom_glob',46)/
1076  data on388_tablea(19) /gen_proc('hycom_npb',47)/
1077  data on388_tablea(20) /gen_proc('hycom_nab',48)/
1078  data on388_tablea(21) /gen_proc('ozone_anal_tiros',49)/
1079  data on388_tablea(22) /gen_proc('ozone_anal_nimbus',52)/
1080  data on388_tablea(23) /gen_proc('lfm_fofm',53)/
1081  data on388_tablea(24) /gen_proc('roi',64)/
1082  data on388_tablea(25) /gen_proc('t80l18gfs',68)/
1083  data on388_tablea(26) /gen_proc('t80l18mrf',69)/
1084  data on388_tablea(27) /gen_proc('qlm',70)/
1085  data on388_tablea(28) /gen_proc('fogfm_opc',73)/
1086  data on388_tablea(29) /gen_proc('gulf_of_mex_wind_wave',74)/
1087  data on388_tablea(30) /gen_proc('gulf_of_alas_wind_wave',75)/
1088  data on388_tablea(31) /gen_proc('bias_corr_mrf',76)/
1089  data on388_tablea(32) /gen_proc('t126l28gfs',77)/
1090  data on388_tablea(33) /gen_proc('t126l28mrf',78)/
1091  data on388_tablea(34) /gen_proc('backup_from_prev_run',79)/
1092  data on388_tablea(35) /gen_proc('t62l28mrf',80)/
1093  data on388_tablea(36) /gen_proc('anal_gfs',81)/
1094  data on388_tablea(37) /gen_proc('anal_gdas',82)/
1095  data on388_tablea(38) /gen_proc('meso_nam12km',84)/
1096  data on388_tablea(39) /gen_proc('early_hur_wind_speed_prob',86)/
1097  data on388_tablea(40) /gen_proc('cac_ensem_fcsts_spect',87)/
1098  data on388_tablea(41) /gen_proc('nww3_owm',88)/
1099  data on388_tablea(42) /gen_proc('nmm_8km',89)/
1100  data on388_tablea(43) /gen_proc('t62l28extmrf',90)/
1101  data on388_tablea(44) /gen_proc('t62l28extgfs',91)/
1102  data on388_tablea(45) /gen_proc('t62l28mrffnl',92)/
1103  data on388_tablea(46) /gen_proc('t62l28gdasmrf',93)/
1104  data on388_tablea(47) /gen_proc('t170l42mrf',94)/
1105  data on388_tablea(48) /gen_proc('t126l42mrf',95)/
1106  data on388_tablea(49) /gen_proc('gfs_avn',96)/
1107  data on388_tablea(50) /gen_proc('cfs_t62l64_l40mom3',98)/
1108  data on388_tablea(51) /gen_proc('misc_test_id',99)/
1109  data on388_tablea(52) /gen_proc('ruc_sanal_60km_40n',100)/
1110  data on388_tablea(53) /gen_proc('core',101)/
1111  data on388_tablea(54) /gen_proc('rap',105)/
1112  data on388_tablea(55) /gen_proc('gefs',107)/
1113  data on388_tablea(56) /gen_proc('lamp',108)/
1114  data on388_tablea(57) /gen_proc('rtma',109)/
1115  data on388_tablea(58) /gen_proc('nam_15k',110)/
1116  data on388_tablea(59) /gen_proc('nam_gen_sref',111)/
1117  data on388_tablea(60) /gen_proc('wrf_nmm_ncep',112)/
1118  data on388_tablea(61) /gen_proc('prod_ncep_sref',113)/
1119  data on388_tablea(62) /gen_proc('naefs_prod_ncep_cmc',114)/
1120  data on388_tablea(63) /gen_proc('down_scal_gfs_nam_ext',115)/
1121  data on388_tablea(64) /gen_proc('wrf_em_ncar_arwrf',116)/
1122  data on388_tablea(65) /gen_proc('ice_conc_anal',120)/
1123  data on388_tablea(66) /gen_proc('wna_reg_wav_mod',121)/
1124  data on388_tablea(67) /gen_proc('alas_wat_reg_wav_mod',122)/
1125  data on388_tablea(68) /gen_proc('na_hurr_wav_mod',123)/
1126  data on388_tablea(69) /gen_proc('enp_reg_wav_mod',124)/
1127  data on388_tablea(70) /gen_proc('np_hurr_wav_mod',125)/
1128  data on388_tablea(71) /gen_proc('sea_ice_fcst_mod',126)/
1129  data on388_tablea(72) /gen_proc('lake_ice_fcst_mod',127)/
1130  data on388_tablea(73) /gen_proc('glob_oce_fcst_mod',128)/
1131  data on388_tablea(74) /gen_proc('godas',129)/
1132  data on388_tablea(75) /gen_proc('merge_fields_ruc_nam_gfs',130)/
1133  data on388_tablea(76) /gen_proc('great_lakes_wave_mod',131)/
1134  data on388_tablea(77) /gen_proc('narr',140)/
1135  data on388_tablea(78) /gen_proc('ldafs',141)/
1136  data on388_tablea(79) /gen_proc('nwsrfs',150)/
1137  data on388_tablea(80) /gen_proc('nwsffgs',151)/
1138  data on388_tablea(81) /gen_proc('wsr_88d_s2_prec_anal',152)/
1139  data on388_tablea(82) /gen_proc('wsr_88d_s3_prec_anal',153)/
1140  data on388_tablea(83) /gen_proc('qpf_ncep',180)/
1141  data on388_tablea(84) /gen_proc('rfcqpf_ncep',181)/
1142  data on388_tablea(85) /gen_proc('rfcqpe_ncep',182)/
1143  data on388_tablea(86) /gen_proc('ndfd_ncep_hpc',183)/
1144  data on388_tablea(87) /gen_proc('ncwd_ncep_awc',190)/
1145  data on388_tablea(88) /gen_proc('cipap_ncep_awc',191)/
1146  data on388_tablea(89) /gen_proc('anal_ncep_awc',192)/
1147  data on388_tablea(90) /gen_proc('fcst_ncep_awc',193)/
1148  data on388_tablea(91) /gen_proc('cdas2',195)/
1149  data on388_tablea(92) /gen_proc('cdas2_regen',196)/
1150  data on388_tablea(93) /gen_proc('cdas',197)/
1151  data on388_tablea(94) /gen_proc('cdas_regen',198)/
1152  data on388_tablea(95) /gen_proc('cfsr_t382l64_l40mom4',199)/
1153  data on388_tablea(96) /gen_proc('cpc_man_fcst',200)/
1154  data on388_tablea(97) /gen_proc('cpc_auto_prod',201)/
1155  data on388_tablea(98) /gen_proc('epa_usne',210)/
1156  data on388_tablea(99) /gen_proc('epa_use',211)/
1157  data on388_tablea(100) /gen_proc('spc_man_fcst',215)/
1158  data on388_tablea(101) /gen_proc('ncep_opc_auto_prod',220)/
1159  data on388_tablea(102) /gen_proc('missing',255)/
1160  data on388_tablea(103) /gen_proc('ngac',117)/
1161  data on388_tablea(104) /gen_proc('hrrr',83)/
1162  data on388_tablea(105) /gen_proc('ncep_arl_dust',6)/
1163  data on388_tablea(106) /gen_proc('hrricane_mult_wave',13)/
1164  data on388_tablea(107) /gen_proc('extratropical_storm_surge',14)/
1165  data on388_tablea(108) /gen_proc('nearshore_wave_prediction',15)/
1166  data on388_tablea(109) /gen_proc('href',132)/
1167  data on388_tablea(110) /gen_proc('great_lakes_short_range_mod',133)/
1168  !
1169  ! Added new entries in tablea (06/27/2019)
1170  !
1171  data on388_tablea(111) /gen_proc('extra_trop_storm_surge',16)/
1172  data on388_tablea(112) /gen_proc('extra_trop_storm_surge_pacific',17)/
1173  data on388_tablea(113) /gen_proc('prob_extra_trop_storm_surge',18)/
1174  data on388_tablea(114) /gen_proc('linmit_fine_mesh_anal',19)/
1175  data on388_tablea(115) /gen_proc('extra_trop_storm_surge_microne',20)/
1176  data on388_tablea(116) /gen_proc('hur_weather_res_and_fcst',71)/
1177  data on388_tablea(117) /gen_proc('hur_non-hydro_multi',72)/
1178  !
1179  ! Added new entries in tablea (03/11/2021)
1180  !
1181  data on388_tablea(118) /gen_proc('rrfs',134)/
1182  !
1183  ! Added new entries in tablea (06/01/2021)
1184  !
1185  data on388_tablea(119) /gen_proc('hafs',135)/
1186  !
1187  ! Added new enties in tablea (03/30/2023)
1188  !
1189  data on388_tablea(120) /gen_proc('extra_trop_storm_surge_atl_3d',21)/
1190  data on388_tablea(121) /gen_proc('extra_trop_storm_surge_pac_3d',22)/
1191  data on388_tablea(122) /gen_proc('extra_trop_storm_surge_micro_3',23)/
1192 
1193 contains
1194  !
1205  subroutine get_g2_subcenters(key, value, ierr)
1206  character(len=*) :: key
1207  integer :: value, n, ierr
1208  !
1209  do n=1, maxsubcen
1210  if (trim(tablec(n)%subcenkey).eq.trim(key)) then
1211  value=tablec(n)%subcenval
1212  return
1213  endif
1214  enddo
1215  print *, 'get_g2_subcenters key: ', key, &
1216  ' not found in ON-388 table C'
1217  ierr=9
1218  return
1219  end subroutine get_g2_subcenters
1229  subroutine get_g2_versionno(key, value, ierr)
1230  character(len=*) :: key
1231  integer :: value, n, ierr
1232  !
1233  do n=1, maxver
1234  if (trim(table1_0(n)%verskey).eq.trim(key)) then
1235  value=table1_0(n)%versval
1236  return
1237  endif
1238  enddo
1239  print *, 'get_g2_versionno key: ', key, &
1240  ' not found in table 1.0'
1241  ierr=9
1242  return
1243  end subroutine get_g2_versionno
1253  subroutine get_g2_loctabversno(key, value, ierr)
1254  character(len=*) :: key
1255  integer :: value, n, ierr
1256  !
1257  do n=1, maxlocver
1258  if (trim(table1_1(n)%locverskey).eq.trim(key)) then
1259  value=table1_1(n)%locversval
1260  return
1261  endif
1262  enddo
1263  print *, 'get_g2_loctabversno key: ', key, &
1264  ' not found in table 1.1'
1265  ierr=9
1266  return
1267  end subroutine get_g2_loctabversno
1271 
1277  subroutine get_g2_sigreftime(key, value, ierr)
1278  ! integer, parameter :: MAXREFTIME=15
1279  character(len=*) :: key
1280  integer :: value, n, ierr
1281  !
1282  do n=1, maxreftime
1283  if (trim(table1_2(n)%sigrefkey).eq.trim(key)) then
1284  value=table1_2(n)%sigrefval
1285  return
1286  endif
1287  enddo
1288  print *, 'get_g2_sigreftime key: ', key, &
1289  ' not found in table 1.2'
1290  ierr=9
1291  return
1292  end subroutine get_g2_sigreftime
1302  subroutine get_g2_prodstatus(key, value, ierr)
1303  character(len=*) :: key
1304  integer :: value, n, ierr
1305  !
1306  do n=1, maxprodstatus
1307  if (trim(table1_3(n)%prodstatuskey).eq.trim(key)) then
1308  value=table1_3(n)%prodstatusval
1309  return
1310  endif
1311  enddo
1312  print *, 'get_g2_prodstatus key: ', key, &
1313  ' not found in table 1.3'
1314  ierr=9
1315  return
1316  end subroutine get_g2_prodstatus
1326  subroutine get_g2_typeofdata(key, value, ierr)
1327  character(len=*) :: key
1328  integer :: value, n, ierr
1329  !
1330  do n=1, maxtypeofdata
1331  if (trim(table1_4(n)%typeofdatakey).eq.trim(key)) then
1332  value=table1_4(n)%typeofdataval
1333  return
1334  endif
1335  enddo
1336  print *, 'get_g2_typeofdata key: ', key, &
1337  ' not found in table 1.4'
1338  ierr=9
1339  return
1340  end subroutine get_g2_typeofdata
1350  subroutine get_g2_typeofgenproc(key, value, ierr)
1351  character(len=*) :: key
1352  integer :: value, n, ierr
1353  !
1354  do n=1, maxtypeofgenproc
1355  if (trim(table4_3(n)%typeofgenprockey).eq.trim(key)) then
1356  value=table4_3(n)%typeofgenprocval
1357  return
1358  endif
1359  enddo
1360  print *, 'get_g2_typeofgenproc key}: ', key, &
1361  ' not found in table 4.3'
1362  ierr=9
1363  return
1364  end subroutine get_g2_typeofgenproc
1374  subroutine get_g2_unitoftimerange(key, value, ierr)
1375  character(len=*) :: key
1376  integer :: value, n, ierr
1377  !
1378  do n=1, maxunitoftimerange
1379  if (trim(table4_4(n)%unitoftimerangekey).eq.trim(key)) then
1380  value=table4_4(n)%unitoftimerangeval
1381  return
1382  endif
1383  enddo
1384 
1385  value=255
1386  print *, 'get_g2_unitoftimerange key: ', key, &
1387  ' not found in table 4.4'
1388  ierr=9
1389  return
1390  end subroutine get_g2_unitoftimerange
1400  subroutine get_g2_fixedsurfacetypes(key, value, ierr)
1401  character(len=*) :: key
1402  integer :: value, n, ierr
1403  !
1404  ierr = 0
1405  do n=1, maxfixedsurfacetypes
1406  if (trim(table4_5(n)%fixedsurfacetypeskey).eq.trim(key)) then
1407  value=table4_5(n)%fixedsurfacetypesval
1408  return
1409  endif
1410  enddo
1411 
1412  value=table4_5(66)%fixedsurfacetypesval
1413  print *, 'get_g2_fixedsurfacetypes key: ', trim(key), value, &
1414  ' not found in table 4.5'
1415  ierr=9
1416  return
1417  end subroutine get_g2_fixedsurfacetypes
1430  subroutine get_g2_statprocesstypes(key, value, ierr)
1431  character(len=*), intent(in) :: key
1432  ! integer, intent(out) :: value, ierr
1433  integer :: value, ierr
1434  integer :: n
1435  !
1436  do n=1, maxstatprocesstypes
1437  if (trim(table4_10(n)%statprocesstypeskey).eq.key) then
1438  value=table4_10(n)%statprocesstypesval
1439  return
1440  endif
1441  enddo
1442  print *, 'get_g2_statprocesstypes key: ', key, &
1443  ' not found in table 4.10'
1444  ierr=9
1445  return
1446  end subroutine get_g2_statprocesstypes
1458  subroutine get_g2_typeoftimeintervals(key, value, ierr)
1459  character(len=*) :: key
1460  integer :: value, n, ierr
1461  !
1462  do n=1, maxtypeoftimeintvls
1463  if (trim(table4_11(n)%typeoftimeintervalskey).eq.key) then
1464  value=table4_11(n)%typeoftimeintervalsval
1465  return
1466  endif
1467  enddo
1468  print *, 'get_g2_typeoftimeintervals key: ', key, &
1469  ' not found in table 4.11'
1470  ierr=9
1471  return
1472  end subroutine get_g2_typeoftimeintervals
1483  subroutine get_g2_typeofintervals(key, value, ierr)
1484  character(len=*) :: key
1485  integer :: value, n, ierr
1486  !
1487  do n=1, maxtypeofintvls
1488  if (trim(table4_91(n)%typeofintervalskey).eq.trim(key)) then
1489  value=table4_91(n)%typeofintervalsval
1490  return
1491  endif
1492  enddo
1493 
1494  if(trim(key).eq.'') then
1495  value=255
1496  return
1497  endif
1498  print *, 'get_g2_typeofintervals key: ', key, &
1499  ' not found in table 4.91'
1500  ierr=9
1501  return
1502  end subroutine get_g2_typeofintervals
1514  subroutine get_g2_typeofaerosol(key, value, ierr)
1515  character(len=*) :: key
1516  integer :: value, n, ierr
1517  !
1518  do n=1, maxtypeofaerosol
1519  if (trim(table4_233(n)%typeofaerosolkey).eq.trim(key)) then
1520  value=table4_233(n)%typeofaerosolval
1521  return
1522  endif
1523  enddo
1524 
1525  if (trim(key).eq.'') then
1526  value=65535
1527  return
1528  endif
1529  print *, 'get_g2_typeofaerosol key: ', key, &
1530  ' not found in table 4.233'
1531  ierr=9
1532  return
1533  end subroutine get_g2_typeofaerosol
1544  subroutine get_g2_on388origincenters(key, value, ierr)
1545  character(len=*) :: key
1546  integer :: value, n, ierr
1547  !
1548  do n=1, maxorigincenters
1549  if (trim(on388_table0(n)%origincenterskey).eq.trim(key)) then
1550  value=on388_table0(n)%origincentersval
1551  return
1552  endif
1553  enddo
1554  print *, 'get_g2_on388origincenters key: ', key, &
1555  ' not found in ON-388 - table 0'
1556  ierr=9
1557  return
1558  end subroutine get_g2_on388origincenters
1569  subroutine get_g2_on388genproc(key, value, ierr)
1570  character(len=*) :: key
1571  integer :: value, n, ierr
1572  !
1573  do n=1, maxgenproc
1574  if (trim(on388_tablea(n)%genprockey).eq.trim(key)) then
1575  value=on388_tablea(n)%genprocval
1576  return
1577  endif
1578  enddo
1579  print *, 'get_g2_on388genproc key: ', key, &
1580  ' not found in ON-388 - table A'
1581  ierr=9
1582  return
1583  end subroutine get_g2_on388genproc
1593  subroutine get_g2_typeoforigfieldvals(key, value, ierr)
1594  character(len=*) :: key
1595  integer :: value, n, ierr
1596  !
1597  do n=1, maxtypeoforigfieldval
1598  if (trim(table5_1(n)%typeoforigfieldvalskey).eq.trim(key)) then
1599  value=table5_1(n)%typeoforigfieldvals
1600  return
1601  endif
1602  enddo
1603 
1604  print *, 'get_g2_typeoforigfieldvals key: ', key, &
1605  ' not found in table 5.1'
1606  ierr=9
1607  return
1608  end subroutine get_g2_typeoforigfieldvals
1619  subroutine get_g2_ordofspcdiffvals(key, value, ierr)
1620  character(len=*) :: key
1621  integer :: value, n, ierr
1622  !
1623  do n=1, maxordofsptdiff
1624  if (trim(table5_6(n)%ordofsptdiffkey).eq.trim(key)) then
1625  value=table5_6(n)%ordofsptdiffvals
1626  return
1627  endif
1628  enddo
1629  print *, 'get_g2_ordofsptdiffvals key: ', key, &
1630  ' not found in table 5.6'
1631  ierr=9
1632  value=1
1633  return
1634  end subroutine get_g2_ordofspcdiffvals
1644  subroutine get_g2_typeofcompression(key, value, ierr)
1645  character(len=*) :: key
1646  integer :: value, n, ierr
1647  !
1648  do n=1, maxtypeofcompression
1649  if (trim(table5_40(n)%typeofcompressionkey).eq.trim(key)) then
1650  value=table5_40(n)%typeofcompressionvals
1651  return
1652  endif
1653  enddo
1654  print *, 'get_g2_typeofcompression key: ', key, &
1655  ' not found in table 5.40'
1656  ierr=9
1657  return
1658  end subroutine get_g2_typeofcompression
1672  subroutine get_g2_sec5packingmethod(key, value, ierr)
1673  character(len=*) :: key
1674  integer :: value, n, ierr
1675  !
1676  do n=1, maxtypeofpackingmethod
1677  if (trim(table5_0(n)%packingmethodkey).eq.trim(key)) then
1678  value=table5_0(n)%packingmethodvals
1679  return
1680  endif
1681  enddo
1682  print *, 'get_g2_sec5packingmethod key: ', key, &
1683  ' not found in table 5.0'
1684  ierr=9
1685  return
1686  end subroutine get_g2_sec5packingmethod
1697  subroutine g2sec0(idisc, listsec0)
1698  integer :: idisc
1699  integer :: listsec0(2)
1700  !
1701  listsec0(1) = idisc
1702  listsec0(2) = 2 ! Edition number - 2 for GRIB2
1703  end subroutine g2sec0
1723  subroutine g2sec1(origin_key, subcen_key, vers_key, lvers_key, sigreftime_key, refyear_val, &
1724  refmon_val, refday_val, refhour_val, refmin_val, refsec_val, prodstatus_key, &
1725  typeofdata_key, listsec1)
1726  ! integer, intent(inout) :: listsec1(13)
1727  integer :: listsec1(13)
1728  integer :: refyear_val, refmon_val, refday_val, refhour_val, refmin_val, refsec_val
1729  character(len=*) :: origin_key, subcen_key, vers_key, lvers_key, &
1730  sigreftime_key, prodstatus_key, typeofdata_key
1731  !
1732  integer(4) :: value, ierr
1733  !
1734  call get_g2_on388origincenters(origin_key, value, ierr)
1735  listsec1(1) = value
1736  !
1737  call get_g2_subcenters(subcen_key, value, ierr)
1738  listsec1(2) = value
1739  !
1740  call get_g2_versionno(vers_key, value, ierr)
1741  listsec1(3) = value
1742  !
1743  call get_g2_loctabversno(lvers_key, value, ierr)
1744  listsec1(4) = value
1745  !
1746  call get_g2_sigreftime(sigreftime_key, value, ierr)
1747  listsec1(5) = value
1748  !
1749  ! Set the time yyyy, mm, dd, hh, min, sec
1750  !
1751  listsec1(6) = refyear_val
1752  listsec1(7) = refmon_val
1753  listsec1(8) = refday_val
1754  listsec1(9) = refhour_val
1755  listsec1(10) = refmin_val
1756  listsec1(11) = refsec_val
1757  !
1758  call get_g2_prodstatus(prodstatus_key, value, ierr)
1759  listsec1(12) = value
1760  !
1761  call get_g2_typeofdata(typeofdata_key, value, ierr)
1762  listsec1(13) = value
1763  !
1764  end subroutine g2sec1
1787  subroutine g2sec4_temp0(icatg, iparm, typ_gen_proc_key, &
1788  gen_proc_or_mod_key, hrs_obs_cutoff, min_obs_cutoff, &
1789  unit_of_time_key, fcst_time, lvl_type1, scale_fac1, &
1790  scaled_val1, lvl_type2, scale_fac2, scaled_val2, &
1791  ipdstmpl0)
1792  integer(4), intent(in) :: icatg, iparm, hrs_obs_cutoff, min_obs_cutoff, &
1793  fcst_time, scale_fac1, scaled_val1, scale_fac2, scaled_val2
1794  ! integer(4), intent(inout) :: bckgnd_gen_proc_id ! defined by the center
1795  !
1796  character(len=*), intent(in) :: typ_gen_proc_key, gen_proc_or_mod_key, &
1797  unit_of_time_key, lvl_type1, lvl_type2
1798  !
1799  integer(4), intent(inout) :: ipdstmpl0(15)
1800  !
1801  !local vars
1802  integer(4) :: value, ierr
1803  integer(4) :: bckgnd_gen_proc_id ! defined by the center
1804  !
1805  bckgnd_gen_proc_id=0 ! defined by the center
1806  !
1807  ipdstmpl0(1) = icatg
1808  ipdstmpl0(2) = iparm
1809  !
1810  call get_g2_typeofgenproc(typ_gen_proc_key, value, ierr)
1811  ipdstmpl0(3) = value
1812  !
1813  ipdstmpl0(4) = bckgnd_gen_proc_id
1814  !
1815  call get_g2_on388genproc(gen_proc_or_mod_key, value, ierr)
1816  ipdstmpl0(5) = value
1817  !
1818  ipdstmpl0(6) = hrs_obs_cutoff
1819  ipdstmpl0(7) = min_obs_cutoff
1820  !
1821  call get_g2_unitoftimerange(unit_of_time_key, value, ierr)
1822  ipdstmpl0(8) = value
1823  ipdstmpl0(9) = fcst_time
1824  !
1825  call get_g2_fixedsurfacetypes(lvl_type1, value, ierr)
1826  ipdstmpl0(10) = value
1827  ipdstmpl0(11) = scale_fac1
1828  ipdstmpl0(12) = scaled_val1
1829  !
1830  call get_g2_fixedsurfacetypes(lvl_type2, value, ierr)
1831  ipdstmpl0(13) = value
1832  !
1833  ipdstmpl0(14) = scale_fac2
1834  ipdstmpl0(15) = scaled_val2
1835  !
1836  end subroutine g2sec4_temp0
1889  subroutine g2sec4_temp8(icatg, iparm, typ_gen_proc_key, gen_proc_or_mod_key, &
1890  hrs_obs_cutoff, min_obs_cutoff, unit_of_time_key, &
1891  fcst_time, lvl_type1, scale_fac1, scaled_val1, lvl_type2, &
1892  scale_fac2, scaled_val2, year_intvl, &
1893  mon_intvl, day_intvl, hour_intvl, min_intvl, sec_intvl, &
1894  num_time_range, stat_miss_val, type_of_stat_proc, &
1895  type_of_time_inc, stat_unit_time_key, &
1896  leng_time_range_stat, stat_unit_time_key_succ, &
1897  time_inc_betwn_succ_fld, ipdstmpl8)
1898  !
1899  integer(4), intent(in) :: icatg, iparm, hrs_obs_cutoff, min_obs_cutoff, fcst_time, &
1900  scale_fac1, scaled_val1, scale_fac2, scaled_val2
1901  integer(4), intent(in) :: year_intvl, mon_intvl, day_intvl, hour_intvl, min_intvl, &
1902  sec_intvl, num_time_range, stat_miss_val, &
1903  leng_time_range_stat, time_inc_betwn_succ_fld
1904  !
1905  character(len=*), intent(in) :: typ_gen_proc_key, gen_proc_or_mod_key, &
1906  unit_of_time_key, lvl_type1, lvl_type2, &
1907  type_of_stat_proc, type_of_time_inc, &
1908  stat_unit_time_key, stat_unit_time_key_succ
1909  !
1910  integer(4) :: bckgnd_gen_proc_id ! defined by the center
1911  !
1912  integer(4), intent(inout) :: ipdstmpl8(29) ! currently works only for n=1
1913  ! later on, this will be generalized
1914  !
1915  !-- local vars
1916  integer(4) :: value, ierr
1917  !
1918  bckgnd_gen_proc_id=0
1919  !
1920  ipdstmpl8(1) = icatg
1921  ipdstmpl8(2) = iparm
1922  !
1923  call get_g2_typeofgenproc(typ_gen_proc_key, value, ierr)
1924  ipdstmpl8(3) = value
1925  !
1926  ipdstmpl8(4) = bckgnd_gen_proc_id
1927  !
1928  call get_g2_on388genproc(gen_proc_or_mod_key, value, ierr)
1929  ipdstmpl8(5) = value
1930  !
1931  ipdstmpl8(6) = hrs_obs_cutoff
1932  ipdstmpl8(7) = min_obs_cutoff
1933  !
1934  call get_g2_unitoftimerange(unit_of_time_key, value, ierr)
1935  ipdstmpl8(8) = value
1936  ipdstmpl8(9) = fcst_time
1937  !
1938  call get_g2_fixedsurfacetypes(lvl_type1, value, ierr)
1939  ipdstmpl8(10) = value
1940  ipdstmpl8(11) = scale_fac1
1941  ipdstmpl8(12) = scaled_val1
1942  !
1943  call get_g2_fixedsurfacetypes(lvl_type2, value, ierr)
1944  ipdstmpl8(13) = value
1945  !
1946  ipdstmpl8(14) = scale_fac2
1947  ipdstmpl8(15) = scaled_val2
1948  ipdstmpl8(16) = year_intvl
1949  ipdstmpl8(17) = mon_intvl
1950  ipdstmpl8(18) = day_intvl
1951  ipdstmpl8(19) = hour_intvl
1952  ipdstmpl8(20) = min_intvl
1953  ipdstmpl8(21) = sec_intvl
1954  !
1955  ipdstmpl8(22) = num_time_range ! choose n=1 for this case
1956  ipdstmpl8(23) = stat_miss_val ! choose 0 for this case
1957  !
1958  call get_g2_statprocesstypes(type_of_stat_proc, value, ierr)
1959  ipdstmpl8(24) = value ! types_of_stat_proc='accumulation'
1960  !
1961  call get_g2_typeoftimeintervals(type_of_time_inc, value, ierr)
1962  ipdstmpl8(25) = value ! type_of_time_inc='same_start_time_fcst_fcst_time_inc'
1963  ! value = 2 (Successive times processed have same start
1964  ! time of forecast, forecast time is incremented)
1965  !
1966  call get_g2_unitoftimerange(stat_unit_time_key, value, ierr)
1967  ipdstmpl8(26) = value ! stat_unit_time_key='hour'
1968  ! value = 1
1969  ipdstmpl8(27) = leng_time_range_stat ! value = 6
1970  !
1971  call get_g2_unitoftimerange(stat_unit_time_key_succ, value, ierr)
1972  ! stat_unit_time_key_succ='missing'
1973  ipdstmpl8(28) = value ! value = 255
1974  !
1975  ipdstmpl8(29) = time_inc_betwn_succ_fld ! value = 0
1976  !
1977  end subroutine g2sec4_temp8
2030  subroutine g2sec4_temp9(icatg, iparm, typ_gen_proc_key, gen_proc_or_mod_key, &
2031  hrs_obs_cutoff, min_obs_cutoff, unit_of_time_key, &
2032  fcst_time, lvl_type1, scale_fac1, scaled_val1, lvl_type2, &
2033  scale_fac2, scaled_val2, prob_num, tot_num_prob, type_of_prob, &
2034  scale_fac_lower_limit, scale_val_lower_limit, &
2035  scale_fac_upper_limit, scale_val_upper_limit, year_intvl, &
2036  mon_intvl, day_intvl, hour_intvl, min_intvl, sec_intvl, &
2037  num_time_range, stat_miss_val, type_of_stat_proc, &
2038  type_of_time_inc, stat_unit_time_key, &
2039  leng_time_range_stat, stat_unit_time_key_succ, &
2040  time_inc_betwn_succ_fld, ipdstmpl9)
2041  !
2042  integer(4), intent(in) :: icatg, iparm, hrs_obs_cutoff, min_obs_cutoff, fcst_time, &
2043  scale_fac1, scaled_val1, scale_fac2, scaled_val2, prob_num, tot_num_prob, &
2044  scale_fac_lower_limit, scale_fac_upper_limit
2045  integer(4), intent(in) :: year_intvl, mon_intvl, day_intvl, hour_intvl, min_intvl, &
2046  sec_intvl, num_time_range, stat_miss_val, &
2047  leng_time_range_stat, time_inc_betwn_succ_fld
2048  !
2049  real, intent(in) :: scale_val_lower_limit, scale_val_upper_limit
2050  !
2051  character(len=*), intent(in) :: typ_gen_proc_key, gen_proc_or_mod_key, &
2052  unit_of_time_key, lvl_type1, lvl_type2, type_of_prob, &
2053  type_of_stat_proc, type_of_time_inc, &
2054  stat_unit_time_key, stat_unit_time_key_succ
2055  !
2056  integer(4) :: bckgnd_gen_proc_id ! defined by the center
2057  !
2058  integer(4), intent(inout) :: ipdstmpl9(36) ! currently works only for n=1
2059  ! later on, this will be generalized
2060  !
2061  !-- local vars
2062  integer(4) :: value, ierr
2063  !
2064  bckgnd_gen_proc_id=0
2065  !
2066  ipdstmpl9(1) = icatg
2067  ipdstmpl9(2) = iparm
2068  !
2069  call get_g2_typeofgenproc(typ_gen_proc_key, value, ierr)
2070  ipdstmpl9(3) = value
2071  !
2072  ipdstmpl9(4) = bckgnd_gen_proc_id
2073  !
2074  call get_g2_on388genproc(gen_proc_or_mod_key, value, ierr)
2075  ipdstmpl9(5) = value
2076  !
2077  ipdstmpl9(6) = hrs_obs_cutoff
2078  ipdstmpl9(7) = min_obs_cutoff
2079  !
2080  call get_g2_unitoftimerange(unit_of_time_key, value, ierr)
2081  ipdstmpl9(8) = value
2082  ipdstmpl9(9) = fcst_time
2083  !
2084  call get_g2_fixedsurfacetypes(lvl_type1, value, ierr)
2085  ipdstmpl9(10) = value
2086  ipdstmpl9(11) = scale_fac1
2087  ipdstmpl9(12) = scaled_val1
2088  !
2089  call get_g2_fixedsurfacetypes(lvl_type2, value, ierr)
2090  ipdstmpl9(13) = value
2091  !
2092  ipdstmpl9(14) = scale_fac2
2093  ipdstmpl9(15) = scaled_val2
2094  ipdstmpl9(16) = prob_num
2095  ipdstmpl9(17) = tot_num_prob
2096  !
2097  call get_g2_typeofprob(type_of_prob, value, ierr)
2098  ipdstmpl9(18) = value
2099  !
2100  ipdstmpl9(19) = scale_fac_lower_limit
2101  ipdstmpl9(20) = int(scale_val_lower_limit)
2102  ipdstmpl9(21) = scale_fac_upper_limit
2103  ipdstmpl9(22) = int(scale_val_upper_limit)
2104  !
2105  ipdstmpl9(23) = year_intvl
2106  ipdstmpl9(24) = mon_intvl
2107  ipdstmpl9(25) = day_intvl
2108  ipdstmpl9(26) = hour_intvl
2109  ipdstmpl9(27) = min_intvl
2110  ipdstmpl9(28) = sec_intvl
2111  !
2112  ipdstmpl9(29) = num_time_range ! choose n=1 for this case
2113  ipdstmpl9(30) = stat_miss_val ! choose 0 for this case
2114  !
2115  call get_g2_statprocesstypes(type_of_stat_proc, value, ierr)
2116  ipdstmpl9(31) = value ! types_of_stat_proc='accumulation'
2117  !
2118  call get_g2_typeoftimeintervals(type_of_time_inc, value, ierr)
2119  ipdstmpl9(32) = value ! type_of_time_inc='same_start_time_fcst_fcst_time_inc'
2120  ! value = 2 (Successive times processed have same start
2121  ! time of forecast, forecast time is incremented)
2122  !
2123  call get_g2_unitoftimerange(stat_unit_time_key, value, ierr)
2124  ipdstmpl9(33) = value ! stat_unit_time_key='hour'
2125  ! value = 1
2126  ipdstmpl9(34) = leng_time_range_stat ! value = 6
2127  !
2128  call get_g2_unitoftimerange(stat_unit_time_key_succ, value, ierr)
2129  ! stat_unit_time_key_succ='missing'
2130  ipdstmpl9(35) = value ! value = 255
2131  !
2132  ipdstmpl9(36) = time_inc_betwn_succ_fld ! value = 0
2133  !
2134  end subroutine g2sec4_temp9
2163  subroutine g2sec4_temp44(icatg, iparm, aer_type, typ_intvl_size, &
2164  scale_fac1_size, scale_val1_size, scale_fac2_size, &
2165  scale_val2_size, typ_gen_proc_key, &
2166  gen_proc_or_mod_key, hrs_obs_cutoff, min_obs_cutoff, &
2167  unit_of_time_key, fcst_time, lvl_type1, scale_fac1, &
2168  scaled_val1, lvl_type2, scale_fac2, scaled_val2, &
2169  ipdstmpl44)
2170  integer(4), intent(in) :: icatg, iparm, hrs_obs_cutoff, min_obs_cutoff, &
2171  scale_fac1_size, scale_fac2_size, &
2172  fcst_time, scale_fac1, scaled_val1, scale_fac2, scaled_val2
2173  real, intent(in) :: scale_val1_size, scale_val2_size
2174  !
2175  character(len=*), intent(in) :: aer_type, typ_intvl_size, typ_gen_proc_key, &
2176  gen_proc_or_mod_key, unit_of_time_key, lvl_type1, lvl_type2
2177  !
2178  integer(4), intent(inout) :: ipdstmpl44(21)
2179  !
2180  !local vars
2181  integer(4) :: value, ierr
2182  integer(4) :: bckgnd_gen_proc_id ! defined by the center
2183  !
2184  bckgnd_gen_proc_id = 0 ! defined by the center
2185  !
2186  ipdstmpl44(1) = icatg
2187  ipdstmpl44(2) = iparm
2188  !
2189  call get_g2_typeofaerosol(aer_type, value, ierr)
2190  ipdstmpl44(3) = value
2191  !
2192  call get_g2_typeofintervals(typ_intvl_size, value, ierr)
2193  ipdstmpl44(4) = value
2194  ipdstmpl44(5) = scale_fac1_size
2195  ipdstmpl44(6) = int(scale_val1_size)
2196  ipdstmpl44(7) = scale_fac2_size
2197  ipdstmpl44(8) = int(scale_val2_size)
2198  !
2199  call get_g2_typeofgenproc(typ_gen_proc_key, value, ierr)
2200  ipdstmpl44(9) = value
2201  !
2202  ipdstmpl44(10) = bckgnd_gen_proc_id
2203  !
2204  call get_g2_on388genproc(gen_proc_or_mod_key, value, ierr)
2205  ipdstmpl44(11) = value
2206  !
2207  ipdstmpl44(12) = hrs_obs_cutoff
2208  ipdstmpl44(13) = min_obs_cutoff
2209  !
2210  call get_g2_unitoftimerange(unit_of_time_key, value, ierr)
2211  ipdstmpl44(14) = value
2212  ipdstmpl44(15) = fcst_time
2213  !
2214  call get_g2_fixedsurfacetypes(lvl_type1, value, ierr)
2215  ipdstmpl44(16) = value
2216  ipdstmpl44(17) = scale_fac1
2217  ipdstmpl44(18) = scaled_val1
2218  !
2219  call get_g2_fixedsurfacetypes(lvl_type2, value, ierr)
2220  ipdstmpl44(19) = value
2221  !
2222  ipdstmpl44(20) = scale_fac2
2223  ipdstmpl44(21) = scaled_val2
2224  !
2225  end subroutine g2sec4_temp44
2289  subroutine g2sec4_temp46(icatg, iparm, aer_type, typ_intvl_size, &
2290  scale_fac1_size, scale_val1_size, scale_fac2_size, &
2291  scale_val2_size, typ_gen_proc_key, gen_proc_or_mod_key, &
2292  hrs_obs_cutoff, min_obs_cutoff, &
2293  unit_of_time_key, fcst_time, lvl_type1, scale_fac1, &
2294  scaled_val1, lvl_type2, scale_fac2, scaled_val2, &
2295  year_intvl, &
2296  mon_intvl, day_intvl, hour_intvl, min_intvl, sec_intvl, &
2297  num_time_range, stat_miss_val, type_of_stat_proc, &
2298  type_of_time_inc, stat_unit_time_key, &
2299  leng_time_range_stat, stat_unit_time_key_succ, &
2300  time_inc_betwn_succ_fld, ipdstmpl46)
2301  integer(4), intent(in) :: icatg, iparm, hrs_obs_cutoff, min_obs_cutoff, &
2302  scale_fac1_size, scale_fac2_size, &
2303  fcst_time, scale_fac1, scaled_val1, &
2304  scale_fac2, scaled_val2
2305  integer(4), intent(in) :: year_intvl, mon_intvl, day_intvl, hour_intvl, min_intvl, &
2306  sec_intvl, num_time_range, stat_miss_val, &
2307  leng_time_range_stat, time_inc_betwn_succ_fld
2308  !
2309  real, intent(in) :: scale_val1_size, scale_val2_size
2310  !
2311  character(len=*), intent(in) :: aer_type, typ_intvl_size, &
2312  typ_gen_proc_key, &
2313  gen_proc_or_mod_key, unit_of_time_key, lvl_type1, lvl_type2, &
2314  type_of_stat_proc, type_of_time_inc, &
2315  stat_unit_time_key, stat_unit_time_key_succ
2316  !
2317  integer(4), intent(inout) :: ipdstmpl46(35)
2318  !
2319  !local vars
2320  integer(4) :: value, ierr
2321  integer(4) :: bckgnd_gen_proc_id ! defined by the center
2322  !
2323  bckgnd_gen_proc_id=0 ! defined by the center
2324  !
2325  ipdstmpl46(1) = icatg
2326  ipdstmpl46(2) = iparm
2327  !
2328  call get_g2_typeofaerosol(aer_type, value, ierr)
2329  ipdstmpl46(3) = value
2330  !
2331  call get_g2_typeofintervals(typ_intvl_size, value, ierr)
2332  ipdstmpl46(4) = value
2333  ipdstmpl46(5) = scale_fac1_size
2334  ipdstmpl46(6) = nint(scale_val1_size)
2335  ipdstmpl46(7) = scale_fac2_size
2336  ipdstmpl46(8) = nint(scale_val2_size)
2337 
2338  call get_g2_typeofgenproc(typ_gen_proc_key, value, ierr)
2339  ipdstmpl46(9) = value
2340  !
2341  ipdstmpl46(10) = bckgnd_gen_proc_id
2342  !
2343  call get_g2_on388genproc(gen_proc_or_mod_key, value, ierr)
2344  ipdstmpl46(11) = value
2345  !
2346  ipdstmpl46(12) = hrs_obs_cutoff
2347  ipdstmpl46(13) = min_obs_cutoff
2348  !
2349  call get_g2_unitoftimerange(unit_of_time_key, value, ierr)
2350  ipdstmpl46(14) = value
2351  ipdstmpl46(15) = fcst_time
2352  !
2353  call get_g2_fixedsurfacetypes(lvl_type1, value, ierr)
2354  ipdstmpl46(16) = value
2355  ipdstmpl46(17) = scale_fac1
2356  ipdstmpl46(18) = scaled_val1
2357  !
2358  call get_g2_fixedsurfacetypes(lvl_type2, value, ierr)
2359  ipdstmpl46(19) = value
2360  !
2361  ipdstmpl46(20) = scale_fac2
2362  ipdstmpl46(21) = scaled_val2
2363  ipdstmpl46(22) = year_intvl
2364  ipdstmpl46(23) = mon_intvl
2365  ipdstmpl46(24) = day_intvl
2366  ipdstmpl46(25) = hour_intvl
2367  ipdstmpl46(26) = min_intvl
2368  ipdstmpl46(27) = sec_intvl
2369  !
2370  ipdstmpl46(28) = num_time_range ! choose n=1 for this case
2371  ipdstmpl46(29) = stat_miss_val ! choose 0 for this case
2372  !
2373  call get_g2_statprocesstypes(type_of_stat_proc, value, ierr)
2374  ipdstmpl46(30) = value ! types_of_stat_proc='accumulation'
2375  !
2376  call get_g2_typeoftimeintervals(type_of_time_inc, value, ierr)
2377  ipdstmpl46(31) = value ! type_of_time_inc='same_start_time_fcst_fcst_time_inc'
2378  ! value = 2 (Successive times processed have same start
2379  ! time of forecast, forecast time is incremented)
2380  !
2381  call get_g2_unitoftimerange(stat_unit_time_key, value, ierr)
2382  ipdstmpl46(32) = value ! stat_unit_time_key='hour'
2383  ! value = 1
2384  ipdstmpl46(33) = leng_time_range_stat ! value = 6
2385  !
2386  call get_g2_unitoftimerange(stat_unit_time_key_succ, value, ierr)
2387  ! stat_unit_time_key_succ='missing'
2388  ipdstmpl46(34) = value ! value = 255
2389  !
2390  ipdstmpl46(35) = time_inc_betwn_succ_fld ! value = 0
2391  !
2392  end subroutine g2sec4_temp46
2426  subroutine g2sec4_temp48(icatg, iparm, aer_type, typ_intvl_size, &
2427  scale_fac1_size, scale_val1_size, scale_fac2_size, &
2428  scale_val2_size, typ_intvl_wavelength, &
2429  scale_fac1_wavelength, scale_val1_wavelength, &
2430  scale_fac2_wavelength, scale_val2_wavelength, &
2431  typ_gen_proc_key, gen_proc_or_mod_key, &
2432  hrs_obs_cutoff, min_obs_cutoff, &
2433  unit_of_time_key, fcst_time, lvl_type1, scale_fac1, &
2434  scaled_val1, lvl_type2, scale_fac2, scaled_val2, &
2435  ipdstmpl48)
2436  integer(4), intent(in) :: icatg, iparm, hrs_obs_cutoff, min_obs_cutoff, &
2437  scale_fac1_size, scale_fac2_size, scale_fac1_wavelength, &
2438  scale_fac2_wavelength, &
2439  fcst_time, scale_fac1, scaled_val1, &
2440  scale_fac2, scaled_val2
2441  real, intent(in) :: scale_val1_size, scale_val2_size, scale_val1_wavelength, &
2442  scale_val2_wavelength
2443  !
2444  character(len=*), intent(in) :: aer_type, typ_intvl_size, &
2445  typ_intvl_wavelength, typ_gen_proc_key, &
2446  gen_proc_or_mod_key, unit_of_time_key, lvl_type1, lvl_type2
2447  !
2448  integer(4), intent(inout) :: ipdstmpl48(26)
2449  !
2450  !local vars
2451  integer(4) :: value, ierr
2452  integer(4) :: bckgnd_gen_proc_id ! defined by the center
2453  !
2454  bckgnd_gen_proc_id=0 ! defined by the center
2455  !
2456  ipdstmpl48(1) = icatg
2457  ipdstmpl48(2) = iparm
2458  !
2459  call get_g2_typeofaerosol(aer_type, value, ierr)
2460  ipdstmpl48(3) = value
2461  !
2462  call get_g2_typeofintervals(typ_intvl_size, value, ierr)
2463  ipdstmpl48(4) = value
2464  ipdstmpl48(5) = scale_fac1_size
2465  ipdstmpl48(6) = nint(scale_val1_size)
2466  ipdstmpl48(7) = scale_fac2_size
2467  ipdstmpl48(8) = nint(scale_val2_size)
2468  !
2469  call get_g2_typeofintervals(typ_intvl_wavelength, value, ierr)
2470  ipdstmpl48(9) = value
2471  ipdstmpl48(10) = scale_fac1_wavelength
2472  ipdstmpl48(11) = nint(scale_val1_wavelength)
2473  ipdstmpl48(12) = scale_fac2_wavelength
2474  ipdstmpl48(13) = nint(scale_val2_wavelength)
2475  !
2476  call get_g2_typeofgenproc(typ_gen_proc_key, value, ierr)
2477  ipdstmpl48(14) = value
2478  !
2479  ipdstmpl48(15) = bckgnd_gen_proc_id
2480  !
2481  call get_g2_on388genproc(gen_proc_or_mod_key, value, ierr)
2482  ipdstmpl48(16) = value
2483  !
2484  ipdstmpl48(17) = hrs_obs_cutoff
2485  ipdstmpl48(18) = min_obs_cutoff
2486  !
2487  call get_g2_unitoftimerange(unit_of_time_key, value, ierr)
2488  ipdstmpl48(19) = value
2489  ipdstmpl48(20) = fcst_time
2490  !
2491  call get_g2_fixedsurfacetypes(lvl_type1, value, ierr)
2492  ipdstmpl48(21) = value
2493  ipdstmpl48(22) = scale_fac1
2494  ipdstmpl48(23) = scaled_val1
2495  !
2496  call get_g2_fixedsurfacetypes(lvl_type2, value, ierr)
2497  ipdstmpl48(24) = value
2498  !
2499  ipdstmpl48(25) = scale_fac2
2500  ipdstmpl48(26) = scaled_val2
2501  !
2502  end subroutine g2sec4_temp48
2503  !
2504  !
2513  subroutine get_g2_typeofensfcst(key, value, ierr)
2514  character(len=*) :: key
2515  integer :: value, n, ierr
2516  !
2517  do n=1, maxtypeofensfcst
2518  if (trim(table4_6(n)%typeofensfcstkey).eq.trim(key)) then
2519  value=table4_6(n)%typeofensfcstval
2520  return
2521  endif
2522  enddo
2523  print *, 'get_g2_typeofensfcst key: ', key, &
2524  ' not found in table 4.6'
2525  ierr=9
2526  return
2527  end subroutine get_g2_typeofensfcst
2537  subroutine get_g2_typeofderivefcst(key, value, ierr)
2538  character(len=*) :: key
2539  integer :: value, n, ierr
2540  !
2541  do n=1, maxtypeofderivefcst
2542  if (trim(table4_7(n)%typeofderivefcstkey).eq.trim(key)) then
2543  value=table4_7(n)%typeofderivefcstval
2544  return
2545  endif
2546  enddo
2547  print *, 'get_g2_typeofderivefcst key: ', key, &
2548  ' not found in table 4.7'
2549  ierr=9
2550  return
2551  end subroutine get_g2_typeofderivefcst
2574  subroutine g2sec5_temp0(dec_scale_fac, bin_scale_fac, tlnumbits, ifield5)
2575  integer(4), intent(in) :: bin_scale_fac, dec_scale_fac, tlnumbits
2576  integer(4), intent(out) :: ifield5(5)
2577  ! character(len=50) :: type_of_field
2578  !
2579  ifield5(1) = 0 ! Any value. Will be later overwritten
2580  ifield5(2) = bin_scale_fac
2581  ifield5(3) = dec_scale_fac
2582  ifield5(4) = tlnumbits
2583  ifield5(5) = 0 !g2 lib only 0
2584  !
2585  end subroutine g2sec5_temp0
2602  subroutine g2sec5_temp2(dec_scale_fac, bin_scale_fac, ifield5)
2603  !
2604  integer(4), intent(inout) :: ifield5(16)
2605  integer(4), intent(in) :: dec_scale_fac, bin_scale_fac
2606  !
2607  ifield5=0
2608  ifield5(1) = 0 ! Any value. Will be later overwritten
2609  ifield5(2) = bin_scale_fac
2610  ifield5(3) = dec_scale_fac
2611  !
2612  end subroutine g2sec5_temp2
2630  subroutine g2sec5_temp3(dec_scale_fac, bin_scale_fac, order_of_sptdiff, &
2631  ifield5)
2632  !
2633  integer(4), intent(in) :: dec_scale_fac, bin_scale_fac
2634  character(*), intent(in) :: order_of_sptdiff
2635  integer(4), intent(out) :: ifield5(18)
2636  !
2637  integer(4) :: value, ierr
2638  !
2639  ifield5=0
2640  ifield5(1) = 0 ! Any value. Will be later overwritten
2641  ifield5(2) = bin_scale_fac
2642  ifield5(3) = dec_scale_fac
2643  !
2644  call get_g2_ordofspcdiffvals(order_of_sptdiff, value, ierr)
2645  ifield5(17) = value
2646  !
2647  end subroutine g2sec5_temp3
2675  subroutine g2sec5_temp40(dec_scale_fac, bin_scale_fac, tlnumbits, &
2676  type_of_compression, ifield5)
2677  !
2678  integer(4), intent(in) :: bin_scale_fac, dec_scale_fac, tlnumbits
2679  character(*), intent(in) :: type_of_compression
2680  integer(4), intent(inout) :: ifield5(7)
2681  !
2682  !--- local variable
2683  integer(4) :: value, ierr
2684  integer, parameter :: MAX_NUMBIT=16
2685  !
2686  ifield5(1) = 0 ! Any value. Will be later overwritten
2687  ifield5(2) = bin_scale_fac
2688  ifield5(3) = dec_scale_fac
2689  ifield5(4) = tlnumbits
2690  ifield5(5) = 0 !g2lib assumes original data were reals
2691  !
2692  ! call get_g2_typeoforigfieldvals(type_of_field, value, ierr)
2693  ! ifield5(5) = value
2694  !
2696  ifield5(6) = value
2697  !
2698  ifield5(7) = 255
2699  end subroutine g2sec5_temp40
2700 
2709  subroutine get_g2_typeofcluster(key, value, ierr)
2710  character(len=*) :: key
2711  integer :: value, n, ierr
2712  !
2713  do n=1, maxtypeofcluster
2714  if (trim(table4_8(n)%typeofclusterkey).eq.trim(key)) then
2715  value=table4_8(n)%typeofclusterval
2716  return
2717  endif
2718  enddo
2719  print *, 'get_g2_typeofcluster key: ', key, &
2720  ' not found in table 4.8'
2721  ierr=9
2722  return
2723  end subroutine get_g2_typeofcluster
2733  subroutine get_g2_typeofprob(key, value, ierr)
2734  character(len=*) :: key
2735  integer :: value, n, ierr
2736  !
2737  do n=1, maxtypeofprob
2738  if (trim(table4_9(n)%typeofprobkey).eq.trim(key)) then
2739  value=table4_9(n)%typeofprobval
2740  return
2741  endif
2742  enddo
2743  print *, 'get_g2_typeofprob key: ', key, &
2744  ' not found in table 4.9'
2745  ierr=9
2746  return
2747  end subroutine get_g2_typeofprob
2748 
2757  subroutine get_g2_typeofprecip(key, value, ierr)
2758  character(len=*) :: key
2759  integer :: value, n, ierr
2760  !
2761  do n=1, maxtypeofprecip
2762  if (trim(table4_201(n)%typeofprecipkey).eq.trim(key)) then
2763  value=table4_201(n)%typeofprecipval
2764  return
2765  endif
2766  enddo
2767  print *, 'get_g2_typeofprecip key: ', key, &
2768  ' not found in table 4.201'
2769  ierr=9
2770  return
2771  end subroutine get_g2_typeofprecip
2772 
2773 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...
subroutine g2sec4_temp46(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, 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, ipdstmpl46)
Returns the GRIB2 Section 4 Template 4.0 list.
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 g2sec4_temp9(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, prob_num, tot_num_prob, type_of_prob, scale_fac_lower_limit, scale_val_lower_limit, scale_fac_upper_limit, scale_val_upper_limit, 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, ipdstmpl9)
Returns the GRIB2 Section 4 Template 4.9 list for given keys PDT 4.9 - Probability forecasts at a hor...
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 ...