看板 Programming 關於我們 聯絡資訊
我現在遇到一個fortran問題想請教各位高手們 我目前是利用DBVPFD這個IMSL方法解二次微分方成 但因為我的BOUNDARY CONDITION 是變數 所以我某一個邊界條件是變數(應該說會跟著迴圈變) 類似這樣(b是會變的) SUBROUTINE FCNBC (NEQNS, YLEFT, YRIGHT, P, F) INTEGER NEQNS REAL*8 P, YLEFT(NEQNS), YRIGHT(NEQNS), F(NEQNS), Ys, b parameter (Ys=-40. ) F(1) = YLEFT(1) - Ys F(2) = YRIGHT(2) - b 但現在的問題是不知道怎麼把b從主程式傳來這裡 本來我是想在主程式把算出來的某個值寫入文字檔 到這邊在讀出來 但發現怎麼讀都讀不到,會有錯誤 我的方法: 在主程式中 open(30,file="123.txt") write (30,*) a(經過計算後得到的值) rewind(30) 然後在BC副程式中 SUBROUTINE FCNBC (NEQNS, YLEFT, YRIGHT, P, F) INTEGER NEQNS REAL*8 P, YLEFT(NEQNS), YRIGHT(NEQNS), F(NEQNS), Ys, b parameter (Ys=-40.) read (30,*) b F(1) = YLEFT(1) - Ys F(2) = YRIGHT(2) - b return end 語法應該沒問題 因為我在別的地方有這樣用 但在這個副程式用就會有錯誤 會不會是這個FCNBC副程式規定不能讀取其他值-.- 想請問是為什麼錯 或是 有什麼其他方法可以傳數字下來 請高手解答 謝謝!!! 如果要手動輸入的話太麻煩 因為大概要跑個十萬次 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.163.6
blc:把b當成參數傳,像是放在F後面。 122.120.41.110 06/30 08:33