subroutine ESMF_STest(condition, name, failMsg, result, file, line, unit, &
petCount)
! !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
integer, intent(in), optional :: petCount ! number of PETs if need override
! !DESCRIPTION:
! Gets the PET count and prints out a number of processors message.
! Prints a {\tt PASS} message to stdout if {\tt condition} is true,
! and a {\tt FAIL} message if {\tt condition} is false. If {\tt unit}
! is specified, will in addition write the same message to that
! Fortran unit number.
!
!EOP
!-------------------------------------------------------------------------------
type(ESMF_VM):: vm
integer:: petCountOpt, localrc
character(ESMF_MAXSTR) :: msg
if (present(petCount)) then
petCountOpt = petCount
else
call ESMF_VMGetGlobal(vm, rc=localrc)
call ESMF_VMGet(vm, petCount=petCountOpt, rc=localrc)
endif
write(msg, *) "NUMBER_OF_PROCESSORS", petCountOpt
call ESMF_LogWrite(trim(msg), ESMF_LOGMSG_INFO)
call ESMF_Test(condition, name, failMsg, result, file, line, unit)
end subroutine ESMF_STest