| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(timer), | intent(inout) | :: | proc_timer |
subroutine halt_timer(proc_timer) != Halt the timer for the specified object. != In/Out: != proc_timer: the timer object of the procedure. Must be intialised by != set_timer. The timer is stopped and the total cpu and != system time spent in the procedure is updated with the time != spent for the current call. type(timer), intent(inout) :: proc_timer integer :: i real(dp) :: t real(dp) :: time_cpu if (time_at_all) then if (.not. proc_timer%time) then ! Not timing this object: its level is below that of the ! iGLobalTimerLevel given via the logging option TIMING. else if (.not. associated(proc_timer%store)) then call warning_neci('halt_timer', 'proc_timer not intialised: '//proc_timer%timer_name) timer_error = .true. else t = MPI_WTIME() time_cpu = t - proc_timer%store%time_cpu proc_timer%store%sum_time_cpu = proc_timer%store%sum_time_cpu + time_cpu ! Have to remove the time spent in this routine from the other ! timers, so that the currently active timers exclude time spent ! in other timed procedures. do i = 1, itimer timers(i)%time_cpu = timers(i)%time_cpu + time_cpu end do ! Unset timer behaviour flags. proc_timer%store%timing_on = .false. proc_timer%time = .true. end if end if end subroutine halt_timer