我有很長的fortran代碼必須從python變得可用。我決定做Fortran-> C-> Python界面。c-fortran互操作性派生類型與指針
我有一個問題:我已包含
double precision, allocatable
類型作爲成員的Fortran模塊內派生類型。
當試圖用ifort我得到編譯(類似gfortran東西):
Each component of a derived type with the BIND attribute shall be a nonpointer,
nonallocatable data component with interoperable type and type parameters
這實際上是與英特爾編譯器文檔和Fortran 2003標準協議:15.2.5點。
有沒有什麼辦法可以通過allocatable或指針訪問Fortran「type」?
對於其類型爲我的派生類型的每個對象實例,我知道包含的數組的實際大小。每種情況下它們可能都不相同。我可以處理解除引用。也許我不會解決這個問題。對於我來說,指針只是內存中的一個地址,並且類似於 struct int * a int * b int * c }; 是3 * sizeof(int *)個字節的大字節,通常計算結果爲24個字節(該值可能僅等於12個字節,但可以爲每臺計算機一勞永逸地確定)。 Fortran有什麼不同? Fortran中的指針與C中的指針大不相同? – Lacek
Fortran中的指針和更多可分配組件更多,然後就是地址。例如,它們可以指向不連續的數組。 –