我有一個非常基本的問題。我有一些舊的FORTRAN77代碼,並且我在Windows中通過f2py來編譯它。當我用Python調用它時,返回值是0.0而不是正確的。從Python調用Fortran .pyd文件並返回0.0返回
以下是編譯
FUNCTION ttt (APPRAT, METRAT)
REAL APPRAT, METRAT
IF(APPRAT.LE.0.0)THEN
ttt = METRAT * 0.89218
ELSE
ttt = APPRAT
ENDIF
RETURN
END
這裏之前我正確 Fortran代碼(測試)是Python代碼
import al4 #the name of compiled FORTRAN 77 code which is a .pyd file
ff=(al4.ttt(-1,10))
print(ff)
如果一切正常,我應該得到8.9218作爲返回值,但我總是得到0.0。所以任何人都可以給我一些建議?提前致謝!!
我不知道任何有關Fortran或Fortran <-> Python界面,但是它可能與您正在進行浮點算術時-1和10是整數有關嗎? – 2012-03-28 17:19:35
還是因爲你正在分配'APPRAT'而不是'ttt'? – 2012-03-28 17:21:48
@EmilVikström感謝您的評論。我嘗試將兩個浮點值提供給FORTRAN代碼,但我仍然得到0.0。但你是對的,FORTRAN確實返回了ttt而不是APPRAT。感謝您的幫助! – 2012-03-28 17:34:10