fortran中提供计算程序运行时间的功能在哪里呢??

你好,我的程序是进行76个循环,需要做的是计算每一次循环所需要的运算时间,和总的程序运算的时间。。我老师的意思是fortran里面应该有这样的功能。是不是要用到profi... 你好,我的程序是进行76个循环,需要做的是计算每一次循环所需要的运算时间,和总的程序运算的时间。。我老师的意思是fortran里面应该有这样的功能。是不是要用到profile?我纯菜鸟。老是帮我回答问题,这次直接请教你了,谢谢你。

然后我用的编译器,我用的应该是compaq visual fortran,但我自己也不确定~囧,截不了图,能告诉我如何确定么,不胜感激~
然后,新年快乐~
展开
 我来答
天河流纹石
2013-01-09 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4048万
展开全部
Profile 工具是由编译器提供的,而不是Fortran语法。

Compaq Visual Fortran 提供 Profile 工具,具体使用方法请参考彭国伦的《Fortran90程序设计》。

如果你的编译器不提供 Profile 工具,也可以使用 CPU_TIME 这些函数。
更多追问追答
追问
我按照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 的精度达不到,所以显示的两次可能一样。
来自:求助得到的回答
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
猴猴小花生0ISe37
2015-10-28 · TA获得超过1万个赞
知道大有可为答主
回答量:3276
采纳率:85%
帮助的人:1498万
展开全部
功能在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 中的毫秒数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式