fortran-iso-c-binding相关内容

关于在 C 中通过 iso_c_binding 使用 Fortran 函数

我花了几天时间学习 Fortran 的 C 互操作性,以便从 C 调用 Fortran 函数 DLL.在这里我找到了这个链接:在 C 中使用 Fortran 代码 我尝试像这样创建一个 Fortran DLL,而我的编译器是 Intel Fortran 编译器: 模块集成隐式无包含函数积分(func,a,b,intsteps)结果(积分)!DEC$ 属性 DLLEXPORT :: 集成界面 ..

为什么这种将指针从 C++ 传递到 Fortran 的尝试不起作用?

我需要将一个动态数组从 c++ 传递到 Fortran.我做了很多研究来整理一个我认为应该有效的例子,但事实并非如此.该程序应在 c++ 程序中创建一个数组,将该数组的指针传递给 Fortran 例程,将 C 指针转换为 Fortran 指针,然后在 Fortran 端打印该数组. 我的 c++ 主程序: 使用命名空间标准;外部“C"{无效 cinterface(int*,int*);}主 ..
发布时间:2022-01-14 10:13:35 C/C++开发

ISO_C_BINDING 从 Fortran 调用 C 例程(使用双精度和数组)

几周前我发布了一个类似的问题(iso_c_binding 使用来自 Fortran 数组的指针调用 C 例程),我找到了解决问题的方法.现在我修改了一些东西,我又遇到了一些问题.下面是我的问题的简化版本. 我在 fortran 中有一个主程序: 程序 main_dummy!编译:gcc -c dummy_trace.c!f95 光线追踪.f90 main_dummy.f90 dummy_t ..
发布时间:2022-01-14 10:09:42 其他开发

使用 iso_c_binding 的 Fortran-C 桥中的字符串数组

