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
 |