2014-01-22 25 views
2

與FORTRAN-ISO-C結合我可以連接C函數和得到的類型的變量,比如轉換實變函數FORTRAN-ISO-C結合實際

real(c_float) 
integer(c_int) 

但是,在一個程序中,我會的其餘部分喜歡使用基本類型(僅僅因爲我不想用一個接口函數用real(c_float)變量替換很多實際變量)

有沒有一種安全的,平臺/編譯器獨立可靠的方式如何將fortran-iso- c-binding類型返回fortran(原始)類型? equivalent to REAL()

回答

4

REAL內在就是你想要的。或者等價地,簡單的分配。

REAL(C_FLOAT) :: r_c 
REAL :: r_default 
r_default = r_c 

如果正在轉換的值超出目標種類的範圍,則說明程序不符合要求。

+0

[REAL內部文檔 - 部分參數](http://gcc.gnu.org/onlinedocs/gfortran/REAL.html)指出參數「應爲INTEGER,REAL或COMPLEX」。 – Peter

+5

聲明爲「REAL(C_FLOAT):: x」的對象是REAL類型的對象。您可以使用REAL內部函數在不同類型的實數之間進行轉換。根據定義,作業可以做同樣的事情。 – IanH