Fortran Coder

查看: 2930|回复: 1
打印 上一主题 下一主题

[混编] 请教c# 调用fortran module

[复制链接]

15

帖子

6

主题

0

精华

熟手

F 币
172 元
贡献
72 点
跳转到指定楼层
楼主
发表于 2021-12-9 22:28:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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  必须作为子程序参数才能调用?
谢谢

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

6

帖子

2

主题

0

精华

新人

F 币
26 元
贡献
12 点
沙发
发表于 2024-6-29 22:35:37 | 只看该作者
请问楼主找到解决的办法了吗
我这边也碰到想采用module的方式进行内存区域的共享赋值
之前C++与Fortran的内存映射采用的时common方式
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-22 11:53

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表