推 fragmentwing: 老實說我看不太懂你的程式碼 11/26 00:55
這是project在用的軟體的其中一部分,我的任務是轉成C
所以基本上這個Code應該是沒問題
推 fragmentwing: 1不過我記得是有很奇耙的技巧 11/26 00:57
→ fragmentwing: 會故意少輸入東西來跑 11/26 00:57
推 fragmentwing: 但問題是 我記得那個案例是用項在順序上跑的差異 11/26 01:00
→ fragmentwing: 來進行操作 而不是針對同一項內的陣列進行操作 11/26 01:00
→ fragmentwing: 還有 你的N怎麼從陣列變成整數了 11/26 01:04
→ fragmentwing: 這不是不會給過嗎? 11/26 01:04
→ fragmentwing: 它不是對到INGT(IST2, 1)這一項嗎? 11/26 01:05
我的理解是INGT(IST2, 1)
應該等於C語言的INGT[IST2][0]吧
INGT是一個儲存int的二維陣列
已經在其他地方宣告過了@@
所以進到副程式應該是整數沒錯啊
GT則是一個儲存real的三維陣列,
GT(1, 1, IST2)取出來應該是一個real數,可是進到副程式他怎麼宣告成陣列
推 fragmentwing: 阿哩 好像找到了 我拍一下 11/26 01:11
→ fragmentwing: 好像是這個?雖然書上說很常用,不過我沒用過,這樣 11/26 01:15
→ fragmentwing: 交接起來會有麻煩吧w 11/26 01:15
→ fragmentwing: 我都手動寫程式碼來降維的 11/26 01:21
感謝大大
推 youlieme: fortran傳的只是reference 裡面的資料排列如果清楚 11/26 14:05
→ youlieme: 陣列不需要一樣大 他會從GT(1,1,ist2)這個位址開始 11/26 14:05
→ youlieme: 往後取MAXD*2的記憶體當作FT 11/26 14:05
→ youlieme: 我不知道你的GT是什麼資料 但看起來會是成對或可能 11/26 14:05
→ youlieme: 是兩兩一組 subroutine只判斷奇數值是否=>T而已 11/26 14:05
好的我研究一下,看起來可能是這個問題
→ blc: fortran的陣列在記憶體中是連續的,所以可以從陣列第一個 11/26 15:15
→ blc: 元素跟陣列大小得到整個陣列。就像C的指標那樣。 11/26 15:16
→ blc: 優點是會快很多(以前),現在編譯器最佳化不知道 11/26 15:55
原來如此,感謝大大
※ 編輯: silverair (220.141.70.95 臺灣), 11/26/2019 22:49:06
推 fragmentwing: 收到推 11/30 14:44
→ fragmentwing: 另外我果然還需要精進阿...... 11/30 14:44
→ blc: 晚了,我也有收到,感謝。 12/01 22:57