回 帖 发 新 帖 刷新版面

主题:在fortran里面怎么使用计时器,让一个功能在间隔1秒执行一次。

如题,谢谢回答~

回复列表 (共10个回复)

沙发

在windows下可以用windows api的系统函数. 好像是sleep.

板凳

哦,fortran的内部函数,有没有呀?

3 楼

没有这样的内部函数.

4 楼

这不是FORTRAN的长项,楼主可以考虑换工具:)

5 楼

sleep虽然不是标准,但也被大多数主流编译器所支持

6 楼

恩,看来调用别的编程语言是可以解决这个问题的。谢谢各位!

7 楼

给你一个生成sleep.exe的批处理的代码
将以下内容保存在文本档中,并将文件后缀.txt改为.bat 这样就成了一个批处理文件
然后双击这个文件,会自动生成sleep.exe文件。

:: Sleep.bat - Sleep/Delay/Wait n seconds
:: Herbert Kleebauer(Germany) - 2005/05/29
:: Modified by Will Sort - 2005/06/02
@echo off 
echo q | debug>nul
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>sleep.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>sleep.com
echo T}{z~~@GwkBG@OEKcUt`~}@MqqBsy?seHB~_Phxr?@zAB`LrPEyoDt@Cj?>>sleep.com
echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>sleep.com
echo LFvAURQ?OYLTQ@@?~QCoOL~RDU@?aU?@{QOq?@}IKuNWpe~FpeQFwH?Vkk>>sleep.com
echo _GSqoCvH{OjeOSeIQRmA@KnEFB?p??mcjNne~B?M??QhetLBgBPHexh@e=>>sleep.com
echo EsOgwTLbLK?sFU`?LDOD@@K@xO?SUudA?_FKJ@N?KD@?UA??O}HCQOQ??R>>sleep.com
echo _OQOL?CLA?CEU?_FU?UAQ?UBD?LOC?ORO?UOL?UOD?OOI?UgL?LOR@YUO?>>sleep.com
echo dsmSQswDOR[BQAQ?LUA?_L_oUNUScLOOuLOODUO?UOE@OwH?UOQ?DJTSDM>>sleep.com
echo QTqrK@kcmSULkPcLOOuLOOFUO?hwDTqOsTdbnTQrrDsdFTlnBTm`lThKcT>>sleep.com
echo @dmTkRQSoddTT~?K?OCOQp?o??Gds?wOw?PGAtaCHQvNntQv_w?A?it\EH>>sleep.com
echo {zpQpKGk?Jbs?FqokOH{T?jPvP@IQBDFAN?OHROL?Kj??pd~aN?OHROd?G>>sleep.com
echo Q??PGT~B??OC~?ipO?T?~U?p~cUo0x>>sleep.com
sleep.com>sleep.exe
del sleep.com
echo wait 2 seconds:
sleep.exe 2000
pause

有这sleep.exe文件后,在CVF中可以调用这个程序,让暂停1秒,fortran代码如下:

use DFPORT
implicit none
integer*4 :: i
write(*,*)"wait 1 second"
i=system("sleep.exe 1000") !sleep命令以毫秒为单位,system()是CVF调用操作系统的命令函数。
write(*,*)"It's ok."
end

注意sleep.exe 文件一定与上面的fortran原代码文件同一文件夹下,或者是C:\WINDOWS\system32目录下。否则运行程序时找不到sleep.exe文件命令。
另外上面的fortran代码适合在CVF下,其它的编译系统不一定支持。

8 楼

这样也可以啊![em1]

9 楼

7楼的fortran2008兄把bat解决方案都贴出来了, 楼主才给10分啊...
pfan的给分制度不是在发分会员的分上割出来,所以根本没所谓悬赏. 有人提供了智慧就应该鼓励一下,免得连回答的激情都没了.

10 楼

呵呵,才来。[em1]

我来回复

您尚未登录,请登录后再回复。点此登录或注册