我需要使用完全用Fortran编写的数学包。该包不在单个文件中,而是编译为存档文件(.a文件)。
我有完整的源代码。我不了解Fortran。
我在这里快速阅读了f2py文件:
http://docs.scipy.org/doc/numpy-dev/f2py/
它对我不起作用。是否有更好的文档或指南来解决这个问题?
修改
根据评论的要求。我不确定我是否正确使用它(我不了解Fortran),有一些功能可能对我有用:
SUBROUTINE QP_initialize( data, control, inform )
TYPE ( QP_data_type ), INTENT( INOUT ) :: data
TYPE ( QP_control_type ), INTENT( OUT ) :: control
TYPE ( QP_inform_type ), INTENT( OUT ) :: inform
SUBROUTINE QP_solve( prob, data, control, inform, C_stat, B_stat )
TYPE ( QPT_problem_type ), INTENT( INOUT ) :: prob
TYPE ( QP_data_type ), INTENT( INOUT ) :: data
TYPE ( QP_control_type ), INTENT( IN ) :: control
TYPE ( QP_inform_type ), INTENT( OUT ) :: inform
INTEGER, INTENT( OUT ), OPTIONAL, DIMENSION( prob%m ) :: C_stat
INTEGER, INTENT( OUT ), OPTIONAL, DIMENSION( prob%n ) :: B_stat
答案 0 :(得分:0)
由于您说您只需要调用3-5种不同的功能,因此一种简单的方法是使用ctypes
。它包含在Python中,虽然乍一看似乎是为了调用C函数,但在许多系统上,Fortran大部分都与C兼容。
见这里:https://docs.python.org/2/library/ctypes.html
或者,您可以使用SciPy进行二次程序优化:http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.optimize.minimize.html