189
190
191
192
193
194
195
196 CHARACTER*1 TIMETYPE
197 INTEGER I
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219 INTEGER NTIMER
220 parameter( ntimer = 64 )
221 DOUBLE PRECISION ERRFLAG
222 parameter( errflag = -1.0d+0 )
223
224
225 DOUBLE PRECISION TIME
226
227
228 LOGICAL LSAME
229 DOUBLE PRECISION DCPUTIME00, DWALLTIME00
230 EXTERNAL dcputime00, dwalltime00,
lsame
231
232
233 LOGICAL DISABLED
234 DOUBLE PRECISION CPUSEC( NTIMER ), CPUSTART( NTIMER ),
235 $ WALLSEC( NTIMER ), WALLSTART( NTIMER )
236 COMMON /sltimer00/ cpusec, wallsec, cpustart, wallstart, disabled
237
238
239
240 IF(
lsame( timetype,
'W' ) )
THEN
241
242
243
244 IF( dwalltime00().EQ.errflag ) THEN
245 time = errflag
246 ELSE
247 time = wallsec( i )
248 END IF
249 ELSE
250 IF( dcputime00().EQ.errflag ) THEN
251 time = errflag
252 ELSE
253 time = cpusec( i )
254 END IF
255 END IF
256
258
259 RETURN
260
261
262
double precision function slinquire(timetype, i)