get_routehandle Function

public function get_routehandle(this, spec, rc) result(routehandle)

Type Bound

RoutehandleManager

Arguments

Type IntentOptional Attributes Name
class(RoutehandleManager), intent(inout), target :: this
type(RoutehandleSpec), intent(in) :: spec
integer, intent(out), optional :: rc

Return Value type(ESMF_RouteHandle)


Calls

proc~~get_routehandle~~CallsGraph proc~get_routehandle RoutehandleManager%get_routehandle find find proc~get_routehandle->find none~back~21 RoutehandleVector%back proc~get_routehandle->none~back~21 none~begin~197 RoutehandleSpecVector%begin proc~get_routehandle->none~begin~197 none~of~82 RoutehandleVector%of proc~get_routehandle->none~of~82 proc~add_routehandle RoutehandleManager%add_routehandle proc~get_routehandle->proc~add_routehandle proc~mapl_return MAPL_Return proc~get_routehandle->proc~mapl_return proc~mapl_verify MAPL_Verify proc~get_routehandle->proc~mapl_verify none~of_size_kind~7 RoutehandleVector%of_size_kind none~of~82->none~of_size_kind~7 proc~add_routehandle->find proc~add_routehandle->none~begin~197 proc~add_routehandle->proc~mapl_return proc~add_routehandle->proc~mapl_verify interface~make_routehandle make_routehandle proc~add_routehandle->interface~make_routehandle interface~mapl_assert MAPL_Assert proc~add_routehandle->interface~mapl_assert none~push_back~55 RoutehandleSpecVector%push_back proc~add_routehandle->none~push_back~55 at at proc~mapl_return->at insert insert proc~mapl_return->insert proc~mapl_throw_exception MAPL_throw_exception proc~mapl_return->proc~mapl_throw_exception proc~mapl_verify->proc~mapl_throw_exception none~capacity~325 RoutehandleSpecVector%capacity none~push_back~55->none~capacity~325 none~resize~110 RoutehandleSpecVector%resize none~push_back~55->none~resize~110 none~resize_size_kind~18 RoutehandleSpecVector%resize_size_kind none~resize~110->none~resize_size_kind~18

Called by

proc~~get_routehandle~~CalledByGraph proc~get_routehandle RoutehandleManager%get_routehandle none~make_regridder_typesafe EsmfRegridderFactory%make_regridder_typesafe none~make_regridder_typesafe->proc~get_routehandle none~make_regridder~4 RegridderFactory%make_regridder none~make_regridder~4->none~make_regridder_typesafe none~make_regridder RegridderManager%make_regridder none~make_regridder->none~make_regridder~4 none~get_regridder RegridderManager%get_regridder none~get_regridder->none~make_regridder

Source Code

   function get_routehandle(this, spec, rc) result(routehandle)
      type(ESMF_Routehandle) :: routehandle
      class(RoutehandleManager), target, intent(inout) :: this
      type(RoutehandleSpec), intent(in) :: spec
      integer, optional, intent(out) :: rc

      integer :: status

      associate (b => this%specs%begin(), e => this%specs%end())
        associate ( iter => find(b, e, spec))
          if (iter /= this%specs%end()) then
             routehandle = this%routehandles%of(iter - this%specs%begin() + 1)
             _RETURN(_SUCCESS)
          end if
        end associate
      end associate

      call this%add_routehandle(spec, _RC)
      routehandle = this%routehandles%back()

      _RETURN(_SUCCESS)
   end function get_routehandle