Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WMO Grib2 v33.0.0 updates to grib2_all_tables_module.F90 #144

Merged
merged 27 commits into from
Dec 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e7bb4bd
table 1.0
AlysonStahl-NOAA Dec 20, 2024
638909d
Update grib2_all_tables_module.F90
AlysonStahl-NOAA Dec 20, 2024
2bd0f7e
fix indices
AlysonStahl-NOAA Dec 20, 2024
7cab576
debug
AlysonStahl-NOAA Dec 20, 2024
3b0a5de
Update test_all_key_tables.F90
AlysonStahl-NOAA Dec 20, 2024
f313e63
Update test_all_key_tables.F90
AlysonStahl-NOAA Dec 20, 2024
5eebba4
table 1.2
AlysonStahl-NOAA Dec 20, 2024
7e416e0
Update grib2_all_tables_module.F90
AlysonStahl-NOAA Dec 20, 2024
59acfa1
table 1.3
AlysonStahl-NOAA Dec 20, 2024
79f8418
add some update comments
AlysonStahl-NOAA Dec 20, 2024
e98d402
table 4.3
AlysonStahl-NOAA Dec 20, 2024
2fb6120
table 4.5 17-19
AlysonStahl-NOAA Dec 20, 2024
e549fe4
Update grib2_all_tables_module.F90
AlysonStahl-NOAA Dec 20, 2024
93a0309
table 4.5 26-27
AlysonStahl-NOAA Dec 20, 2024
1846a55
table 4.5 30-35
AlysonStahl-NOAA Dec 20, 2024
1bcdfb5
table 4.5 152
AlysonStahl-NOAA Dec 20, 2024
22a75e6
table 4.5 171-173
AlysonStahl-NOAA Dec 20, 2024
829cad9
Merge branch 'develop' into as_wmo_updates
AlysonStahl-NOAA Dec 20, 2024
ccee91e
table 4.5 180-189
AlysonStahl-NOAA Dec 20, 2024
b0f2b21
table 4.7
AlysonStahl-NOAA Dec 20, 2024
16a03ff
table 4.9
AlysonStahl-NOAA Dec 20, 2024
ae3570c
table 4.10
AlysonStahl-NOAA Dec 20, 2024
206eeff
table 4.233
AlysonStahl-NOAA Dec 20, 2024
1a55823
table 5.0
AlysonStahl-NOAA Dec 20, 2024
41ba51d
on388 table 0
AlysonStahl-NOAA Dec 21, 2024
426c4a1
on388 table a
AlysonStahl-NOAA Dec 21, 2024
7a13121
comment
AlysonStahl-NOAA Dec 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 92 additions & 2 deletions src/grib2_all_tables_module.F90
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
!> 2021/04/20 | Boi Vuong | Updated table 4.3, 4.5,4.7 and on388_tablea
!> 2023/03/30 | Andrew Benjamin | Added new entires to on388)_tablea
!> 2024/02/23 | Andrew Benjamin | Added new subcenter to on388)_tablec
!> 2024/12/20 | Alyson Stahl | Added multiple entries from 2024 WMO updates
!>
!> @author Jun Wang @date 2012/01/25
module grib2_all_tables_module
Expand Down Expand Up @@ -142,7 +143,14 @@ module grib2_all_tables_module
data table1_0(27) /version_no('v112020',26)/
data table1_0(28) /version_no('v052021',27)/
data table1_0(29) /version_no('v112021',28)/
data table1_0(30) /version_no('preoper',29)/
!
! Added Version Number (12/20/2024)
!
data table1_0(30) /version_no('v052022',29)/
data table1_0(31) /version_no('v112022',30)/
data table1_0(32) /version_no('v062023',31)/
data table1_0(33) /version_no('v112023',32)/
data table1_0(34) /version_no('preoper',33)/
!
!
type local_table_vers_no
Expand Down Expand Up @@ -178,6 +186,11 @@ module grib2_all_tables_module
data table1_2(4) /sigreftime('obstime',3)/
data table1_2(5) /sigreftime('missing',255)/
!
! Added Significance of Ref Time (12/20/2024)
!
data table1_2(6) /sigreftime('local',4)/
data table1_2(7) /sigreftime('sim_start',5)/
!
!
type prod_status
character(len=20) :: prodstatuskey
Expand All @@ -201,6 +214,13 @@ module grib2_all_tables_module
data table1_3(10) /prod_status('unens_rreanl',8)/
data table1_3(11) /prod_status('unens_rreanl_test',9)/
!
! Added Production Status (12/20/2024)
!
data table1_3(12) /prod_status('copernic_rreanl',10)/
data table1_3(13) /prod_status('copernic_rreanl_test',11)/
data table1_3(14) /prod_status('dest_earth',12)/
data table1_3(15) /prod_status('dest_earth_test',13)/
!
!
type type_of_data
character(len=20) :: typeofdatakey
Expand Down Expand Up @@ -270,6 +290,12 @@ module grib2_all_tables_module
!
data table4_3(29) /type_of_gen_proc('local_prob_match_mean',200)/
!
! Added Generating Process (12/20/2024)
!
data table4_3(30) /type_of_gen_proc('first_guess',19)/
data table4_3(31) /type_of_gen_proc('anal_inc',20)/
data table4_3(32) /type_of_gen_proc('init_inc',21)/
!
!
type unit_of_time_range
character(len=30) :: unitoftimerangekey
Expand Down Expand Up @@ -414,6 +440,29 @@ module grib2_all_tables_module
data table4_5(105) /fixed_surface_types('eff_layer_bottom_level',217)/
data table4_5(106) /fixed_surface_types('eff_layer',218)/
!
! Added fixed surface levels (12/20/2024)
!
data table4_5(107) /fixed_surface_types('dep_level_unstable_parcel_air',17)/
data table4_5(108) /fixed_surface_types('dep_level_mixed_parcel_air',18)/
data table4_5(109) /fixed_surface_types('lowest_cloud_cover',19)/
data table4_5(110) /fixed_surface_types('conv_cloud_base',26)/
data table4_5(111) /fixed_surface_types('conv_cloud_top',27)/
data table4_5(112) /fixed_surface_types('spec_rad_centre_sun',30)/
data table4_5(113) /fixed_surface_types('solar_photosphere',31)/
data table4_5(114) /fixed_surface_types('ion_d_region_lev',32)/
data table4_5(115) /fixed_surface_types('ion_e_region_lev',33)/
data table4_5(116) /fixed_surface_types('ion_f1_region_lev',34)/
data table4_5(117) /fixed_surface_types('ion_f2_region_lev',35)/
data table4_5(118) /fixed_surface_types('sea_ice_lev',152)/
data table4_5(119) /fixed_surface_types('ocean_level_vert_eddy_diffus',171)/
data table4_5(120) /fixed_surface_types('ocean_level_rho_diff',172)/
data table4_5(121) /fixed_surface_types('top_snow_over_sea_ice',173)/
data table4_5(122) /fixed_surface_types('roof_lev',185)/
data table4_5(123) /fixed_surface_types('wall_lev',186)/
data table4_5(124) /fixed_surface_types('road_lev',187)/
data table4_5(125) /fixed_surface_types('melt_pond_top_surf',188)/
data table4_5(126) /fixed_surface_types('melt_pond_bottom_surf',189)/
!
!
type type_of_ens_fcst
character(len=50) :: typeofensfcstkey
Expand Down Expand Up @@ -466,6 +515,10 @@ module grib2_all_tables_module
data table4_7(22) /type_of_derive_fcst('percentile_value_75',203)/
data table4_7(23) /type_of_derive_fcst('percentile_value_95',204)/
!
! Added type of derive forecast (12/20/2024)
!
data table4_7(24) /type_of_derive_fcst('var_all_ens_mem',10)/
!
!
! Added Clustering Method Table 4.8 (06/26/2019)
!
Expand Down Expand Up @@ -501,6 +554,10 @@ module grib2_all_tables_module
data table4_9(8) /type_of_prob('prob_near_normal_cat',7)/
data table4_9(9) /type_of_prob('prob_below_normal_cat',8)/
!
! Added Probability Type (12/20/2024)
!
data table4_9(10) /type_of_prob('prob_counts_cat_boolean',9)/
!
!
type statistical_processing_types
character(len=80) :: statprocesstypeskey
Expand Down Expand Up @@ -544,6 +601,12 @@ module grib2_all_tables_module
data table4_10(32) /statistical_processing_types('variance',208)/
data table4_10(33) /statistical_processing_types('confficient',209)/
!
! Added Statistical Processing Type (12/20/2024)
!
data table4_10(34) /statistical_processing_types('severity',100)/
data table4_10(35) /statistical_processing_types('mode',101)/
data table4_10(36) /statistical_processing_types('index_proc',102)/
!
!
type type_of_time_intervals
character(len=80) :: typeoftimeintervalskey
Expand Down Expand Up @@ -747,7 +810,12 @@ module grib2_all_tables_module
data table4_233(125) /type_of_aerosol('aerosol_lo_absorption',62023)/
data table4_233(126) /type_of_aerosol('volcanic_ash',62025)/
! Add new parameter (04/12/2022)
data table4_233(127) /type_of_aerosol('brown_carbon_dry',63034)/
! Corrected code figure (12/20/2024)
data table4_233(127) /type_of_aerosol('brown_carbon_dry',62036)/
!
! Added Aerosol Type (12/20/2024)
!
data table4_233(128) /type_of_aerosol('oxygen',38)/
!
!
type type_of_orig_field_vals
Expand Down Expand Up @@ -815,6 +883,11 @@ module grib2_all_tables_module
data table5_0(10) /type_of_packingmethod('simple_packing_log_preprcs',61)/
data table5_0(11) /type_of_packingmethod('run_length_packing_lvl_val',200)/
!
! Added Packing Method (12/20/2024)
!
data table5_0(12) /type_of_packingmethod('ccsds_lossless',42)/
data table5_0(13) /type_of_packingmethod('spectral_limited_area_complex',53)/
!
!
type origin_centers
character(len=50) :: origincenterskey
Expand Down Expand Up @@ -1046,6 +1119,15 @@ module grib2_all_tables_module
data on388_table0(217) /origin_centers('ncsa_argentina',147)/
data on388_table0(218) /origin_centers('brazilian_decea',148)/
!
! Added original center (12/20/2024)
!
data on388_table0(219) /origin_centers('nasa',173)/
data on388_table0(220) /origin_centers('isdm_meds',174)/
data on388_table0(221) /origin_centers('cimss',176)/
data on388_table0(222) /origin_centers('niwa',204)/
data on388_table0(223) /origin_centers('opera',247)/
data on388_table0(224) /origin_centers('cosmo',250)/
!
!
type gen_proc
character(len=30) :: genprockey
Expand Down Expand Up @@ -1189,6 +1271,14 @@ module grib2_all_tables_module
data on388_tablea(120) /gen_proc('extra_trop_storm_surge_atl_3d',21)/
data on388_tablea(121) /gen_proc('extra_trop_storm_surge_pac_3d',22)/
data on388_tablea(122) /gen_proc('extra_trop_storm_surge_micro_3',23)/
!
! Added new entries in tablea (12/20/2024)
!
data on388_tablea(123) /gen_proc('rtofs',85)/
data on388_tablea(124) /gen_proc('national_blend',104)/
data on388_tablea(125) /gen_proc('urma',118)/
data on388_tablea(126) /gen_proc('wam',119)/
data on388_tablea(127) /gen_proc('ccpa',184)/

