11Program test_timers
22
3- USE ISO_FORTRAN_ENV, WP= >REAL64
4- USE timers
5-
63#ifndef __JMAX__
7- #define __JMAX__ 10000
4+ #define __JMAX__ 10000
85#endif
96#ifndef __IMAX__
10- #define __IMAX__ 10000
7+ #define __IMAX__ 10000
118#endif
129
10+ USE ISO_FORTRAN_ENV, WP= >REAL64
11+ USE timers
12+
1313 Implicit NONE
1414
1515 Integer :: niters
@@ -20,6 +20,7 @@ Program test_timers
2020 Integer :: i, j
2121
2222 niters = (__IMAX__)* (__JMAX__)
23+
2324 Print * ,' '
2425 Print * ,' *** Test of Fortran and C timer routines ***'
2526 Print * ,' '
@@ -28,105 +29,105 @@ Program test_timers
2829 sum = 0.0_WP
2930 time_e = 0.0_WP
3031 time_s = 0.0_WP
31- Call timer_gtd (time_s)
32- Do j= 1 , __JMAX__
32+ Call timer_dt (time_s)
33+ Do j= 1 , __JMAX__
3334 Do i= 1 , __IMAX__
34- sum = sum + REAL (i+ j,WP)
35+ sum = sum + Real (i+ j,WP)
3536 End Do
3637 End Do
37- Call timer_gtd (time_e)
38+ Call timer_dt (time_e)
3839 delta = time_e - time_s
39- Write (* ,' ( " C gettimeofday = ", 1PE22.15)' ) delta
40+ Write (* ,' ( " DATE_AND_TIME = ", 1PE22.15)' ) delta
4041 Write (buf,' (1PE22.15)' ) sum
4142
4243 sum = 0.0_WP
4344 time_e = 0.0_WP
4445 time_s = 0.0_WP
45- Call timer_cgt (time_s, CLOCK_MONOTONIC )
46+ Call CPU_TIME (time_s)
4647 Do j= 1 , __JMAX__
4748 Do i= 1 , __IMAX__
48- sum = sum + REAL (i+ j,WP)
49+ sum = sum + Real (i+ j,WP)
4950 End Do
5051 End Do
51- Call timer_cgt (time_e, CLOCK_MONOTONIC )
52+ Call CPU_TIME (time_e)
5253 delta = time_e - time_s
53- Write (* ,' ( " C clock_gettime (MONOTONIC) = ", 1PE22.15)' ) delta
54+ Write (* ,' ( " CPU_TIME = ", 1PE22.15)' ) delta
5455 Write (buf,' (1PE22.15)' ) sum
5556
5657 sum = 0.0_WP
5758 time_e = 0.0_WP
5859 time_s = 0.0_WP
59- Call timer_cgt (time_s, CLOCK_REALTIME )
60+ Call timer_sc (time_s)
6061 Do j= 1 , __JMAX__
6162 Do i= 1 , __IMAX__
62- sum = sum + REAL (i+ j,WP)
63+ sum = sum + Real (i+ j,WP)
6364 End Do
6465 End Do
65- Call timer_cgt (time_e, CLOCK_REALTIME )
66+ Call timer_sc (time_e)
6667 delta = time_e - time_s
67- Write (* ,' ( " C clock_gettime (REALTIME) = ", 1PE22.15)' ) delta
68+ Write (* ,' ( " SYSTEM_CLOCK = ", 1PE22.15)' ) delta
6869 Write (buf,' (1PE22.15)' ) sum
6970
70- #ifdef __linux__
7171 sum = 0.0_WP
7272 time_e = 0.0_WP
7373 time_s = 0.0_WP
74- Call timer_cgt (time_s, CLOCK_THREAD_CPUTIME_ID )
75- Do j= 1 , __JMAX__
74+ Call timer_gtd (time_s)
75+ Do j= 1 , __JMAX__
7676 Do i= 1 , __IMAX__
77- sum = sum + REAL (i+ j,WP)
77+ sum = sum + Real (i+ j,WP)
7878 End Do
7979 End Do
80- Call timer_cgt (time_e, CLOCK_THREAD_CPUTIME_ID )
80+ Call timer_gtd (time_e)
8181 delta = time_e - time_s
82- Write (* ,' ( " C clock_gettime (THREAD_CPUTIME) = ", 1PE22.15," Linux only" )' ) delta
82+ Write (* ,' ( " C gettimeofday = ", 1PE22.15)' ) delta
8383 Write (buf,' (1PE22.15)' ) sum
84- #endif
85-
84+
8685 sum = 0.0_WP
8786 time_e = 0.0_WP
8887 time_s = 0.0_WP
89- Call timer_dt (time_s)
88+ Call timer_cgt (time_s, CLOCK_MONOTONIC )
9089 Do j= 1 , __JMAX__
9190 Do i= 1 , __IMAX__
92- sum = sum + REAL (i+ j,WP)
91+ sum = sum + Real (i+ j,WP)
9392 End Do
9493 End Do
95- Call timer_dt (time_e)
94+ Call timer_cgt (time_e, CLOCK_MONOTONIC )
9695 delta = time_e - time_s
97- Write (* ,' ( " DATE_AND_TIME = ", 1PE22.15)' ) delta
96+ Write (* ,' ( " C clock_gettime (MONOTONIC) = ", 1PE22.15)' ) delta
9897 Write (buf,' (1PE22.15)' ) sum
9998
10099 sum = 0.0_WP
101100 time_e = 0.0_WP
102101 time_s = 0.0_WP
103- Call CPU_TIME (time_s)
102+ Call timer_cgt (time_s, CLOCK_REALTIME )
104103 Do j= 1 , __JMAX__
105104 Do i= 1 , __IMAX__
106- sum = sum + REAL (i+ j,WP)
105+ sum = sum + Real (i+ j,WP)
107106 End Do
108107 End Do
109- Call CPU_TIME (time_e)
108+ Call timer_cgt (time_e, CLOCK_REALTIME )
110109 delta = time_e - time_s
111- Write (* ,' ( " CPU_TIME = ", 1PE22.15)' ) delta
110+ Write (* ,' ( " C clock_gettime (REALTIME) = ", 1PE22.15)' ) delta
112111 Write (buf,' (1PE22.15)' ) sum
113112
113+ #ifdef __linux__
114114 sum = 0.0_WP
115115 time_e = 0.0_WP
116116 time_s = 0.0_WP
117- Call timer_sc (time_s)
117+ Call timer_cgt (time_s, CLOCK_THREAD_CPUTIME_ID )
118118 Do j= 1 , __JMAX__
119119 Do i= 1 , __IMAX__
120- sum = sum + REAL (i+ j,WP)
120+ sum = sum + Real (i+ j,WP)
121121 End Do
122122 End Do
123- Call timer_sc (time_e)
123+ Call timer_cgt (time_e, CLOCK_THREAD_CPUTIME_ID )
124124 delta = time_e - time_s
125- Write (* ,' ( " SYSTEM_CLOCK = ", 1PE22.15)' ) delta
125+ Write (* ,' ( " C clock_gettime (THREAD_CPUTIME) = ", 1PE22.15," Linux only" )' ) delta
126126 Write (buf,' (1PE22.15)' ) sum
127-
127+ #endif
128+
128129 Print * ,' '
129- Print * ,' DATE_AND_TIME and SYSTEM_CLOCK increments'
130+ Print * ,' DATE_AND_TIME, CPU_TIME and SYSTEM_CLOCK increments'
130131 Print * ,' '
131132 time_e = 0.0_WP
132133 time_s = 0.0_WP
@@ -137,6 +138,17 @@ Program test_timers
137138 End Do
138139 delta = time_e - time_s
139140 Write (* ,' ( " DATE_AND_TIME increment = ", 1PE22.15)' ) delta
141+
142+ time_e = 0.0_WP
143+ time_s = 0.0_WP
144+ Call CPU_TIME(time_s)
145+ Do
146+ Call CPU_TIME(time_e)
147+ If (time_e > time_s) EXIT
148+ End Do
149+ delta = time_e - time_s
150+ Write (* ,' ( " CPU_TIME increment = ", 1PE22.15)' ) delta
151+
140152 time_e = 0.0_WP
141153 time_s = 0.0_WP
142154 Call timer_sc(time_s)
@@ -147,6 +159,7 @@ Program test_timers
147159 delta = time_e - time_s
148160 Write (* ,' ( " SYSTEM_CLOCK increment = ", 1PE22.15)' ) delta
149161 Print * ,' '
162+
150163 Stop
151164
152165End Program test_timers
0 commit comments