find_metadata_for_layer_id Function

function find_metadata_for_layer_id(meta_keys, num_meta, layer_id) result(meta_index)

Return metadata index for a given layer id, or 0 if absent.

Arguments

Type IntentOptional Attributes Name
character(len=256), intent(in) :: meta_keys(:)

Metadata keys list

integer, intent(in) :: num_meta

Number of metadata entries and target layer id

integer, intent(in) :: layer_id

Number of metadata entries and target layer id

Return Value integer

Index of the found metadata entry, or 0 if not found


Source Code

  function find_metadata_for_layer_id(meta_keys, num_meta, layer_id) result(meta_index)
    !! Return metadata index for a given layer id, or 0 if absent.
    implicit none

    ! Arguments
    character(256), intent(in) :: meta_keys(:)
    !! Metadata keys list
    integer, intent(in) :: num_meta, layer_id
    !! Number of metadata entries and target layer id

    integer :: meta_index
    !! Index of the found metadata entry, or 0 if not found

    ! Local variables
    integer :: i, id_tmp
    !! Loop index and parsed id candidate
    logical :: found
    !! Whether a key parsed successfully

    meta_index = 0
    do i = 1, num_meta
       call parse_meta_layer_id(meta_keys(i), id_tmp, found)
       if(found .and. id_tmp .eq. layer_id)then
          meta_index = i
          return
       end if
    end do

  end function find_metadata_for_layer_id