phost 发表于 2021-12-9 22:28:59

请教c# 调用fortran module

c++ 可以直接调用fortran 的module 参数
比如:
c 函数
#include "stdio.h"

extern void fortranfunction();
extern float aa;

int main()
{
      printf("hello world from C\n");
      fortranfunction();

      printf("%f %f %f \n", aa, aa, aa);
      return 0;
}
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必须作为子程序参数才能调用?
谢谢

David.C.J 发表于 2024-6-29 22:35:37

请问楼主找到解决的办法了吗
我这边也碰到想采用module的方式进行内存区域的共享赋值
之前C++与Fortran的内存映射采用的时common方式
页: [1]
查看完整版本: 请教c# 调用fortran module