Fortran Coder

标题: Forpy:借用Python的轮子 [打印本页]

作者: weixing1531    时间: 2019-5-27 02:24
标题: Forpy:借用Python的轮子
有人会报怨,Fortran的库太少了
没关系,借助iso_c_binding,可以拥抱粗大腿Python


Forpy: A library for Fortran-Python interoperability
网址:https://github.com/ylikx/forpy


Python造的轮子:list, dict, tuple, numpy可以统统拿来直接用


以下是一个例子:
[Fortran] 纯文本查看 复制代码
program intro_to_forpy
  use forpy_mod
  implicit none

  integer :: ierror
  type(list) :: my_list

  ierror = forpy_initialize()
  ierror = list_create(my_list)

  ierror = my_list%append(19)
  ierror = my_list%append("Hello world!")
  ierror = my_list%append(3.14d0)
  ierror = print_py(my_list)

  call my_list%destroy
  call forpy_finalize

end program


作者: vvt    时间: 2019-5-27 10:46
这个工程的工作量也是浩大了。

个人觉得,就算你能使用python提供的一些数据结构,也不能很畅快的使用。
操作符、intrinsic的函数等配套的不支持。

如果确实需要这些动态的数据结构,不如直接用python重写。
作者: weixing1531    时间: 2019-5-27 12:04
本帖最后由 weixing1531 于 2019-5-27 12:05 编辑

看了一下forpy_mod.F90的代码量有1.1万多行
核心思想就把借助iso_c_binding把Python的C接口转换成Fortran接口
有免费轮子用就很不错了
作者: vvt    时间: 2019-5-27 14:45
如果有一个自动转换 C/C++ 的 h 文件为 ISO_C_Binding 的 mod 文件就好了。
可以省很多功夫~~利国利民
作者: Knight1990    时间: 2019-7-17 20:29
请问楼主forpy在IVF上怎么配置,想在Fotran程序中调用python的库,但是使用测试代码测试时总报错无法解析外部符号




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