Fortran Coder

标题: 请教c# 调用fortran module [打印本页]

作者: phost    时间: 2021-12-9 22:28
标题: 请教c# 调用fortran module
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  必须作为子程序参数才能调用?
谢谢


作者: David.C.J    时间: 2024-6-29 22:35
请问楼主找到解决的办法了吗
我这边也碰到想采用module的方式进行内存区域的共享赋值
之前C++与Fortran的内存映射采用的时common方式





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2