add_routehandle Subroutine

public subroutine add_routehandle(this, spec, rc)

Type Bound

RoutehandleManager

Arguments

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

Calls

proc~~add_routehandle~~CallsGraph proc~add_routehandle RoutehandleManager%add_routehandle find find proc~add_routehandle->find interface~make_routehandle make_routehandle proc~add_routehandle->interface~make_routehandle interface~mapl_assert MAPL_Assert proc~add_routehandle->interface~mapl_assert none~begin~197 RoutehandleSpecVector%begin proc~add_routehandle->none~begin~197 none~push_back~55 RoutehandleSpecVector%push_back proc~add_routehandle->none~push_back~55 proc~mapl_return MAPL_Return proc~add_routehandle->proc~mapl_return proc~mapl_verify MAPL_Verify proc~add_routehandle->proc~mapl_verify none~capacity~325 RoutehandleSpecVector%capacity none~push_back~55->none~capacity~325 none~resize~110 RoutehandleSpecVector%resize none~push_back~55->none~resize~110 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~resize_size_kind~18 RoutehandleSpecVector%resize_size_kind none~resize~110->none~resize_size_kind~18 none~reserve~110 RoutehandleSpecVector%reserve none~resize_size_kind~18->none~reserve~110

Called by

proc~~add_routehandle~~CalledByGraph proc~add_routehandle RoutehandleManager%add_routehandle proc~get_routehandle RoutehandleManager%get_routehandle proc~get_routehandle->proc~add_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

Source Code

   subroutine add_routehandle(this, spec, rc)
      class(RoutehandleManager), target, intent(inout) :: this
      type(RoutehandleSpec), intent(in) :: spec
      integer, optional, intent(out) :: rc

      type(ESMF_Routehandle) :: routehandle
      integer :: status

      associate (b => this%specs%begin(), e => this%specs%end())
          _ASSERT(find(b, e, spec) == e, "Spec already exists in registry.")
      end associate

      routehandle = make_routehandle(spec, _RC)

      call this%specs%push_back(spec)
      call this%routehandles%push_back(routehandle)

      _RETURN(_SUCCESS)
   end subroutine add_routehandle