2011-09-11 99 views
2

我想知道哪个高级语言允许最简单的方式调用Fortran子例程?我目前使用MATLAB并调用MEX文件似乎比其他语言相对复杂。最好的高级语言来调用Fortran子程序?

我如何以下对比中得到“正常运行”快速方面特别感兴趣:通过经f2py * R

* Python的? * MATLAB通过MEX文件

问这个问题的另一种方法是“如果您要重新开始学习一种新语言,如果您的目标是调用Fortran子例程,您会选择哪一种?

我试图获得“两全其美”,即具有良好的数据处理能力和图形结合调用快速Fortran子程序的能力。

非常感谢大家提前给予您的帮助。唉,如果有人知道Fortran的一个好的MEX教程,那也是值得赞赏的。

回答

4

Python通过f2py是非常好的。使用IVF在Windows上运行时遇到了一些麻烦,但不需要很长时间就可以找出问题,并且邮件列表会提供快速响应。在Linux上,它没有任何问题。

我还没有使用R,但据我所知,它只有在你使用大量数据进行大量统计时才有用。至于MATLAB,这是一种可怕的语言,如果你只是调用FORTRAN,那么你最好用Python。

+0

感谢您的回应!当然,直接使用Fortran是一个微不足道的解决方案,但正如我之前提到的,我希望拥有两全其美的解决方案。我已经看到了几个关于f2py的教程,它似乎很容易从Python调用,不像MATLAB,这更困难。我还发现了这个链接,可能会引起其他人的兴趣:http://nag.com/numeric/MB/start.asp。这是可从MATLAB调用的NAG Fortran数字子程序,它没有(看起来)很多大惊小怪。 Thnaks再次为您所有的答复! – EcoDude

+0

阿门到Python。我的经验是,如果你按照你应该的方式编写Fortran子程序(例如指定参数的意图等),那么f2py转换就变得很平常。另外,您还可以与各种其他库进行集成,以执行文本处理,网络通信和其他好东西。当我使用MATLAB时,我尝试使用MEX文件,当我尝试使用f2py时,意识到我再也不用担心MEX文件再次成为一个伟大的日子。 –

+0

感谢您的评论!我不明白为什么MATLAB使得编写MEX文件变得如此困难。我已经收到许多有关Python将它与Fortran关联的正面评论。我也听说过有关R/Fortran连接的好处,所以这是另一种可能性。我对MATLAB没有认为有必要简化将代码链接到C和Fortran的过程感到失望。 – EcoDude

6

我想知道哪个高级语言允许最简单的方式调用Fortran子例程?

显而易见的答案是Fortran本身。所谓的Modern Fortran(2003 & 2008)具有许多高级功能。显然,从现代的代码中调用遗留的FORTRAN代码很容易(我的猜测是你有旧的FORTRAN代码库)。

+3

对于图形,您可以使用Fortran的dislin或plplot库。 –

1

我通常在你的情况下做的是创建Fortran程序,我可以传递命令行参数作为输入。 Fortran 2003标准使用内在的get_command_argument子例程很容易获得这一点。然后,您可以使用您作为包装器使用的任何语言来解析Fortran程序输出(假设语言可以访问系统shell)。过去,我使用shell脚本,MATLAB(避免),Python来完成这项工作。