c++ 可以直接调用fortran 的module 参数
比如:
c 函数
[C#] 纯文本查看 复制代码 #include "stdio.h"
extern void fortranfunction();
extern float aa[3];
int main()
{
printf("hello world from C\n");
fortranfunction();
printf("%f %f %f \n", aa[0], aa[1], aa[2]);
return 0;
}
fortran 函数:
[Fortran] 纯文本查看 复制代码 module myModule
use,intrinsic :: iso_c_binding
implicit none
real(C_FLOAT), bind(C,name ="aa") :: aa(3)
contains
subroutine fortranFunction() bind(C,name = "fortranfunction" )
print *,"hello world from Fortran 90"
aa(1)=1.0;
aa(2)=2.0;
aa(3)=3.0;
end subroutine
end module
直接用静态库lib 调用就可以。
c# 这样调用函数可以。可是aa一直是0
不知道c#能否和c++ 一样直接调用fortran 中的module 外部变量,比如aa?还是aa 必须作为子程序参数才能调用?
谢谢
|