2024-01-21 14:33:45 +00:00
|
|
|
! (C) Copyright 2005- ECMWF.
|
|
|
|
!
|
|
|
|
! This software is licensed under the terms of the Apache Licence Version 2.0
|
|
|
|
! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
|
|
|
!
|
|
|
|
! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
|
|
|
! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
|
|
|
!
|
|
|
|
!
|
|
|
|
program grib_sections_copy
|
|
|
|
use eccodes
|
|
|
|
implicit none
|
|
|
|
|
2024-01-21 15:35:02 +00:00
|
|
|
integer :: igrib_a, igrib_b, igrib_c, iret
|
2024-08-14 14:08:39 +00:00
|
|
|
character(len=40) :: error_message = ''
|
2024-01-21 14:33:45 +00:00
|
|
|
|
2024-01-21 15:35:02 +00:00
|
|
|
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')
|
2024-01-21 14:33:45 +00:00
|
|
|
|
|
|
|
! Turn all bits on:
|
|
|
|
! GRIB_SECTION_PRODUCT, GRIB_SECTION_GRID, GRIB_SECTION_LOCAL
|
|
|
|
! GRIB_SECTION_DATA, GRIB_SECTION_BITMAP
|
2024-01-21 15:35:02 +00:00
|
|
|
call codes_grib_util_sections_copy(igrib_a, igrib_b, 31, igrib_c)
|
2024-01-21 14:33:45 +00:00
|
|
|
|
2024-01-21 15:35:02 +00:00
|
|
|
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)) )
|
2024-01-21 14:33:45 +00:00
|
|
|
|
|
|
|
end program
|