Type | Intent | Optional | 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 |
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