Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | file | |||
integer, | intent(in) | :: | line | |||
integer, | intent(in), | optional | :: | unit |
subroutine ESMF_TestEnd(file, line, unit) ! !ARGUMENTS: 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 standard message; intended to be called at the end of any ! test code. If {\tt unit} ! is specified, will in addition write the same message to that ! Fortran unit number. ! !EOP !------------------------------------------------------------------------------- integer :: rc, localrc character(ESMF_MAXSTR) :: msg real(ESMF_KIND_R8) :: end_time, elapsed_time character(16) :: linestr write (linestr,*) line linestr = adjustl (linestr) write(msg, *) "Ending Test, file ", trim(file), ", line ", trim (linestr) print *, trim(msg) call ESMF_LogWrite(trim(msg), ESMF_LOGMSG_INFO) if (present(unit)) write(unit, *) trim(msg) call ESMF_Finalize(rc=rc) if (rc .ne. ESMF_SUCCESS) then write(msg, *) "Failure in Finalizing ESMF" print *, trim(msg) call ESMF_LogWrite(trim(msg), ESMF_LOGMSG_INFO) if (present(unit)) write(unit, *) trim(msg) endif ! Calculate & print out test elasped time call cpu_time(end_time) elapsed_time = (end_time-start_time) * 1000.0 ! msec write(msg, *) "PET", PETnum, " Test Elapsed Time ", elapsed_time, " msec." print *, trim(msg) end subroutine ESMF_TestEnd