f_nuopc_compspecialize Subroutine

subroutine f_nuopc_compspecialize(gcomp, specLabel, specRoutine, rc)

Uses

  • proc~~f_nuopc_compspecialize~~UsesGraph proc~f_nuopc_compspecialize f_nuopc_compspecialize module~esmf ESMF proc~f_nuopc_compspecialize->module~esmf module~nuopc NUOPC proc~f_nuopc_compspecialize->module~nuopc

Arguments

Type IntentOptional Attributes Name
type(ESMF_GridComp) :: gcomp
character(len=*), intent(in) :: specLabel
subroutine specRoutine(gridcomp, rc)
Arguments
Type IntentOptional Attributes Name
type(ESMF_GridComp) :: gridcomp
integer, intent(out) :: rc
integer, intent(out) :: rc

Calls

proc~~f_nuopc_compspecialize~~CallsGraph proc~f_nuopc_compspecialize f_nuopc_compspecialize interface~nuopc_compspecialize NUOPC_CompSpecialize proc~f_nuopc_compspecialize->interface~nuopc_compspecialize proc~esmf_logfounderror ESMF_LogFoundError proc~f_nuopc_compspecialize->proc~esmf_logfounderror proc~nuopc_cplcompspecialize NUOPC_CplCompSpecialize interface~nuopc_compspecialize->proc~nuopc_cplcompspecialize proc~nuopc_gridcompspecialize NUOPC_GridCompSpecialize interface~nuopc_compspecialize->proc~nuopc_gridcompspecialize esmf_breakpoint esmf_breakpoint proc~esmf_logfounderror->esmf_breakpoint proc~esmf_logrc2msg ESMF_LogRc2Msg proc~esmf_logfounderror->proc~esmf_logrc2msg proc~esmf_logwrite ESMF_LogWrite proc~esmf_logfounderror->proc~esmf_logwrite c_esmc_loggeterrormsg c_esmc_loggeterrormsg proc~esmf_logrc2msg->c_esmc_loggeterrormsg c_esmc_vmwtime c_esmc_vmwtime proc~esmf_logwrite->c_esmc_vmwtime proc~esmf_logclose ESMF_LogClose proc~esmf_logwrite->proc~esmf_logclose proc~esmf_logflush ESMF_LogFlush proc~esmf_logwrite->proc~esmf_logflush proc~esmf_logopenfile ESMF_LogOpenFile proc~esmf_logwrite->proc~esmf_logopenfile proc~esmf_utiliounitflush ESMF_UtilIOUnitFlush proc~esmf_logwrite->proc~esmf_utiliounitflush proc~esmf_utilstring2array ESMF_UtilString2Array proc~esmf_logwrite->proc~esmf_utilstring2array proc~nuopc_cplcompspecialize->proc~esmf_logfounderror interface~esmf_methodaddreplace ESMF_MethodAddReplace proc~nuopc_cplcompspecialize->interface~esmf_methodaddreplace interface~nuopc_compattributeget NUOPC_CompAttributeGet proc~nuopc_cplcompspecialize->interface~nuopc_compattributeget interface~nuopc_compsearchphasemap NUOPC_CompSearchPhaseMap proc~nuopc_cplcompspecialize->interface~nuopc_compsearchphasemap proc~esmf_cplcompget ESMF_CplCompGet proc~nuopc_cplcompspecialize->proc~esmf_cplcompget proc~esmf_logseterror ESMF_LogSetError proc~nuopc_cplcompspecialize->proc~esmf_logseterror proc~nuopc_gridcompspecialize->proc~esmf_logfounderror proc~nuopc_gridcompspecialize->interface~esmf_methodaddreplace proc~nuopc_gridcompspecialize->interface~nuopc_compattributeget proc~nuopc_gridcompspecialize->interface~nuopc_compsearchphasemap proc~esmf_gridcompget ESMF_GridCompGet proc~nuopc_gridcompspecialize->proc~esmf_gridcompget proc~nuopc_gridcompspecialize->proc~esmf_logseterror

Source Code

subroutine f_nuopc_compspecialize(gcomp, specLabel, specRoutine, rc)
#undef  ESMF_METHOD
#define ESMF_METHOD "f_nuopc_compspecialize"
  use ESMF
  use NUOPC
  implicit none

  type(ESMF_GridComp)   :: gcomp  !in
  character(len=*), intent(in)            :: specLabel
    interface
      subroutine specRoutine(gridcomp, rc)
        use ESMF
        implicit none
        type(ESMF_GridComp)        :: gridcomp ! must not be optional
        integer, intent(out)       :: rc       ! must not be optional
      end subroutine
    end interface
  integer, intent(out)  :: rc     !out

  integer :: localrc

  ! Initialize return code; assume routine not implemented
  rc = ESMF_RC_NOT_IMPL

  call NUOPC_CompSpecialize(gcomp, specLabel, specRoutine=specRoutine, &
    rc=localrc)
  if (ESMF_LogFoundError(localrc, ESMF_ERR_PASSTHRU,  &
    ESMF_CONTEXT, rcToReturn=rc)) return

  ! Return successfully
  rc = ESMF_SUCCESS
end subroutine f_nuopc_compspecialize