contains
!
Expand Down
114 changes: 112 additions & 2 deletions tests/test_all_key_tables.F90
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,16 @@ program test_all_tables
if (val1 .ne. 27) stop 2
call get_g2_versionno('v112021', val1, ierr)
if (val1 .ne. 28) stop 2
call get_g2_versionno('preoper', val1, ierr)
call get_g2_versionno('v052022', val1, ierr)
if (val1 .ne. 29) stop 2
call get_g2_versionno('v112022', val1, ierr)
if (val1 .ne. 30) stop 2
call get_g2_versionno('v062023', val1, ierr)
if (val1 .ne. 31) stop 2
call get_g2_versionno('v112023', val1, ierr)
if (val1 .ne. 32) stop 2
call get_g2_versionno('preoper', val1, ierr)
if (val1 .ne. 33) stop 2
call get_g2_versionno('xxx', val1, ierr)
if (ierr .ne. 9) stop 2

Expand Down Expand Up @@ -139,6 +147,10 @@ program test_all_tables
if (val1 .ne. 2) stop 4
call get_g2_sigreftime('obstime', val1, ierr)
if (val1 .ne. 3) stop 4
call get_g2_sigreftime('local', val1, ierr)
if (val1 .ne. 4) stop 4
call get_g2_sigreftime('sim_start', val1, ierr)
if (val1 .ne. 5) stop 4
call get_g2_sigreftime('missing', val1, ierr)
if (val1 .ne. 255) stop 4
call get_g2_sigreftime('xxxx', val1, ierr)
Expand Down Expand Up @@ -167,6 +179,14 @@ program test_all_tables
if (val1 .ne. 8) stop 5
call get_g2_prodstatus('unens_rreanl_test', val1, ierr)
if (val1 .ne. 9) stop 5
call get_g2_prodstatus('copernic_rreanl', val1, ierr)
if (val1 .ne. 10) stop 5
call get_g2_prodstatus('copernic_rreanl_test', val1, ierr)
if (val1 .ne. 11) stop 5
call get_g2_prodstatus('dest_earth', val1, ierr)
if (val1 .ne. 12) stop 5
call get_g2_prodstatus('dest_earth_test', val1, ierr)
if (val1 .ne. 13) stop 5
call get_g2_prodstatus('xxxx', val1, ierr)
if (ierr .ne. 9) stop 5

