python主程序调用子程序_使用main.f90模块调用特定的.f文件运行f2py时出现问题?(未知的子程序?)...

我尝试使用f2py将fortran函数与我的主要python代码集成。但是,当我试图包含一个特定的“.f”文件时,f2py会引发一个错误(但可以很好地处理其他“.f”文件)。我为我的主“.f90”文件创建了以下最小工作示例:module min_example

implicit none

public :: calc_min

contains

subroutine calc_min

print*, 'test'

return

end subroutine calc_min

end module min_example

我用的是:gfortran -c min_example.f90

gfortran -c qromb.f

f2py -c qromb.f min_example.f90 -m min_example

任何帮助都将不胜感激!谢谢您!在

最新消息:我一直在四处搜寻,发现的线索很少。有人认为f2py有内联注释的问题,但是删除它们并没有帮助。我读到的另一个答案建议将“.f”文件转换为“.f90”文件,但说实话,我不知道这两者之间的区别(我对fortran非常陌生)。所以我不知道该怎么做(我不太清楚.f文件的结构),也不知道它是否会减慢速度。在

另一个更新:使用“f2py-m min_example min_example.f90 qromb.f”进行编译时,将得到以下输出:Reading fortran codes...

Reading file 'min_example.f90' (format:free)

Reading file 'qromb.f' (format:fix,strict)

Post-processing...

Block: min_example

Block: min_example

Block: calc_min

Block: qromb

Block: trapzd

Block: func

Block: polint

Post-processing (stage 2)...

Block: min_example

Block: unknown_interface

Block: min_example

Block: calc_min

Block: qromb

Block: trapzd

Block: polint

Building modules...

Constructing call-back function "cb_func_in_trapzd__user__routines"

def func(x,q): return sum

Building module "min_example"...

Constructing wrapper function "qromb"...

routsign2map: Confused: function qromb has externals ['func'] but no "use" statement.

sign2map: Confused: external func is not in lcb_map[].

append_needs: unknown need 'func'

append_needs: unknown need 'func'

qromb(func,a,b,ss,q,[func_extra_args])

Constructing wrapper function "trapzd"...

trapzd(func,a,b,s,n,q,[func_extra_args])

Constructing wrapper function "polint"...

polint(xa,ya,x,y,dy,[n])

Constructing F90 module support for "min_example"...

Constructing wrapper function "min_example.calc_min"...

calc_min()

Wrote C/API module "min_example" to file "./min_examplemodule.c"

Fortran 90 wrappers are saved to "./min_example-f2pywrappers2.f90"

并生成以下文件:min_example-f2pywrappers2.f90

min_example.mod

min_example.o

qromb.o

min_examplemodule.c

这看起来很有前途,但是当我进入python时,我不能导入函数。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值