tracer_index_by_name Function

private pure function tracer_index_by_name(h, name) result(idx)

Registry index (1-based) of the tracer named name, or 0 if none matches. Name comparison is trim-both-sides (registry names are fixed-length character(len=32)).

Arguments

Type IntentOptional Attributes Name
type(ocean_handle_t), intent(in), pointer :: h
character(len=*), intent(in) :: name

Return Value integer


Called by

proc~~tracer_index_by_name~~CalledByGraph proc~tracer_index_by_name tracer_index_by_name proc~rdb_ocean_get_tracer_ptr rdb_ocean_get_tracer_ptr proc~rdb_ocean_get_tracer_ptr->proc~tracer_index_by_name proc~rdb_ocean_set_tracer rdb_ocean_set_tracer proc~rdb_ocean_set_tracer->proc~tracer_index_by_name

Variables

Type Visibility Attributes Name Initial
integer, private :: it

Source Code

   pure function tracer_index_by_name(h, name) result(idx)
      !! Registry index (1-based) of the tracer named `name`, or 0 if none
      !! matches. Name comparison is `trim`-both-sides (registry names are
      !! fixed-length `character(len=32)`).
      type(ocean_handle_t), pointer, intent(in) :: h
      character(len=*), intent(in) :: name
      integer :: idx

      integer :: it

      idx = 0
      if (.not. allocated(h%state%multilayer%tracers)) return
      do it = 1, size(h%state%multilayer%tracers)
         if (trim(h%state%multilayer%tracers(it)%name) == trim(name)) then
            idx = it
            return
         end if
      end do
   end function tracer_index_by_name