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