diff --git a/examples/F90/grib_sections_copy.f90 b/examples/F90/grib_sections_copy.f90 index 05ca26a55..93e72675f 100644 --- a/examples/F90/grib_sections_copy.f90 +++ b/examples/F90/grib_sections_copy.f90 @@ -11,18 +11,29 @@ program grib_sections_copy use eccodes implicit none - integer :: igrib1, igrib2, igrib3 + integer :: igrib_a, igrib_b, igrib_c, iret + character(len=40) :: error_message - call codes_grib_new_from_samples(igrib1, 'regular_ll_sfc_grib2') - call codes_grib_new_from_samples(igrib2, 'reduced_gg_pl_640_grib2') + call codes_grib_new_from_samples(igrib_a, 'regular_ll_sfc_grib1') + call codes_grib_new_from_samples(igrib_b, 'reduced_gg_pl_640_grib1') ! Turn all bits on: ! GRIB_SECTION_PRODUCT, GRIB_SECTION_GRID, GRIB_SECTION_LOCAL ! GRIB_SECTION_DATA, GRIB_SECTION_BITMAP - call codes_grib_util_sections_copy(igrib1, igrib2, 31, igrib3) + call codes_grib_util_sections_copy(igrib_a, igrib_b, 31, igrib_c) - call codes_release(igrib1) - call codes_release(igrib2) - call codes_release(igrib3) + call codes_release(igrib_a) + call codes_release(igrib_b) + call codes_release(igrib_c) + + ! Try from grib1 to grib2 + call codes_grib_new_from_samples(igrib_a, 'GRIB1') + call codes_grib_new_from_samples(igrib_b, 'GRIB2') + call codes_grib_util_sections_copy(igrib_a, igrib_b, 31, igrib_c, iret) + if (iret /= GRIB_DIFFERENT_EDITION) then + call codes_check(CODES_INTERNAL_ERROR, 'Error', 'codes_grib_util_sections_copy: Should have failed') + end if + call codes_get_error_string(iret, error_message) + write (*, *) 'error message: ', adjustl( adjustr(trim(error_message)) ) end program diff --git a/examples/F90/grib_sections_copy.sh b/examples/F90/grib_sections_copy.sh index 01da1a706..548401df9 100755 --- a/examples/F90/grib_sections_copy.sh +++ b/examples/F90/grib_sections_copy.sh @@ -9,4 +9,5 @@ . ./include.ctest.sh +export ECCODES_DEBUG=-1 ${examples_dir}/eccodes_f_grib_sections_copy