从C调用fortran代码#

问题描述:

有很多FORTRAN 77编写的代码。我想用c#开始使用该代码开发。我该怎么办?从C调用fortran代码#

  1. 导入FORTRAN的DLL到托管代码
  2. 转换代码

对于每一个选项,你能告诉我该怎么做。第一个是否有任何性能问题?

谢谢。

http://msdn.microsoft.com/en-us/library/26thfadc.aspx。我会选择1.在大多数情况下,假设您使用Fortran进行数字运算,它将会减少工作量并产生更好的性能。

如果您有很多非托管代码,而您没有时间迁移,则选项1很不错。如果你走这条路线,确保尽可能少地调用非托管方法,即使这些调用涉及发送更大的参数/结果,因为托管/非托管世界之间的编组可能会损害性能。

选项2没问题,您最终会将所有内容都转换为托管代码。假设这段代码编写得当,它的执行速度至少与非托管代码一样快。

有商业的Fortran .NET编译

+0

哇,这可能是有用的,我在哪里可以找到它? – 2011-06-08 22:26:48

+0

http://www.lahey.com/lf71/lf71.htm我怀疑$$$虽然 – pm100 2011-06-08 22:56:50

我与Achim同在。例如,AMD正在开发并支持用FORTRAN 90编写的linear algebra toolkit,并提供C风格的界面。随着FORTRAN 77 YMMV