對不起,提出這樣一個基本問題。我正在研究一些FOTRAN77代碼並試圖從Python中調用它。但是,我從函數返回兩個或更多值時發現了一些問題。FORTRAN77函數返回一個數組
以下是代碼。它有四個輸入(APPRAT,APPNUM,APSPAC,KOC),我想返回存儲在GENEEC3中的三個參數值(APPTOT,KD,TDEGF)。只有一個參數返回時,我的編譯代碼運行良好,但當我請求它返回三個參數時不起作用。
所以請給我一些建議,並感謝大家的幫助!
Function GENEEC3 (APPRAT,APPNUM,APSPAC,KOC)
REAL GENEEC3(3)
CHARACTER*1 METHOD,AGAIN,WETTED,ADSORP,AIRFLG,GRNFLG,ORCFLG,GRSIZE
Cf2py intent(in) APPRAT,APPNUM,APSPAC,KOC,METHAF,WETTED,METHOD,AIRFLG
Cf2py intent(in) YLOCEN,GRNFLG,ORCFLG,INCORP,SOL,METHAP,HYDHAP,FOTHAP
Cf2py intent(out) GENEEC3(3)
C
APPTOT=APPRAT*APPNUM
TDEGF = APPNUM * APSPAC
KD = 0.0116 * KOC
C
GENEEC3(1)=APPTOT
GENEEC3(2)=KD
GENEEC3(3)=TDEGF
C
RETURN
END Function GENEEC3
不能使用FORTRAN 90或更高版本?我懷疑Fortran 77支持數組作爲函數的返回值 – yosukesabai 2012-04-04 19:55:41
@yosukesabai,我很抱歉,我無法將其更改爲fortran90 ... – 2012-04-04 19:57:36
爲什麼是...? f90是f77的超集,所以幾乎所有的f77代碼都是有效的f90代碼。現在有免費的f90編譯器,如果錢是一個問題(例如gfortran) – yosukesabai 2012-04-04 19:59:41