ESMF_NUOPCBasicModelEx Program

Uses

  • program~~esmf_nuopcbasicmodelex~~UsesGraph program~esmf_nuopcbasicmodelex ESMF_NUOPCBasicModelEx module~driver DRIVER program~esmf_nuopcbasicmodelex->module~driver module~esmf ESMF program~esmf_nuopcbasicmodelex->module~esmf module~esmf_testmod ESMF_TestMod program~esmf_nuopcbasicmodelex->module~esmf_testmod

Calls

program~~esmf_nuopcbasicmodelex~~CallsGraph program~esmf_nuopcbasicmodelex ESMF_NUOPCBasicModelEx esmf_gridcompsetservices esmf_gridcompsetservices program~esmf_nuopcbasicmodelex->esmf_gridcompsetservices proc~esmf_finalize ESMF_Finalize program~esmf_nuopcbasicmodelex->proc~esmf_finalize proc~esmf_gridcompcreate ESMF_GridCompCreate program~esmf_nuopcbasicmodelex->proc~esmf_gridcompcreate proc~esmf_gridcompdestroy ESMF_GridCompDestroy program~esmf_nuopcbasicmodelex->proc~esmf_gridcompdestroy proc~esmf_gridcompfinalize ESMF_GridCompFinalize program~esmf_nuopcbasicmodelex->proc~esmf_gridcompfinalize proc~esmf_gridcompinitialize ESMF_GridCompInitialize program~esmf_nuopcbasicmodelex->proc~esmf_gridcompinitialize proc~esmf_gridcomprun ESMF_GridCompRun program~esmf_nuopcbasicmodelex->proc~esmf_gridcomprun proc~esmf_initialize ESMF_Initialize program~esmf_nuopcbasicmodelex->proc~esmf_initialize proc~esmf_stest ESMF_STest program~esmf_nuopcbasicmodelex->proc~esmf_stest

Variables

Type Attributes Name Initial
character(len=ESMF_MAXSTR) :: failMsg
character(len=ESMF_MAXSTR) :: testname
integer :: finalrc
integer :: rc
integer :: result = 0
type(ESMF_GridComp) :: drvr

Source Code

    program ESMF_NUOPCBasicModelEx

!------------------------------------------------------------------------------
!ESMF_EXAMPLE        String used by test script to count examples.
!==============================================================================
#include "ESMF.h"

    ! ESMF Framework module
    use ESMF
    use ESMF_TestMod
    use DRIVER, only: driverSS => SetServices
    
    implicit none

    ! Local variables
    type(ESMF_GridComp) :: drvr
    integer :: rc
    integer :: finalrc
    integer :: result = 0     ! all pass
    character(ESMF_MAXSTR) :: testname
    character(ESMF_MAXSTR) :: failMsg

    finalrc = ESMF_SUCCESS

!-------------------------------------------------------------------------
!-------------------------------------------------------------------------

    write(failMsg, *) "Example failure"
    write(testname, *) "Example ESMF_NUOPCBasicModelEx"

!-------------------------------------------------------------------------
!-------------------------------------------------------------------------
    call ESMF_Initialize(defaultlogfilename="NUOPCBasicModelEx.Log", &
                     defaultCalKind=ESMF_CALKIND_GREGORIAN, &
                     logkindflag=ESMF_LOGKIND_MULTI, rc=rc)

!-------------------------------------------------------------------------
    print *, "NUOPC Basic Model template run"

    ! instantiate the cap and do a sanity check run
    drvr = ESMF_GridCompCreate(name="Driver", rc=rc)
    if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE

    call ESMF_GridCompSetServices(drvr, userRoutine=driverSS, rc=rc)
    if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE

    call ESMF_GridCompInitialize(drvr, phase=0, rc=rc)
    if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE

    call ESMF_GridCompInitialize(drvr, rc=rc)
    if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE

    call ESMF_GridCompRun(drvr, rc=rc)
    if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE

    call ESMF_GridCompFinalize(drvr, rc=rc)
    if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE

    call ESMF_GridCompDestroy(drvr, rc=rc)
    if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE


!-------------------------------------------------------------------------


    ! IMPORTANT: ESMF_STest() prints the PASS string and the # of processors in the log
    ! file that the scripts grep for.
    call ESMF_STest((finalrc.eq.ESMF_SUCCESS), testname, failMsg, result, ESMF_SRCLINE)

    call ESMF_Finalize(rc=rc)

    if (rc.NE.ESMF_SUCCESS) finalrc = ESMF_FAILURE

    if (finalrc.EQ.ESMF_SUCCESS) then
        print *, "PASS: ESMF_NUOPCBasicModelEx.F90"
    else
        print *, "FAIL: ESMF_NUOPCBasicModelEx.F90"
    end if

    end program ESMF_NUOPCBasicModelEx