如何在 Fortran 中获取以毫秒为单位的当前时间?
How to get the current time in millisecond in Fortran?
我想在 Fortran 中以毫秒为单位获取当前系统时间。我无法使用 system_clock
,因为我不知道如何从中获取当前时间。
这说明了如何使用 date_and_time
:
获取自午夜以来的毫秒数
program time
integer :: values(8)
real :: rTime
! Get the values
call date_and_time(values=values)
! From https://gcc.gnu.org/onlinedocs/gfortran/DATE_005fAND_005fTIME.html
! values(5) ... The hour of the day
! values(6) ... The minutes of the hour
! values(7) ... The seconds of the minute
! values(8) ... The milliseconds of the second
! Calculate time since midnight
rTime = ( values(5) )*60. ! Hours to minutes
rTime = ( rTime + values(6) )*60. ! Minutes to seconds
rTime = ( rTime + values(7) )*1e3 ! Seconds to milliseconds
rTime = rTime + values(8) ! Add milliseconds
! Time in seconds
print *, 'Time (ms) since midnight', rTime
end program
我想你的问题是:"how can I call date_and_time subroutin and access it to calculate ms?"我说得对吗?
Alexander 的回答是 true.also 您可以使用此代码:
program time
integer :: values(8)
call date_and_time(values=values)
print *, values(5),":",values(6),":",values(7),":",values(8)
end program time
您可以使用 ITIME()
,一个嵌入 Fortran 的函数。它returns一个以毫秒为单位的实数。您只需要调用它两次并将两个值相减即可计算出时间间隔。
我想在 Fortran 中以毫秒为单位获取当前系统时间。我无法使用 system_clock
,因为我不知道如何从中获取当前时间。
这说明了如何使用 date_and_time
:
program time
integer :: values(8)
real :: rTime
! Get the values
call date_and_time(values=values)
! From https://gcc.gnu.org/onlinedocs/gfortran/DATE_005fAND_005fTIME.html
! values(5) ... The hour of the day
! values(6) ... The minutes of the hour
! values(7) ... The seconds of the minute
! values(8) ... The milliseconds of the second
! Calculate time since midnight
rTime = ( values(5) )*60. ! Hours to minutes
rTime = ( rTime + values(6) )*60. ! Minutes to seconds
rTime = ( rTime + values(7) )*1e3 ! Seconds to milliseconds
rTime = rTime + values(8) ! Add milliseconds
! Time in seconds
print *, 'Time (ms) since midnight', rTime
end program
我想你的问题是:"how can I call date_and_time subroutin and access it to calculate ms?"我说得对吗? Alexander 的回答是 true.also 您可以使用此代码:
program time
integer :: values(8)
call date_and_time(values=values)
print *, values(5),":",values(6),":",values(7),":",values(8)
end program time
您可以使用 ITIME()
,一个嵌入 Fortran 的函数。它returns一个以毫秒为单位的实数。您只需要调用它两次并将两个值相减即可计算出时间间隔。