forked from OSchip/llvm-project
27 lines
697 B
FortranFixed
27 lines
697 B
FortranFixed
|
! 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
|