我们正在用FORTRAN90开发一个数值模拟程序(过程化的,而不是面向对象的,不幸的是,有一些公共块存在,但没有GOTO的:-),并且正在考虑使用Python来帮助我们进行单元测试(追溯)和验证测试。我们希望在Python中建立一个测试环境,以便a)进行单元测试,b)进行验证测试(即使用知名的解决方案运行小型测试用例)。我们希望能够将不同的测试分组在一起(通过FORTRAN90过程进行单元测试,或者通过问题主题进行验证测试),并允许单独或按组运行测试。
模拟程序是基于文本输入/输出的,因此我们可以提出一些要运行的输入文件,并与验证的输出文件进行比较。但是,对于单元测试,我猜我们可能需要为每个FORTRAN90子例程编写包装器。
以前有没有人遇到过类似的情况?你能给我们什么建议?
谢谢。
(顺便说一句,用Python语言重写FORTRAN90代码还不是一个选项)
发布于 2013-08-06 17:28:01
如果使用"os.system()“函数,则可以直接从python脚本调用linux/unix命令。您也可以使用"subprocess“模块。
像这样使用它:
os.system("ls -G")
这将从python中调用'ls -G‘,就像你自己调用它一样。您也可以使用此命令轻松地编译和调用fortran代码。或者,如果您熟悉bash脚本,也可以将其用作单元测试的包装器。对于这些类型的任务,科学计算社区似乎更喜欢perl,但是python应该可以很好地工作。
至少你使用的是fortran90而不是fortran77。这些goto语句可以使调试代码变得非常有趣。:P
发布于 2013-08-06 15:04:09
这里有一个链接,可以让你深入了解如何完成你的任务:
Calling Fortran from Python
此链接还提供了对两个模块的引用-f2py和fwrap。f2py的链接似乎已断开,因此您可以参阅f2py documentation here
https://stackoverflow.com/questions/18072977
复制相似问题