我試圖將FORTRAN程序中的單維數組傳遞給C.無法將數組從FORTRAN傳遞到C
C函數被調用,但它所保存的值是垃圾。但是,如果我嘗試使用整數變量調用相同的函數,我可以通過所需的值。任何人都可以幫我解決這個問題嗎?
我使用的代碼與此類似
文件:fortran_prog.f
program test
real*4 :: a(4)
data a/1,2,3,4/
call test_func(a)
end program test
文件:c_prog.c
int test_func(double a[]) {
int i;
for(i=0;i<4;i++) {
printf("%f\n",a[i]);
}
return 0;
}
這是什麼平臺和特定的編譯器? – wallyk
我在Linux上運行它們。對於C程序,我正在使用gcc和FORTRAN我正在使用ifort – arunr
在現代時代這樣做的方法是使用Fortran ISO C Binding。這是Fortran語言標準的一部分,並且使便攜式語言之間的連接成爲可能。檢查標籤http://stackoverflow.com/questions/tagged/fortran-iso-c-binding有很多例子。 –