oso*_*maz 5 python fortran numpy fortran90 f2py
我应该用这个庞大的Fortran 77程序进行研究(我最近将它移植到Fortran 90表面).它是一个非常古老的软件,用于使用有限元方法进行建模.
我想做的事:
f2py,因此性能没有损失.我已经告诉该节目是该死在当前状态快?希望将对数字子程序和I/O的调用移植到python不会减慢到不切实际的水平(或者它会吗?).我想知道:
f2py适合并完成包装众多子程序和公共块而没有任何混淆的任务?我只在网上看过单文件示例f2py; 我知道numpy已经用它来包装LAPACK和东西,但我需要保证这f2py是一个足以完成这项任务的工具.笔记:
我正在做一些令人沮丧的类似事情。我们没有通过 C 进行动态内存分配,而是使用带有整数索引的单个全局数组(也在全局范围内),但除此之外它几乎是相同的。奇怪的、不一致的输入文件等等。
我建议不要尝试重写大部分程序,无论是用 python 还是其他任何东西。这是耗时的、令人不愉快的并且基本上是不必要的。作为替代方案,获取 F77 代码库,使其编译得足够干净以至于您愿意信任它,然后编写一个接口例程。
我现在有一个又大又丑的 F77 代码库,它位于界面后面。该程序需要以文本文件形式输入,因此界面的大部分工作是生成该文本文件。除此之外,遗留代码被简化为单个网关例程,该例程采用一些参数(包括识别文本文件的方法)并返回答案。如果您使用 Fortran 2003 的 iso_c_binding,您可以以 C 理解的格式公开接口,此时您可以将其链接到您想要的任何内容。
就现代代码(主要是优化例程)而言,遗留代码库是 C 接口背后的单个子例程。这比尝试进一步修改旧代码要好得多,并且对于您的情况来说可能也是一个有效的策略。
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |