@@ -3,20 +3,28 @@ Program test_timers
3
3
USE ISO_FORTRAN_ENV, WP= >REAL64
4
4
USE timers
5
5
6
- #define __JMAX__ 10000
7
- #define __IMAX__ 10000
6
+ #ifndef __JMAX__
7
+ #define __JMAX__ 10000
8
+ #endif
9
+ #ifndef __IMAX__
10
+ #define __IMAX__ 10000
11
+ #endif
8
12
9
13
Implicit NONE
10
14
15
+ Integer :: niters
11
16
Real (WP) :: time_s, time_e, sum, delta
12
17
18
+ Character (22 ) :: buf
19
+
13
20
Integer :: i, j
14
21
22
+ niters = (__IMAX__)* (__JMAX__)
15
23
Print * ,' '
16
24
Print * ,' *** Test of Fortran and C timer routines ***'
17
- Print * ,' '
18
- Print * , ' C gettimeofday '
19
- Print * ,' '
25
+ Print * ,' '
26
+ Write ( * , ' (" Summation loops elapsed times for ",i0," iterations") ' ) niters
27
+ Print * ,' '
20
28
sum = 0.0_WP
21
29
time_e = 0.0_WP
22
30
time_s = 0.0_WP
@@ -28,11 +36,9 @@ Program test_timers
28
36
End Do
29
37
Call timer_gtd(time_e)
30
38
delta = time_e - time_s
31
- Write (* ,' ( " delta time C ctd = ", g0.15)' ) delta
39
+ Write (* ,' ( " C gettimeofday = ", 1PE22.15)' ) delta
40
+ Write (buf,' (1PE22.15)' ) sum
32
41
33
- Print * ,' '
34
- Print * ,' C clock_gettime with MONOTONIC clock'
35
- Print * ,' '
36
42
sum = 0.0_WP
37
43
time_e = 0.0_WP
38
44
time_s = 0.0_WP
@@ -44,11 +50,9 @@ Program test_timers
44
50
End Do
45
51
Call timer_cgt(time_e, CLOCK_MONOTONIC)
46
52
delta = time_e - time_s
47
- Write (* ,' ( " delta time C cgt monotonic = ", g0.15)' ) delta
53
+ Write (* ,' ( " C clock_gettime (MONOTONIC) = ", 1PE22.15)' ) delta
54
+ Write (buf,' (1PE22.15)' ) sum
48
55
49
- Print * ,' '
50
- Print * ,' C clock_gettime with REALTIME clock'
51
- Print * ,' '
52
56
sum = 0.0_WP
53
57
time_e = 0.0_WP
54
58
time_s = 0.0_WP
@@ -60,11 +64,10 @@ Program test_timers
60
64
End Do
61
65
Call timer_cgt(time_e, CLOCK_REALTIME)
62
66
delta = time_e - time_s
63
- Write (* ,' ( " delta time C cgt realtime = ", g0.15)' ) delta
67
+ Write (* ,' ( " C clock_gettime (REALTIME) = ", 1PE22.15)' ) delta
68
+ Write (buf,' (1PE22.15)' ) sum
69
+
64
70
#ifdef __linux__
65
- Print * ,' '
66
- Print * ,' C clock_gettime with CLOCK_THREAD_CPUTIME_ID clock (Linux only)'
67
- Print * ,' '
68
71
sum = 0.0_WP
69
72
time_e = 0.0_WP
70
73
time_s = 0.0_WP
@@ -76,12 +79,10 @@ Program test_timers
76
79
End Do
77
80
Call timer_cgt(time_e, CLOCK_THREAD_CPUTIME_ID)
78
81
delta = time_e - time_s
79
- Write (* ,' ( " delta time C cgt thread cputime = ", g0.15)' ) delta
82
+ Write (* ,' ( " C clock_gettime (THREAD_CPUTIME) = ", 1PE22.15," Linux only")' ) delta
83
+ Write (buf,' (1PE22.15)' ) sum
80
84
#endif
81
85
82
- Print * ,' '
83
- Print * ,' DATE_AND_TIME'
84
- Print * ,' '
85
86
sum = 0.0_WP
86
87
time_e = 0.0_WP
87
88
time_s = 0.0_WP
@@ -93,11 +94,9 @@ Program test_timers
93
94
End Do
94
95
Call timer_dt(time_e)
95
96
delta = time_e - time_s
96
- Write (* ,' ( " delta time DT = ", g0.15)' ) delta
97
+ Write (* ,' ( " DATE_AND_TIME = ", 1PE22.15)' ) delta
98
+ Write (buf,' (1PE22.15)' ) sum
97
99
98
- Print * ,' '
99
- Print * ,' CPU_TIME'
100
- Print * ,' '
101
100
sum = 0.0_WP
102
101
time_e = 0.0_WP
103
102
time_s = 0.0_WP
@@ -109,11 +108,9 @@ Program test_timers
109
108
End Do
110
109
Call CPU_TIME(time_e)
111
110
delta = time_e - time_s
112
- Write (* ,' ( " delta time CPU = ", g0.15)' ) delta
111
+ Write (* ,' ( " CPU_TIME = ", 1PE22.15)' ) delta
112
+ Write (buf,' (1PE22.15)' ) sum
113
113
114
- Print * ,' '
115
- Print * ,' SYSTEM_CLOCK'
116
- Print * ,' '
117
114
sum = 0.0_WP
118
115
time_e = 0.0_WP
119
116
time_s = 0.0_WP
@@ -125,11 +122,11 @@ Program test_timers
125
122
End Do
126
123
Call timer_sc(time_e)
127
124
delta = time_e - time_s
128
- Write (* ,' ( " delta time SC = ", g0 .15)' ) delta
129
- Print * , ' '
125
+ Write (* ,' ( " SYSTEM_CLOCK = ", 1PE22 .15)' ) delta
126
+ Write (buf, ' (1PE22.15) ' ) sum
130
127
131
128
Print * ,' '
132
- Print * ,' DATE_AND_TIME increment '
129
+ Print * ,' DATE_AND_TIME and SYSTEM_CLOCK increments '
133
130
Print * ,' '
134
131
time_e = 0.0_WP
135
132
time_s = 0.0_WP
@@ -139,10 +136,7 @@ Program test_timers
139
136
If (time_e > time_s) EXIT
140
137
End Do
141
138
delta = time_e - time_s
142
- Write (* ,' ( " delta time DT increment = ", g0.15)' ) delta
143
- Print * ,' '
144
- Print * ,' SYSTEM CLOCK increment'
145
- Print * ,' '
139
+ Write (* ,' ( " DATE_AND_TIME increment = ", 1PE22.15)' ) delta
146
140
time_e = 0.0_WP
147
141
time_s = 0.0_WP
148
142
Call timer_sc(time_s)
@@ -151,8 +145,8 @@ Program test_timers
151
145
If (time_e > time_s) EXIT
152
146
End Do
153
147
delta = time_e - time_s
154
- Write (* ,' ( " delta time SC increment = ", g0 .15)' ) delta
155
-
148
+ Write (* ,' ( " SYSTEM_CLOCK increment = ", 1PE22 .15)' ) delta
149
+ Print * , ' '
156
150
Stop
157
151
158
152
End Program test_timers
0 commit comments