看板 Fortran 關於我們 聯絡資訊
http://www.ewp.rpi.edu/hartford/~parenw/AEM2/project/backupfiles/graetz.f 檔案連結 我在進行fortran時,會跑出很多的error 因為本身第一次接觸,不大知道到底是甚麼問題 猜想是否是版本不同 使用的fortran 95 麻煩幫忙解答> < -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.111.73
terryys:linux用ifort沒有問題,大概是你編譯器的選項或者安裝問題? 04/27 00:07
doun:我不大會使用編譯系統 但我用的是WIN7的介面 04/27 00:09
doun:還是可以教我如何在WIN7裡面打開的方法嗎? 04/27 00:09
terryys:要是設定都有弄好的話,g95 graetz.f就應該可以了 04/27 00:12
doun:設定是關於甚麼東西? 04/27 00:15
terryys:環境變數path有加上g95所在的路徑,假設你是用g95 04/27 00:20
terryys:或者你不嫌麻煩也可以打上g95的整個路徑 04/27 00:21
doun:恩 我是用g95 可能要研究一下path要怎麼設定 04/27 00:21
doun:整個路徑是指? 04/27 00:23
terryys:可以參考http://blog.yam.com/dindinda/article/36766429 04/27 00:24
terryys:就是像c:\g95\g95 graetz.f 04/27 00:25
doun:看來不是路徑問題 我執行時他出現的error是 04/27 00:38
doun:Warning<108>:Array reference at <1> is out of bounds 04/27 00:38
doun:感覺是B的值不能設0 04/27 00:42
terryys:剛剛在win7裝了g95,也是這樣 但是warning只是警告,error 04/27 00:47
terryys:才是最主要的 雖然這個warning也顯示了程式碼的小問題 04/27 00:48
terryys:想解決這個warning就要把變數宣告那裡相關的陣列設成0:XXX 04/27 00:49
doun:只不過這樣不能用g95 3.f -o dat的指令轉成執行檔 04/27 00:50
terryys:有幾個變數需要這樣做,然後最下面是一個error,說陣列的 04/27 00:50
terryys:index不可以用浮點數表示,所以需要把k變成整數 04/27 00:53
doun:Rn那一項比較沒頭緒 04/27 00:55
terryys:這份程式碼比較奇怪,fortran的陣列都是1開始的,但它寫的 04/27 01:00
terryys:好像c一樣,當成是0開始了 04/27 01:01
terryys:Error: Array index at (1) must be of INTEGER type 04/27 01:02
terryys:你是說這個錯誤嗎? 04/27 01:02
doun:那個解決了 是Rn裡 Array reference at <1> is out of bounds 04/27 01:04
terryys:奇怪我看不見這個,但它確實是有問題,跟上面的一樣 04/27 01:07
doun:OK 順利跑出結果了~ 感謝大大幫助^^ 04/27 01:10
terryys:還有就是它以前拿k當浮點數的地方都要看看 k/100之類的 04/27 01:11
terryys:要變成k/100.或者類似的才不會變成整數相除 04/27 01:11
doun:只不過他跑完怎麼會馬上自動關閉@_@ 04/27 01:13
terryys:在cmd裡運行就不會 04/27 01:17
terryys:或者在最後的end前加上call system('pause') 04/27 01:21
terryys:留意nqt也要加個0,不然最後那裡也會有問題 04/27 01:22
doun:他一開始定義的5001是表示程式所能寫進最大的記憶數只有5001? 04/27 01:27
terryys:是從1到5001的5001個數值,所以它想用第0個就可能有問題 04/27 01:33