【发布时间】:2015-02-24 11:47:27
【问题描述】:
我想使用用 C 语言用 fortran77 编写的“expokit”包。我确实在我的 linux 系统上安装了 f2c,并将 zhpadm.f 文件翻译成 zhpadm.c。接下来我应该怎么做才能在 C 中对矩阵求幂。我应该在 C 主程序中包含哪些文件?
如何将参数传递给 C 中的函数 zhpadm()?我的问题是二维数组。我不知道如何传递这些,我也不知道如何传递复数。对于真正的一维数组,它可以工作。
我正在使用 gfortran 和 gcc。
【问题讨论】:
-
想要在 C 中使用这个例程的确切原因是什么?请注意,f2c 生成的 C 代码难以阅读并且通常被认为是不可维护的。它还依赖于一个特殊的库。考虑使用 gfortran 编译包,并使用 Fortran 的 C 互操作的标准工具从 C 调用您想要的例程,使用使接口更容易的包装函数。
-
我想从 C 中调用 fortran 子例程,但是我遇到了二维数组的问题。我不知道如何通过它们和复数。对于真正的一维数组,它可以工作。我还没有尝试过一维复杂数组。我在 C 中使用 complex.h
-
调用 Fortran 版本应该比翻译好得多。
标签: c fortran fortran77 fortran-iso-c-binding