From 64f9c026bf7b1101b6d9b1ed3ab2695a6da3f669 Mon Sep 17 00:00:00 2001 From: shahramn Date: Sun, 25 Aug 2024 13:11:44 +0100 Subject: [PATCH] Fortran: Add missing skip attributes --- examples/F90/grib_keys_iterator_skip.f90 | 2 ++ fortran/eccodes_f90_tail.f90 | 17 ++++++++++++++ fortran/eccodes_visibility.h | 2 ++ fortran/grib_f90_tail.f90 | 28 ++++++++++++++++++++++++ 4 files changed, 49 insertions(+) diff --git a/examples/F90/grib_keys_iterator_skip.f90 b/examples/F90/grib_keys_iterator_skip.f90 index 7c97d85d7..c64df2447 100644 --- a/examples/F90/grib_keys_iterator_skip.f90 +++ b/examples/F90/grib_keys_iterator_skip.f90 @@ -36,6 +36,8 @@ program keys_iterator_skip call codes_skip_coded(kiter) call codes_skip_duplicates(kiter) call codes_skip_read_only(kiter) + call codes_skip_function(kiter) + call codes_skip_edition_specific(kiter) do call codes_keys_iterator_next(kiter, iret) diff --git a/fortran/eccodes_f90_tail.f90 b/fortran/eccodes_f90_tail.f90 index 4ecf52d03..4e7a951e9 100644 --- a/fortran/eccodes_f90_tail.f90 +++ b/fortran/eccodes_f90_tail.f90 @@ -2765,12 +2765,29 @@ call grib_skip_read_only(iterid, status) end subroutine codes_skip_read_only + subroutine codes_skip_function(iterid, status) + integer(kind=kindOfInt), intent(in) :: iterid + integer(kind=kindOfInt), optional, intent(out) :: status + + call grib_skip_function(iterid, status) + end subroutine codes_skip_function + + subroutine codes_skip_edition_specific(iterid, status) + integer(kind=kindOfInt), intent(in) :: iterid + integer(kind=kindOfInt), optional, intent(out) :: status + + call grib_skip_edition_specific(iterid, status) + end subroutine codes_skip_edition_specific + + !> Set debug mode subroutine codes_set_debug(dmode) integer(kind=kindOfInt), intent(in) :: dmode call grib_set_debug(dmode) end subroutine codes_set_debug + + !> Set the definition path !> !> In case of error, if the status parameter (optional) is not given, the program will diff --git a/fortran/eccodes_visibility.h b/fortran/eccodes_visibility.h index 0c26a53f7..9e720f1cd 100644 --- a/fortran/eccodes_visibility.h +++ b/fortran/eccodes_visibility.h @@ -7,6 +7,8 @@ public :: codes_keys_iterator_new, & public :: codes_skip_computed, & codes_skip_coded, & codes_skip_duplicates, & + codes_skip_function, & + codes_skip_edition_specific, & codes_skip_read_only public :: codes_keys_iterator_get_name, & codes_keys_iterator_rewind diff --git a/fortran/grib_f90_tail.f90 b/fortran/grib_f90_tail.f90 index 790ae3ace..ffd5b598c 100644 --- a/fortran/grib_f90_tail.f90 +++ b/fortran/grib_f90_tail.f90 @@ -3177,6 +3177,34 @@ end if end subroutine grib_skip_read_only + + subroutine grib_skip_function(iterid, status) + integer(kind=kindOfInt), intent(in) :: iterid + integer(kind=kindOfInt), optional, intent(out) :: status + integer(kind=kindOfInt) :: iret + + iret = grib_f_skip_function(iterid) + if (present(status)) then + status = iret + else + call grib_check(iret, 'skip_function', '') + end if + end subroutine grib_skip_function + + !!! + subroutine grib_skip_edition_specific(iterid, status) + integer(kind=kindOfInt), intent(in) :: iterid + integer(kind=kindOfInt), optional, intent(out) :: status + integer(kind=kindOfInt) :: iret + + iret = grib_f_skip_edition_specific(iterid) + if (present(status)) then + status = iret + else + call grib_check(iret, 'skip_edition_specific', '') + end if + end subroutine grib_skip_edition_specific + !> Set debug mode subroutine grib_set_debug(dmode) integer(kind=kindOfInt), intent(in) :: dmode