最近在把fortran90改成C
但本身不是學f90,網路上資料能找到的也有限...
最近碰到一個奇怪的問題,
CALL GATEOPEN(QU, HO, INGT(IST2, 1), GT(1, 1, IST2), MDC_GT);
這邊的GT應該是一個三維陣列中取出來的REAL值
但是在GATEOPEN這個subroutine中
SUBROUTINE GATEOPEN( T,F,N,FT,MAXD )
.....
INTEGER, INTENT(IN) :: N,MAXD
REAL(SP), INTENT(IN) :: T,FT(MAXD,2)
...
我實在是看不懂為何這邊會變成FT(MAXD,2)
後面使用也是變成二維陣列的形式
DO I = 1, N
IF( T <= FT(I,1) ) THEN
F = FT(I,2)
RETURN
END IF
END DO
求解...懸賞1000P
感謝各位大神。
作者: youlieme (仙女吃檳榔) 2019-11-26 14:05:00
fortran傳的只是reference 裡面的資料排列如果清楚陣列不需要一樣大 他會從GT(1,1,ist2)這個位址開始往後取MAXD*2的記憶體當作FT我不知道你的GT是什麼資料 但看起來會是成對或可能是兩兩一組 subroutine只判斷奇數值是否=>T而已