0

我们正在 FORTRAN90 中开发一个数值模拟程序(程序,而不是 OO,不幸的是存在一些 COMMON 块但没有 GOTO 的 :-)),并且正在考虑使用 Python 来帮助我们进行单元测试(追溯性)和验证测试。我们想在 Python 中建立一个测试环境来 a) 进行单元测试和 b) 进行验证测试(即使用众所周知的解决方案运行小型测试用例)。我们希望能够将不同的测试组合在一起(通过 FORTRAN90 程序进行单元测试或通过问题主题进行验证测试)并允许单独或按组运行测试。

模拟程序是基于文本输入/输出的,所以我们可以想出一些输入文件来运行并与经过验证的输出文件进行比较。然而,对于单元测试,我想我们可能需要为每个 FORTRAN90 子例程编写包装器。

以前有人遇到过同样的情况吗?你能给我们什么建议?

谢谢。

(顺便说一句,用 Python 重写 FORTRAN90 代码不是(还)一个选项)

4

2 回答 2

1

如果你使用“os.system()”函数,这可以用来直接从python脚本调用linux/unix命令。您还可以使用“子流程”模块。

像这样使用它:

os.system("ls -G")

这将从 python 调用'ls -G',就像你自己调用它一样。您也可以使用此命令轻松编译和调用 fortran 代码。或者,如果您熟悉 bash 脚本,也可以将其用作单元测试的包装器。科学计算社区似乎喜欢 perl 来处理这些类型的任务,但 python 应该可以正常工作。

至少您使用的是 fortran90 而不是 fortran77。这些 goto 语句会使调试代码变得非常有趣。:P

于 2013-08-06T09:28:00.693 回答
0

这是一个链接,可让您深入了解如何执行任务:

从 Python 调用 Fortran

此链接还提供对两个模块的引用 - f2pyfwrapf2py的链接似乎已损坏,因此您可以在此处参考f2py文档

于 2013-08-06T07:04:08.907 回答