program f90_TIME implicit none real(4)::t1,t2,ttmax write(6,*) 'system_clock' t1=DIFT(ttmax) call work() t2=DIFT(ttmax) write(6,*) t1,ttmax write(6,*) t2,ttmax write(6,*) 'time=',t2-t1 write(6,*) 'cpu_time' call cpu_time(t1) call work() call cpu_time(t2) write(6,*) t1 write(6,*) t2 write(6,*) 'time=',t2-t1 stop contains real(4) function DIFT(ttmax) real(4),intent(out)::ttmax integer::count,count_rate,count_max call system_clock(count,count_rate,count_max) ttmax=real(count_max)/real(count_rate) DIFT=real(count)/real(count_rate) end function DIFT subroutine WORK() integer::i real(8)::s s=1.0D0 do i=1,20000000 s=s*sin(s)+cos(s) end do end subroutine WORK end program f90_TIME