Expand Down Expand Up @@ -256,6 +276,12 @@ program test_all_tables
if (val1 .ne. 199) stop 7
call get_g2_typeofgenproc('local_prob_match_mean', val1, ierr)
if (val1 .ne. 200) stop 7
call get_g2_typeofgenproc('first_guess', val1, ierr)
if (val1 .ne. 19) stop 7
call get_g2_typeofgenproc('anal_inc', val1, ierr)
if (val1 .ne. 20) stop 7
call get_g2_typeofgenproc('init_inc', val1, ierr)
if (val1 .ne. 21) stop 7
call get_g2_typeofgenproc('xxxx', val1, ierr)
if (ierr .ne. 9) stop 7

Expand Down Expand Up @@ -500,6 +526,46 @@ program test_all_tables
if (val1 .ne. 217) stop 9
call get_g2_fixedsurfacetypes('eff_layer', val1, ierr)
if (val1 .ne. 218) stop 9
call get_g2_fixedsurfacetypes('dep_level_unstable_parcel_air', val1, ierr)
if (val1 .ne. 17) stop 9
call get_g2_fixedsurfacetypes('dep_level_mixed_parcel_air', val1, ierr)
if (val1 .ne. 18) stop 9
call get_g2_fixedsurfacetypes('lowest_cloud_cover', val1, ierr)
if (val1 .ne. 19) stop 9
call get_g2_fixedsurfacetypes('conv_cloud_base', val1, ierr)
if (val1 .ne. 26) stop 9
call get_g2_fixedsurfacetypes('conv_cloud_top', val1, ierr)
if (val1 .ne. 27) stop 9
call get_g2_fixedsurfacetypes('spec_rad_centre_sun', val1, ierr)
if (val1 .ne. 30) stop 9
call get_g2_fixedsurfacetypes('solar_photosphere', val1, ierr)
if (val1 .ne. 31) stop 9
call get_g2_fixedsurfacetypes('ion_d_region_lev', val1, ierr)
if (val1 .ne. 32) stop 9
call get_g2_fixedsurfacetypes('ion_e_region_lev', val1, ierr)
if (val1 .ne. 33) stop 9
call get_g2_fixedsurfacetypes('ion_f1_region_lev', val1, ierr)
if (val1 .ne. 34) stop 9
call get_g2_fixedsurfacetypes('ion_f2_region_lev', val1, ierr)
if (val1 .ne. 35) stop 9
call get_g2_fixedsurfacetypes('sea_ice_lev', val1, ierr)
if (val1 .ne. 152) stop 9
call get_g2_fixedsurfacetypes('ocean_level_vert_eddy_diffus', val1, ierr)
if (val1 .ne. 171) stop 9
call get_g2_fixedsurfacetypes('ocean_level_rho_diff', val1, ierr)
if (val1 .ne. 172) stop 9
call get_g2_fixedsurfacetypes('top_snow_over_sea_ice', val1, ierr)
if (val1 .ne. 173) stop 9
call get_g2_fixedsurfacetypes('roof_lev', val1, ierr)
if (val1 .ne. 185) stop 9
call get_g2_fixedsurfacetypes('wall_lev', val1, ierr)
if (val1 .ne. 186) stop 9
call get_g2_fixedsurfacetypes('road_lev', val1, ierr)
if (val1 .ne. 187) stop 9
call get_g2_fixedsurfacetypes('melt_pond_top_surf', val1, ierr)
if (val1 .ne. 188) stop 9
call get_g2_fixedsurfacetypes('melt_pond_bottom_surf', val1, ierr)
if (val1 .ne. 189) stop 9
call get_g2_fixedsurfacetypes('xxx', val1, ierr)
if (ierr .ne. 9) stop 9

