diff --git a/src/ip_grid_factory_mod.F90 b/src/ip_grid_factory_mod.F90 index 4eb7a816..2fa3c4d0 100644 --- a/src/ip_grid_factory_mod.F90 +++ b/src/ip_grid_factory_mod.F90 @@ -113,6 +113,10 @@ subroutine init_grid_grib2(grid, g2_desc) allocate(ip_lambert_conf_grid::grid) case(GAUSSIAN_GRID_ID_GRIB2) allocate(ip_gaussian_grid::grid) + case(ROT_EQUID_CYLIND_E_GRID_ID_GRIB2) + allocate(ip_rot_equid_cylind_egrid::grid) + case(ROT_EQUID_CYLIND_B_GRID_ID_GRIB2) + allocate(ip_rot_equid_cylind_grid::grid) case default print *, "gdt_num: ", g2_desc%gdt_num, " not recognized" error stop diff --git a/src/ip_grid_mod.F90 b/src/ip_grid_mod.F90 index 613a7b19..07f3b20c 100644 --- a/src/ip_grid_mod.F90 +++ b/src/ip_grid_mod.F90 @@ -25,6 +25,8 @@ module ip_grid_mod integer, public, parameter :: POLAR_STEREO_GRID_ID_GRIB2 = 20 !< Integer grid number for polar stereo grid in grib2 integer, public, parameter :: LAMBERT_CONF_GRID_ID_GRIB2 = 30 !< Integer grid number for Lambert conformal grid in grib2 integer, public, parameter :: GAUSSIAN_GRID_ID_GRIB2 = 40 !< Integer grid number for Gaussian grid in grib2 + integer, public, parameter :: ROT_EQUID_CYLIND_E_GRID_ID_GRIB2 = 32768 !< Integer grid number for rotated equidistant cylindrical E-stagger grid (grib2) + integer, public, parameter :: ROT_EQUID_CYLIND_B_GRID_ID_GRIB2 = 32769 !< Integer grid number for rotated equidistant cylindrical B-stagger grid (grib2) private public :: ip_grid diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 865e18bd..5393d926 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -104,6 +104,8 @@ foreach(kind ${kinds}) add_test(test_polar_stereo_neighbor_budget_vector_grib2_${kind} test_vector_grib2_${kind} 212 6) add_test(test_rotatedB_spectral_vector_grib2_${kind} test_vector_grib2_${kind} 205 4) add_test(test_rotatedE_budget_vector_grib2_${kind} test_vector_grib2_${kind} 203 3) + add_test(test_rotatedB_direct_spectral_vector_grib2_${kind} test_vector_grib2_${kind} 32769 4) + add_test(test_rotatedE_direct_budget_vector_grib2_${kind} test_vector_grib2_${kind} 32768 3) # vector station point tests add_test(test_station_points_bilinear_vector_grib2_${kind} test_vector_grib2_${kind} -1 0) diff --git a/tests/data/baseline_data/grib2/vector/4_byte_bin/grid32768.opt3.bin_4 b/tests/data/baseline_data/grib2/vector/4_byte_bin/grid32768.opt3.bin_4 new file mode 100644 index 00000000..7f39d2ce Binary files /dev/null and b/tests/data/baseline_data/grib2/vector/4_byte_bin/grid32768.opt3.bin_4 differ diff --git a/tests/data/baseline_data/grib2/vector/4_byte_bin/grid32769.opt4.bin_4 b/tests/data/baseline_data/grib2/vector/4_byte_bin/grid32769.opt4.bin_4 new file mode 100644 index 00000000..1faa1cb3 Binary files /dev/null and b/tests/data/baseline_data/grib2/vector/4_byte_bin/grid32769.opt4.bin_4 differ diff --git a/tests/data/baseline_data/grib2/vector/8_byte_bin/grid32768.opt3.bin_8 b/tests/data/baseline_data/grib2/vector/8_byte_bin/grid32768.opt3.bin_8 new file mode 100644 index 00000000..bbdc557c Binary files /dev/null and b/tests/data/baseline_data/grib2/vector/8_byte_bin/grid32768.opt3.bin_8 differ diff --git a/tests/data/baseline_data/grib2/vector/8_byte_bin/grid32769.opt4.bin_8 b/tests/data/baseline_data/grib2/vector/8_byte_bin/grid32769.opt4.bin_8 new file mode 100644 index 00000000..134ddbb7 Binary files /dev/null and b/tests/data/baseline_data/grib2/vector/8_byte_bin/grid32769.opt4.bin_8 differ diff --git a/tests/interp_mod_grib2.F90 b/tests/interp_mod_grib2.F90 index 98d63800..cef88be6 100644 --- a/tests/interp_mod_grib2.F90 +++ b/tests/interp_mod_grib2.F90 @@ -540,6 +540,20 @@ subroutine interp_vector(grid, interp_opt) output_gdtmpl=gdtmpl218 i_output = output_gdtmpl(8) j_output = output_gdtmpl(9) + case ('32768') + output_gdtnum = 32768 + output_gdtlen = gdtlen203 + allocate(output_gdtmpl(output_gdtlen)) + output_gdtmpl=gdtmpl203 + i_output = output_gdtmpl(8) + j_output = output_gdtmpl(9) + case ('32769') + output_gdtnum = 32769 + output_gdtlen = gdtlen205 + allocate(output_gdtmpl(output_gdtlen)) + output_gdtmpl=gdtmpl205 + i_output = output_gdtmpl(8) + j_output = output_gdtmpl(9) case default print*,"ERROR: ENTER VALID GRID NUMBER." stop 55