------- Comment #1 from kargl at gcc dot gnu dot org 2009-08-24 17:19 -------
(In reply to comment #0)
> The following code was compiled with
> gfortran -g -o test_dtime test_dtime.f
>
> The code is given by (very similar to that given in the info file for gfortran
>
> program test_dtime
> integer(8) :: i, j, k
> real, dimension(2) :: tarray
> real :: result
> real :: accum
> call dtime(tarray, result)
> print '(''tarray,result:'', 1P, 3E20.11)', tarray, result
> do i=1,100000000 ! Just a delay
> j = i * i - i
> end do
> call dtime(tarray, result)
> print '(''tarray,result:'', 1P, 3E20.11)', tarray, result
> accum = 0.e0 ! Should accumulate 10 times previous tarray(1)
> call dtime(tarray, result)
> do k=1, 10
> do i=1,100000000 ! Just a delay
> j = i * i - i
> end do
> call dtime(tarray, result)
> accum = accum + tarray(1)
> end do
> print '(''accum ='', 1P, E20.11 )', accum
> end program test_dtime
>
> The resulting output is
>
> tarray,result: 9.99000039883E-04 9.99000039883E-04 1.99800007977E-03
> tarray,result: 3.86941999197E-01 0.00000000000E+00 3.86941999197E-01
> accum = 1.35349416733E+01
>
> Note that accum should be close to 10 times the value the tarray(1) above,
> that
> is, close to 3.8. I have no idea where the 13.5... came from.
>
Why should it be close to 3.8?
dtime returns the time since the start of the process?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41157