c - 如何从 C 头文件准备 Fortran 模块?

标签 c fortran fortran-iso-c-binding

我有一个包含 6 个函数的纯 C 文件,我想为 Fortran 程序员提供这些函数:

http://tinyfiledialogs.sourceforge.net

C 到 Fortran 的“导入”可行吗?

我是否应该简单地准备一些类似 Fortran 头文件的东西?

我意识到我的 C 代码使用了多个 Unix 或 Windows C 头文件,这会使转换复杂化。但是,为 6 个 C 函数提供相当于 Fortran header 的功能肯定是可以实现的。

char const * tinyfd_inputBox (
    char const * const aTitle ,
    char const * const aMessage ,
    char const * const aDefaultInput ) ; 
   // the returned value is a static array

编辑:我开始意识到模块实际上是依赖于编译器的。 也许我应该准备一个生成 C 目标文件和 fortran 模块的 makefile 来使用它。

最佳答案

如果您的目标是让 Fortran 程序员的生活更轻松,并帮助他们直接在他们的程序中使用您的 C 代码,那么您可能想要考虑生成提供接口(interface)的 Fortran 模块。这些与您的示例 header 有些相似,因为它们定义了例程类型以及所需的输入和输出。

我在这方面不是特别有经验,所以我不会在这里给出具体的例子,但我会让你引用this site .另一个有用的信息来源是查看其他软件包如何执行此操作,例如 netcdfPETSc .

关于c - 如何从 C 头文件准备 Fortran 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37673536/

相关文章:

c++ - 将数字转换为字符串

c - 使用 write 递归打印数字 c

makefile - 编译 Fortran 程序和编译器/库

variables - Fortran 编译器术语 : Dummy Variables and Attributes

c - EVP_PKEY_sign 和 EVP_DigestSignInit 之间的区别?

c++ - 如何将 gdb 用于多线程网络程序

python - Numpy 设置工具 : How to compile fortran file as part of a module

c - 在 Fortran 派生类型中保存指向 C 函数的指针

fortran - 为什么需要 C_INT fortran 类型? C 和 Fortran 整数有如此不同吗?

fortran - 错误: Character argument 'a' at (1) must be length 1 because procedure is BIND(C)