From 17c678d9f8f797a2d558162107c8eb49dded714f Mon Sep 17 00:00:00 2001 From: Paul Romano Date: Fri, 30 Sep 2016 14:47:16 -0500 Subject: [PATCH] Make sure system_clock uses high-resolution timer --- src/timer_header.F90 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/timer_header.F90 b/src/timer_header.F90 index 6b0580f427..3a633f7004 100644 --- a/src/timer_header.F90 +++ b/src/timer_header.F90 @@ -13,7 +13,7 @@ module timer_header type Timer private logical :: running = .false. ! is timer running? - integer :: start_counts = 0 ! counts when started + integer(8) :: start_counts = 0 ! counts when started real(8), public :: elapsed = ZERO ! total time elapsed in seconds contains procedure :: start => timer_start @@ -44,13 +44,14 @@ contains class(Timer), intent(in) :: self ! the timer real(8) :: elapsed ! total elapsed time - integer :: end_counts ! current number of counts - integer :: count_rate ! system-dependent counting rate + integer(8) :: end_counts ! current number of counts + integer(8) :: count_rate ! system-dependent counting rate real :: elapsed_time ! elapsed time since last start if (self % running) then call system_clock(end_counts, count_rate) - elapsed_time = real(end_counts - self % start_counts)/real(count_rate) + elapsed_time = real(end_counts - self % start_counts, 8) / & + real(count_rate, 8) elapsed = self % elapsed + elapsed_time else elapsed = self % elapsed