我正在编写代码,该代码将使用 Fortran 的 C 互操作性机制(在 Fortran 2003 中引入并在较新版本的 gfortran 和 ifort 中实现)从 Fortran 调用 C 函数. 这个答案 几乎是我需要的,但我不太清楚我应该使用什么接口声明在 Fortran 中使用如下所示的 C 函数: int use_array(int n, char * array[]){诠释我; ..
发布时间:2022-01-14 10:05:12 其他开发

将可分配数组从fortran传递给C并对其进行malloc

我正在将我们的一些 Fortran 库代码转换为 C,以便我们最终拥有带有 Fortran 包装器的 C 函数.我们正在使用 Fortran 95. 处理可分配数组的首选方法是什么? 我可以将一个可分配数组传递给一个 C 函数并在 C 函数中 malloc 吗?(C 函数知道要分配的大小) 在 fortran 程序中,我可以取消分配在 C 函数中分配的东西吗?所以最后要么是客户端 ..
发布时间:2022-01-14 10:03:48 其他开发

Fortran-C 互操作性和浮点数组

我有一个大型的现有 Fortran95 代码.它使用 real(dp), dimension(num) :: 数组 声明数组. 我想加入一些 C 代码,发现我可以通过编写 C 函数的接口并将数组声明为来做到这一点 使用 iso_c_binding真实(c_double),可分配,目标::数组(:) 我有调用 C 函数的 fortran 函数 调用 myfunction(c_loc( ..
发布时间:2022-01-14 10:02:38 其他开发

在 fortran 程序中调用 METIS API(用 C 语言编写)

两周多来,我一直在努力给其中一个 METIS 从我的 fortran 代码中用 C 语言编写的库.而且,不幸的是,没有你的帮助,这似乎不是一个快乐的结局.我发现了一些关于 直接调用 和 使用界面.我更喜欢后者,因为我可以监视变量以进行调试.我附上了三个代码. 1.我要使用的c函数 2. fortran接口模块 3. fortran程序 (1)c函数 int METIS_PartM ..
发布时间:2022-01-14 09:56:59 其他开发

将 fortran 77 函数传递给 C/C++

是否可以将 fortran 77 函数作为回调函数指针传递给 C/C++?如果有,怎么做? 我在网上找到的信息与 fortran 90 及更高版本有关,但我的旧代码库在 77 中. 非常感谢 解决方案 如果可以在 FORTRAN 77 中完成,它将是编译器和平台特定的.Fortran 2003 的新 ISO C 绑定提供了混合 Fortran 和 C 以及任何遵循或可以遵循 C ..
发布时间:2022-01-14 09:54:53 C/C++开发

对 Fortran 中的实数同时使用科学记数法和下划线种类说明符

在 Fortran 中对浮点文字使用科学记数法很容易: 1.5d-10 表示双精度(无论在当前 Fortran 编译器设置下意味着什么)浮点值,近似于 1.5*10^-15. 但是,指数符号和浮点类型说明符的融合有点问题.当希望它具有 C_DOUBLE 类型时,如何声明这个浮点字面量? 我知道这有点吹毛求疵,但在某些情况下,双精度可能与 C_DOUBLE 不同. 解决 ..
发布时间:2022-01-14 09:49:55 其他开发

从 C++ 调用带有可选参数的 Fortran 子例程

如何在使用可选参数的 C++ 标头中引用 Fortran 函数?对于每个可能的调用组合,我会在标题中放置一个原型吗?或者这甚至可能吗? 例如,Fortran: 子程序 foo(a, b, c) bind(c)真实的,意图(in),可选 :: a, b, c...结束子程序 foo 解决方案 这是不可能的,至少是可移植的,除非你制作子程序 bind(C). 一旦你做了 bind(C ..
发布时间:2022-01-14 09:46:10 C/C++开发

将二维数组从 Fortran 传递到 C

我在将二维数组从 Fortran 传递到 C 时遇到问题.以下是我的 C 函数,它只在屏幕上显示数组元素. #include void print2(double *arr , int *n){整数 y = *n;printf("\n y = %d", y);for(int i =0; i 到目前为止,我的 Fortran 代码如下: 程序链接FwithC使用,内在 :: ..
发布时间:2022-01-14 09:41:10 其他开发

Fortran 派生类型包含可从 C 访问的指针

我有一个 Fortran 代码,其中包含许多包含指针的派生类型.我正在编写需要访问这些变量的 C++ 代码.如果没有指针,我无法重写这些派生类型,因为它们在 Fortran 代码中的数百个不同地方使用. 下面是示例代码: 简单的模块使用 iso_c_binding类型,绑定(C)::简单整数 :: A整数、指针 :: B、C(:)端型简单结束模块简单 我需要从 C 中访问 SIMPLEF ..
发布时间:2022-01-14 09:40:40 其他开发

如何调试 Fortran 90 编译错误“There is no specific subroutine for the generic 'foo' at (1)"?

我正在尝试使用 iso_c_bindings 模块将 Fortran 2003 绑定编写到 CUFFT 库,但是 cufftPlanMany 子例程(类似于 FFTW 库中的 sfftw_plan_many_dft)存在问题.p> 绑定本身如下所示: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ..

将数组从 C/C++ 传递到 Fortran 并返回计算的数组

我正在尝试将一个数组从 C/C++ 传递到 Fortran 2003 模块,并将计算值返回到 C/C++.我已经能够很好地传递和返回单个值(标量),但是来回获取 array 证明是困难的.我发现了很多关于标量值的线程,并且我已经成功地完成了这些工作. 我已经按照我的工作标量函数对基于数组的函数进行了建模. 我正在使用 gcc/gfortran. 这是 Fortran 模块 (Co ..
发布时间:2022-01-14 09:31:37 C/C++开发

Fortran - Cython 工作流程

我想设置一个工作流,以便在 Windows 机器上使用 Cython 从 Python 访问 fortran 例程 经过一番搜索,我发现:http://www.fortran90.org/src/best-practices.html#interfacing-with-c 和 https://stackoverflow.com/tags/fortran-iso-c-binding/信息 ..
发布时间:2022-01-14 09:30:47 Python

从 C 调用 FORTRAN 子例程

我正在尝试从 C 调用 FORTRAN 函数 我的问题是: 如果 fortRoutine 是我的 fortran 子例程的名称,那么我从 C 调用它作为 fortRoutine_.如果 fortRoutine 只包含一个字符数组参数,那么我可以这样传递: fortRoutine_("我在 fortran"); 在调用 FORTRAN 子程序时,什么时候应该使用传值和传引用? ..
发布时间:2022-01-14 09:24:56 其他开发

混合 C++ 和 Fortran 链接问题

我在网上做了一些搜索,但我找不到如何从 linux 编译简单的 C++ 和 Fortran 代码.我需要让它变得复杂,但我只需要知道如何从一个简单的例子开始. 我的 C++ 代码是这样的: #include 使用命名空间标准;extern int Add(int *, int *);extern int 乘法(int *,int *);主函数(){整数a,b,c;cou ..
发布时间:2022-01-11 15:39:50 C/C++开发