forked from OSchip/llvm-project
27 lines
697 B
Fortran
27 lines
697 B
Fortran
! Utility functions to have a sleep function with better resolution and
|
|
! which only stops one thread.
|
|
|
|
subroutine my_sleep(sleeptime)
|
|
implicit none
|
|
double precision :: sleeptime
|
|
integer :: u
|
|
integer :: t(8)
|
|
integer :: ms1, ms2
|
|
integer :: cnt
|
|
|
|
u = sleeptime * 1000
|
|
|
|
call date_and_time(values=t)
|
|
|
|
! calculate start time in ms
|
|
ms1 = t(8) + t(7)*1000 + t(6)*60000 + t(5)*3600000
|
|
|
|
ms2 = ms1
|
|
cnt = 0
|
|
do while ( (ms2 - ms1) < u)
|
|
call date_and_time(values=t)
|
|
ms2 = t(8) + t(7)*1000 + t(6)*60000 + t(5)*3600000
|
|
cnt = cnt+1
|
|
end do
|
|
end subroutine
|