ESMF_TestGlobal Subroutine

public subroutine ESMF_TestGlobal(condition, name, failMsg, result, file, line, unit)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: condition
character(len=*), intent(in) :: name
character(len=*), intent(in) :: failMsg
integer, intent(inout) :: result
character(len=*), intent(in) :: file
integer, intent(in) :: line
integer, intent(in), optional :: unit

Calls

proc~~esmf_testglobal~~CallsGraph proc~esmf_testglobal ESMF_TestGlobal interface~esmf_vmget ESMF_VMGet proc~esmf_testglobal->interface~esmf_vmget proc~esmf_testresultsgather ESMF_TestResultsGather proc~esmf_testglobal->proc~esmf_testresultsgather proc~esmf_vmgetglobal ESMF_VMGetGlobal proc~esmf_testglobal->proc~esmf_vmgetglobal proc~esmf_vmgetdefault ESMF_VMGetDefault interface~esmf_vmget->proc~esmf_vmgetdefault proc~esmf_vmgetpetspecific ESMF_VMGetPetSpecific interface~esmf_vmget->proc~esmf_vmgetpetspecific c_esmc_printpassflush c_esmc_printpassflush proc~esmf_testresultsgather->c_esmc_printpassflush interface~esmf_vmgather ESMF_VMGather proc~esmf_testresultsgather->interface~esmf_vmgather proc~esmf_vmbarrier ESMF_VMBarrier proc~esmf_testresultsgather->proc~esmf_vmbarrier proc~esmf_vmgatherflogical2d ESMF_VMGatherFLogical2D interface~esmf_vmgather->proc~esmf_vmgatherflogical2d proc~esmf_vmgatheri4 ESMF_VMGatherI4 interface~esmf_vmgather->proc~esmf_vmgatheri4 proc~esmf_vmgatheri8 ESMF_VMGatherI8 interface~esmf_vmgather->proc~esmf_vmgatheri8 proc~esmf_vmgatherlogical ESMF_VMGatherLogical interface~esmf_vmgather->proc~esmf_vmgatherlogical proc~esmf_vmgatherr4 ESMF_VMGatherR4 interface~esmf_vmgather->proc~esmf_vmgatherr4 proc~esmf_vmgatherr8 ESMF_VMGatherR8 interface~esmf_vmgather->proc~esmf_vmgatherr8 c_esmc_vmbarrier c_esmc_vmbarrier proc~esmf_vmbarrier->c_esmc_vmbarrier proc~esmf_imerr ESMF_IMErr proc~esmf_vmbarrier->proc~esmf_imerr proc~esmf_logfounderror ESMF_LogFoundError proc~esmf_vmbarrier->proc~esmf_logfounderror proc~esmf_vmgetcurrent ESMF_VMGetCurrent proc~esmf_vmbarrier->proc~esmf_vmgetcurrent proc~esmf_vmgetinit ESMF_VMGetInit proc~esmf_vmbarrier->proc~esmf_vmgetinit proc~esmf_vmgetdefault->interface~esmf_vmget c_esmc_initget_esmf_comm c_esmc_initget_esmf_comm proc~esmf_vmgetdefault->c_esmc_initget_esmf_comm c_esmc_vmget c_esmc_vmget proc~esmf_vmgetdefault->c_esmc_vmget c_esmc_vmgetmpicommnull c_esmc_vmgetmpicommnull proc~esmf_vmgetdefault->c_esmc_vmgetmpicommnull c_esmc_vmgetssilocaldevlist c_esmc_vmgetssilocaldevlist proc~esmf_vmgetdefault->c_esmc_vmgetssilocaldevlist interface~esmf_interarraycreate ESMF_InterArrayCreate proc~esmf_vmgetdefault->interface~esmf_interarraycreate proc~esmf_vmgetdefault->proc~esmf_imerr proc~esmf_interarraydestroy ESMF_InterArrayDestroy proc~esmf_vmgetdefault->proc~esmf_interarraydestroy proc~esmf_vmgetdefault->proc~esmf_logfounderror proc~esmf_logseterror ESMF_LogSetError proc~esmf_vmgetdefault->proc~esmf_logseterror proc~esmf_vmgetdefault->proc~esmf_vmgetinit c_esmc_vmgetpetlocalinfo c_esmc_vmgetpetlocalinfo proc~esmf_vmgetpetspecific->c_esmc_vmgetpetlocalinfo proc~esmf_vmgetpetspecific->proc~esmf_imerr proc~esmf_vmgetpetspecific->proc~esmf_logfounderror proc~esmf_vmgetpetspecific->proc~esmf_vmgetinit

Called by

proc~~esmf_testglobal~~CalledByGraph proc~esmf_testglobal ESMF_TestGlobal program~esmf_test_harness esmf_test_harness program~esmf_test_harness->proc~esmf_testglobal

Source Code

      subroutine ESMF_TestGlobal(condition, name, failMsg, result, file, line, &
        unit)

! !ARGUMENTS:
      logical, intent(in) :: condition      ! pass/fail condition
      character(*), intent(in) :: name      ! test name
      character(*), intent(in) :: failMsg   ! fail message
      integer, intent(inout) :: result      ! accumulated result
      character(*), intent(in) :: file      ! test file name
      integer, intent(in) :: line           ! test file line number
      integer, intent(in), optional :: unit ! additional output unit number

! !DESCRIPTION:
!     Prints a {\tt PASS} message to stdout if {\tt condition} is true on all
!     PETs, and a {\tt FAIL} message otherwise.  If {\tt unit}
!     is specified, will in addition write the same message to that 
!     Fortran unit number.
!
!EOP
!-------------------------------------------------------------------------------

!      character(2*ESMF_MAXSTR) :: msg
      type(ESMF_VM):: vm
      integer:: petCount, localPet, localResult, localrc

      !DUMMY TEST TO QUIET DOWN COMPILER WARNINGS
      !TODO: Remove the following dummy test when implementing this method
      if (name==name) continue

      !DUMMY TEST TO QUIET DOWN COMPILER WARNINGS
      !TODO: Remove the following dummy test when implementing this method
      if (failMsg==failMsg) continue

      if(condition) then
        localResult = ESMF_SUCCESS
      else
        localResult = ESMF_FAILURE
        result = result + 1  ! count total failures; 0 = all pass
      end if
      
      ! for now "name" and "failMsg" are ignored because this impl. is 
      ! based on ESMF_TestResultsGather() which does not take those arguments

      call ESMF_VMGetGlobal(vm, rc=localrc)
      call ESMF_VMGet(vm, petCount=petCount, localPet=localPet, rc=localrc)
      call ESMF_TestResultsGather(vm, localPet, petCount, localResult, &
        file, line, unit, rc=localrc)

      end subroutine ESMF_TestGlobal