SetRunSequence Subroutine

private subroutine SetRunSequence(driver, rc)

Arguments

Type IntentOptional Attributes Name
type(ESMF_GridComp) :: driver
integer, intent(out) :: rc

Calls

proc~~setrunsequence~~CallsGraph proc~setrunsequence SetRunSequence interface~nuopc_driveringestrunsequence NUOPC_DriverIngestRunSequence proc~setrunsequence->interface~nuopc_driveringestrunsequence interface~nuopc_freeformatcreate NUOPC_FreeFormatCreate proc~setrunsequence->interface~nuopc_freeformatcreate proc~esmf_gridcompget ESMF_GridCompGet proc~setrunsequence->proc~esmf_gridcompget proc~esmf_logfounderror ESMF_LogFoundError proc~setrunsequence->proc~esmf_logfounderror proc~nuopc_freeformatdestroy NUOPC_FreeFormatDestroy proc~setrunsequence->proc~nuopc_freeformatdestroy proc~nuopc_driveringestrunsequenceff NUOPC_DriverIngestRunSequenceFF interface~nuopc_driveringestrunsequence->proc~nuopc_driveringestrunsequenceff proc~nuopc_driveringestrunsequencehc NUOPC_DriverIngestRunSequenceHC interface~nuopc_driveringestrunsequence->proc~nuopc_driveringestrunsequencehc proc~nuopc_freeformatcreatedefault NUOPC_FreeFormatCreateDefault interface~nuopc_freeformatcreate->proc~nuopc_freeformatcreatedefault proc~nuopc_freeformatcreateread NUOPC_FreeFormatCreateRead interface~nuopc_freeformatcreate->proc~nuopc_freeformatcreateread proc~esmf_gridcompget->proc~esmf_logfounderror proc~esmf_compget ESMF_CompGet proc~esmf_gridcompget->proc~esmf_compget proc~esmf_compstatusget ESMF_CompStatusGet proc~esmf_gridcompget->proc~esmf_compstatusget proc~esmf_gridcompgetinit ESMF_GridCompGetInit proc~esmf_gridcompget->proc~esmf_gridcompgetinit proc~esmf_imerr ESMF_IMErr proc~esmf_gridcompget->proc~esmf_imerr 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 proc~esmf_logfounddeallocerror ESMF_LogFoundDeallocError proc~nuopc_freeformatdestroy->proc~esmf_logfounddeallocerror

Source Code

  subroutine SetRunSequence(driver, rc)
    type(ESMF_GridComp)  :: driver
    integer, intent(out) :: rc

    ! local variables
    character(ESMF_MAXSTR)              :: name
    type(NUOPC_FreeFormat)              :: runSeqFF

    rc = ESMF_SUCCESS

    ! query the driver for its name
    call ESMF_GridCompGet(driver, name=name, rc=rc)
    if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
         line=__LINE__, &
         file=__FILE__)) &
         return  ! bail out

    ! set up free format run sequence
    runSeqFF = NUOPC_FreeFormatCreate(stringList=(/ &
      " @*                          ",    &
      "   Driver                    ",    &
      "   Driver -> ATM             ",    &
      "   ATM                       ",    &
      " @                           " /), &
      rc=rc)
    if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
         line=__LINE__, &
         file=__FILE__)) &
         return  ! bail out

    ! ingest FreeFormat run sequence
    call NUOPC_DriverIngestRunSequence(driver, runSeqFF, autoAddConnectors=.true., rc=rc)
    if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
         line=__LINE__, &
         file=__FILE__)) &
         return  ! bail out

    ! clean-up
    call NUOPC_FreeFormatDestroy(runSeqFF, rc=rc)
    if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
         line=__LINE__, &
         file=__FILE__)) &
         return  ! bail out

  end subroutine SetRunSequence