添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
你好,我的程序是进行76个循环,需要做的是计算每一次循环所需要的运算时间,和总的程序运算的时间。。我老师的意思是fortran里面应该有这样的功能。是不是要用到profi... 你好,我的程序是进行76个循环,需要做的是计算每一次循环所需要的运算时间,和总的程序运算的时间。。我老师的意思是fortran里面应该有这样的功能。是不是要用到profile?我纯菜鸟。老是帮我回答问题,这次直接请教你了,谢谢你。

然后我用的编译器,我用的应该是compaq visual fortran,但我自己也不确定~囧,截不了图,能告诉我如何确定么,不胜感激~
然后,新年快乐~
我按照CPU_TIME 的语法编译了一下我的程序,具体程序如下:
call CPU_TIME(time_begin)
do ..(my program)
CPU_TIME(time_end1)
write(*,*)time_end1 - time_begin
end do
call CPU TIME(time_end2)
write(*,*) time_end2 - time_begin
这样就得到了每次循环的时间,和总的程序的循环时间,对么?
得出的结果挺奇怪的,我的程序有76次循环,第1,2次显示的时间一样,第3,4次显示的一样,以此类推,不明白为什么?
Real time_begin , time_end1 , time_end2
Integer i , j
call CPU_TIME(time_begin)
write(*,*) time_begin
do j = 1 , 30
Do i = 1 , 300000000
End Do
call CPU_TIME(time_end1)
write(*,*) j , time_end1 , time_end1 - time_begin
end do
call CPU_TIME(time_end2)
write(*,*) 't' , time_end2 , time_end2 - time_begin
end

在我这里输出为:

1.5600100E-02
1 1.248008 1.232408
2 2.496016 2.480416
3 3.697224 3.681623
4 4.914032 4.898431
5 6.099639 6.084039
6 7.316447 7.300847
7 8.517654 8.502054
8 9.734463 9.718863
9 10.92007 10.90447
10 12.13688 12.12128
11 13.33809 13.32248
12 14.53929 14.52369
13 15.74050 15.72490
14 16.97291 16.95731
15 18.18972 18.17412
16 19.39092 19.37532
17 20.59213 20.57653
18 21.77774 21.76214
19 22.96335 22.94775
20 24.19576 24.18015
21 25.39696 25.38136
22 26.59817 26.58257
23 27.81498 27.79938
24 29.01619 29.00059
25 30.21739 30.20179
26 31.43420 31.41860
27 32.65101 32.63541
28 33.83662 33.82102
29 35.02222 35.00663
30 36.22343 36.20783
t 36.22343 36.20783
请按任意键继续. . .

蛮正常的。

如果你的输出结果,每次都在 0.0 几秒之间。那么 CPU_TIME 的精度达不到,所以显示的两次可能一样。

这是我的运行结果,我觉得代码应该没有问题,我的编译器是IVF,在virtual studio 2010下运行的,这结果正常么??不管怎么样多谢你了,十分感谢~~

咨询热线15800771381。堡盟的绝对值重载编码器可靠定位,无需重新设置参考零点,适用于恶劣的应用场合,特点有:1、采用创新技术和坚固的重载机械设计2、精确的光感应或磁式单圈感应技术3、广泛的接口选择,额外的增量信号4、自发电重载多圈计... 点击进入详情页 本回答由 堡盟 提供 功能在Profile 工具上。
要输入代码,如下。
子例程 date_and_time 返回实时时钟和日期的相关数据。返回数据包括本地时间以及本地时间与通用协调时间
(Universal Coordinated Time, UTC) 之间的时差,通用协调时间也称为格林威治标准时间 (Greenwich Mean Time,
GMT)。
子例程 date_and_time() 的调用方式如下:

call date_and_time( date , time, zone, values )

date
CHARACTER*8
输出 以 CCYYMMDD 格式表示的日期,其中 CCYY 表示四位数的年份,MM 表示两位数的月份,DD
表示两位数的当月日期。例如:19980709
time CHARACTER*10

输出 以 hhmmss.sss 格式表示的当前时间,其中 hh 表示小时,mm 表示分钟,ss.sss 表示秒和毫秒。
zone
CHARACTER*5 输出 与 UTC 的时差,以小时数和分钟数表示,采用 hhmm
格式。
values INTEGER*4 VALUES(8) 输出 下面介绍的 8
个元素组成的整数数组。

INTEGER*4 values 数组中返回的 8
个值为
VALUES(1) 以 4
位整数表示的年份。例如:1998。
VALUES(2) 以从 1 到 12
的整数表示的月份。
VALUES(3) 以从 1 到 31
的整数表示的当月日期。
VALUES(4) 以分钟数表示的与 UTC
的时差。
VALUES(5) 以从 1 到 23
的整数表示的当天小时时间。
VALUES(6) 以从 1 到 59
的整数表示的一个小时中的分钟时间。
VALUES(7) 以从 0 到 60
的整数表示的一分钟中的秒数。
VALUES(8) 位于范围 0 至 999 中的毫秒数。