Expand Down Expand Up @@ -570,6 +636,12 @@ program test_all_tables
if (val1 .ne. 208) stop 10
call get_g2_statprocesstypes('confficient', val1, ierr)
if (val1 .ne. 209) stop 10
call get_g2_statprocesstypes('severity', val1, ierr)
if (val1 .ne. 100) stop 10
call get_g2_statprocesstypes('mode', val1, ierr)
if (val1 .ne. 101) stop 10
call get_g2_statprocesstypes('index_proc', val1, ierr)
if (val1 .ne. 102) stop 10
call get_g2_statprocesstypes('xxxxx', val1, ierr)
if (ierr .ne. 9) stop 10

Expand Down Expand Up @@ -884,9 +956,11 @@ program test_all_tables
call get_g2_typeofaerosol('volcanic_ash', val1, ierr)
if (val1 .ne. 62025) stop 13
call get_g2_typeofaerosol('brown_carbon_dry', val1, ierr)
if (val1 .ne. 63034) stop 13
if (val1 .ne. 62036) stop 13
call get_g2_typeofaerosol('', val1, ierr)
if (val1 .ne. 65535) stop 13
call get_g2_typeofaerosol('oxygen', val1, ierr)
if (val1 .ne. 38) stop 13
call get_g2_typeofaerosol('xxxx', val1, ierr)
if (ierr .ne. 9) stop 13

