看板Programming
标 题Re: 请问Fortran有暂存档吗
发信站KKCITY (Wed Jul 4 02:49:48 2007)
转信站ptt!ctu-reader!ctu-gate!news.nctu!news.ntu!news.au!zoonews.ee.ntu!news
※ 引述《zaoldeck (killua)》之铭言:
: 我所使用的是Fortran90,请问可以在Fortran执行中暂停後已经计算过的值会
: 暂存在哪边呢?还是一定要整个程式都跑完他才会在我所输出的档案中
: 更新计算出来的值呢?
执行当中任一时点,计算的值当然是存在你宣告的变数和其他记忆体空间中,如
阵列等。你自己若不写程式把他印出来,当然不会有什麽暂存档。
如果你希望执行中可以在任何时间停止或继续,可以用peekcharqq()/getcharqq(),
这两个函数搭配可以直接读取键盘缓冲区,使程式在不按键的时候不受打扰,但是
按下某些特定键的时候则会暂停,至於用哪一个键当然要由你来决定,印出目前结
果或储存到暂存档也要由你自己写。例如可以设计成按下 ESC 的时候停止:
logical(4) pressed
character(1) key
...
pressed=peekcharqq()
if (pressed == true) then
key=getcharqq()
if (ichar(key) == 27) then
pauseroutine
end if
end if
...
这个pauseroutine当然要你自己写成一个副程式,可以输出类似这样的讯息
Execution paused at iteration 1252 (5.1%)
To store current array contents, please give a filename
Empty input resumes execution
这里再用一个read接收使用者输入的档名,其他就由你自己处理。
使用peekcharqq()/getcharqq()在Compaq Visual Fortran 必需在开头加上
USE DFLIB,在Intel Visual Fortran Compiler则是USE IFCORE。我不清楚
g77或gfortran有没有对应的函数。
--
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
我们要保证一切的利益都归於国家与党。
ˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍˍ
"Scarazin V1"
-- journeyman --
--
┌─────◆KKCITY◆─────┐ ◢╱ 只要你
通过身份认证 ~ ◥█
│ bbs.kkcity.com.tw │ █▉─ 免经验、五人连署即开班系板 ◥
└──《From:218.160.89.129
》──┘ ◥╲ 赶快为班上设个
秘密基地吧!
◢
--