Re: [問題] 想請教Fortran如何撰寫進度條的語法
※ 引述《xpwang (xpwang)》之銘言:
: 標題: [問題] 想請教Fortran如何撰寫進度條的語法
: 時間: Sun Aug 16 16:47:55 2009
:
: 不好意思 那我再跟各位高手說清楚一點XDDDD~
: 就是我的數值模式計算時間很長
: 所以我想要在模式在執行同時
: 在螢幕上顯示目前模擬的進度
: 例如
: 假設總模擬時間為 36000秒
: 而程式目前演算到的時間為360秒
: 所以白色線條會停在 1 %
: 當然 當演算到時間來到3600秒時 白色線條會停在 10 %
: 0% 100%
: ■■■■■■■■■■□□□□□□□□□□
: 白色部分是會隨著模擬進度不同有所前進
: 也就是 yangzi大 所說的樣子
: 不知道有現成的副程式
: 或是有人有相關的程式撰寫經驗嗎
: 再次謝謝大家 囧>
: → xpwang:白色部分要顯示的是實際上運算的時間 08/17 10:35
: → xpwang:而總模擬時間則是由使用者決定 08/17 10:35
: 推 yangzi:我想他說的是指 '模式已跑了多少TIME STEPS'/總模擬時間 08/17 10:49
: → yangzi:不是真實世界的時間 08/17 10:50
請先說明你程式是否有GUI,有的話,程式若是非messages polling的方式,基本上畫面
在進入迴圈後會當在那不會更新,只要避免messages不被漏掉,問題不大。
基本的進度計算很簡單,就是現在迴圈指數除以總迴圈數乘以100取整數(非四捨五入),
於每次迴圈計算的最後更新進度值,並最後在迴圈外補上100%。
若是要計算所需時間,則請加上測量每次或者每幾(10 or 100)次迴圈所需的時間,
平均後(可用移動平均法)乘以剩下迴圈數之比例,就是時間剩餘評估量。
若顯示是console text mode,在每次write or print後不要換行,每次都用TL控制碼
回復列頭位置,動起來就會像是你所需要的。
--
不過若是計算量很大,我寧願讓他迴圈內做的事情少一點,效率可能還比較高
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.91.196
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章