Re: [問題] 想請教Fortran如何撰寫進度條的語法

看板Fortran作者 (最強⑨番-さるの)時間15年前 (2009/08/17 11:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《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
文章代碼(AID): #1AYCziiN (Fortran)
文章代碼(AID): #1AYCziiN (Fortran)