close
忙完數學營 就是開始弄論文的時候啦
今天開始寫程式 原本預計把整個程式給寫完
這樣隔天去宜蘭玩時 就丟著給他跑就可以了
但因為對這次寫的東西語法不是很熟 所以寫起來很卡
於是改變目標 先確定我 form 出來的矩陣是對的就可以了

到一個半小時前都很順利 眼看就是把矩陣成向量的部分寫好
然後把乘完的結果跟正確的結果做比較 如果誤差小於 10^-14 次方 就沒有什麼問題了
make 也順利完成 於是就開開心心的輸入指令 等待跑出來的結果
一打開存放結果的檔案 傻眼 怎麼都是錯誤的訊息 @@!!!

我寫的是 fortran 程式 然後裡面要用到 PETSc 的東西
因此把原本的矩陣 form 成 PETSc 可以讀的矩陣 稱為 matA
我先在一個 subroutine 把我要的矩陣 form 出來 然後利用 common 的指令讓它變成全域變數
但是過好幾遍後發現 我在其他 subroutine 中只要是需要 matA 的呼叫通通出狀況
這讓我開始懷疑 是不是我的 matA 沒有變成全域變數

再經過好幾次的檢查後 就是找不到錯在哪裡
於是用 msn 跟同一個研究計畫裡的同學討論 問問看他有沒有遇到同樣的狀況
在一切好像都無解的時候 同學問到我 form 出這個矩陣的 subroutine 是否可以呼叫這個 matA
我一邊說可以 一邊把程式往下拉 想說找一個地方再次寫入 ViewMat 看看到底有沒有問題
結果 我發現我的錯誤在哪裡了
我忘了把原本寫在這裡面的 MatDestroy 給刪掉了!!!
也就是說 我已經把 matA 給殺了 當然後面的程式怎麼呼叫也都呼叫不到東西阿

真是大笨蛋一個 >"< >"< >"< >"<

這就是程式設計者的宿命阿
要找一行錯誤的指令 就得花一個多小時阿~~~

還好最後出來的結果讓我很滿意 不然 我今天就不用回家啦 !!!!!
arrow
arrow
    全站熱搜

    昌小澤 發表在 痞客邦 留言(0) 人氣()