Expand Down Expand Up @@ -1327,6 +1401,18 @@ program test_all_tables
if (val1 .ne. 147) stop 14
call get_g2_on388origincenters('brazilian_decea', val1, ierr)
if (val1 .ne. 148) stop 14
call get_g2_on388origincenters('nasa', val1, ierr)
if (val1 .ne. 173) stop 14
call get_g2_on388origincenters('isdm_meds', val1, ierr)
if (val1 .ne. 174) stop 14
call get_g2_on388origincenters('cimss', val1, ierr)
if (val1 .ne. 176) stop 14
call get_g2_on388origincenters('niwa', val1, ierr)
if (val1 .ne. 204) stop 14
call get_g2_on388origincenters('opera', val1, ierr)
if (val1 .ne. 247) stop 14
call get_g2_on388origincenters('cosmo', val1, ierr)
if (val1 .ne. 250) stop 14
call get_g2_on388origincenters('xxxx', val1, ierr)
if (ierr .ne. 9) stop 14

Expand Down Expand Up @@ -1569,6 +1655,22 @@ program test_all_tables
if (val1 .ne. 134) stop 15
call get_g2_on388genproc('hafs', val1, ierr)
if (val1 .ne. 135) stop 15
call get_g2_on388genproc('extra_trop_storm_surge_atl_3d', val1, ierr)
if (val1 .ne. 21) stop 15
call get_g2_on388genproc('extra_trop_storm_surge_pac_3d', val1, ierr)
if (val1 .ne. 22) stop 15
call get_g2_on388genproc('extra_trop_storm_surge_micro_3', val1, ierr)
if (val1 .ne. 23) stop 15
call get_g2_on388genproc('rtofs', val1, ierr)
if (val1 .ne. 85) stop 15
call get_g2_on388genproc('national_blend', val1, ierr)
if (val1 .ne. 104) stop 15
call get_g2_on388genproc('urma', val1, ierr)
if (val1 .ne. 118) stop 15
call get_g2_on388genproc('wam', val1, ierr)
if (val1 .ne. 119) stop 15
call get_g2_on388genproc('ccpa', val1, ierr)
if (val1 .ne. 184) stop 15
call get_g2_on388genproc('xxxx', val1, ierr)
if (ierr .ne. 9) stop 15

Expand Down Expand Up @@ -1645,6 +1747,10 @@ program test_all_tables
if (val1 .ne. 61) stop 19
call get_g2_sec5packingmethod('run_length_packing_lvl_val', val1, ierr)
if (val1 .ne. 200) stop 19
call get_g2_sec5packingmethod('ccsds_lossless', val1, ierr)
if (val1 .ne. 42) stop 19
call get_g2_sec5packingmethod('spectral_limited_area_complex', val1, ierr)
if (val1 .ne. 53) stop 19
call get_g2_sec5packingmethod('xxxxx', val1, ierr)
if (ierr .ne. 9) stop 19

Expand Down Expand Up @@ -1711,6 +1817,8 @@ program test_all_tables
if (val1 .ne. 203) stop 21
call get_g2_typeofderivefcst('percentile_value_95', val1, ierr)
if (val1 .ne. 204) stop 21
call get_g2_typeofderivefcst('var_all_ens_mem', val1, ierr)
if (val1 .ne. 10) stop 21
call get_g2_typeofderivefcst('xxxx', val1, ierr)
if (ierr .ne. 9) stop 21

Expand Down Expand Up @@ -1741,6 +1849,8 @@ program test_all_tables
if (val1 .ne. 7) stop 23
call get_g2_typeofprob('prob_below_normal_cat', val1, ierr)
if (val1 .ne. 8) stop 23
call get_g2_typeofprob('prob_counts_cat_boolean', val1, ierr)
if (val1 .ne. 9) stop 23
call get_g2_typeofprob('xxxx', val1, ierr)
if (ierr .ne. 9) stop 23

Expand Down
Loading