recursive subroutine ESMF_CplCompRunAct(cplcomp, importState, exportState, &
clock, syncflag, phase, userRc, rc)
!
! !ARGUMENTS:
type(ESMF_CplComp), intent(inout) :: cplcomp
type(ESMF_State), intent(inout), optional :: importState
type(ESMF_State), intent(inout), optional :: exportState
type(ESMF_Clock), intent(inout), optional :: clock
type(ESMF_Sync_Flag), intent(in), optional :: syncflag
integer, intent(in), optional :: phase
integer, intent(out), optional :: userRc
integer, intent(out), optional :: rc
!
! !DESCRIPTION:
! Same as {\tt ESMF\_CplCompRun} but no redirection through the
! Interface Component method, instead directly call into the actual method.
!
!EOPI
!------------------------------------------------------------------------------
integer :: localrc ! local return code
! initialize return code; assume routine not implemented
if (present(rc)) rc = ESMF_RC_NOT_IMPL
localrc = ESMF_RC_NOT_IMPL
ESMF_INIT_CHECK_DEEP(ESMF_CplCompGetInit,cplcomp,rc)
! call Comp method
call ESMF_CompExecute(cplcomp%compp, method=ESMF_METHOD_RUN, &
importState=importState, exportState=exportState, clock=clock, &
syncflag=syncflag, phase=phase, userRc=userRc, rc=localrc)
if (ESMF_LogFoundError(localrc, &
ESMF_ERR_PASSTHRU, &
ESMF_CONTEXT, rcToReturn=rc)) return
! return successfully
if (present(rc)) rc = ESMF_SUCCESS
end subroutine ESMF_CplCompRunAct