如何使用翻译器f2c编译单个fortran对象?

时间:2011-09-26 16:21:23

标签: c matlab translation fortran

我有以下问题:我想模拟一些控制工程系统。由于它非常复杂,我使用计算机导出一些(复杂的)方程式,这些方程式只能导出到fortran77代码。在我的开发电脑上这没问题(linux机器)。

不,我想在硬件中这样做,在这里我必须使用Windows操作系统。不幸的是,matlab不支持windows上的gfortran。因此,我无法在该框中编译fortran文件。

我的想法现在转换为C,因为C编译器可以在matlab上获得。还有其他(更好的)选择吗?

我以下列方式有几个SUBROUTINES。

      SUBROUTINE sys_rhs (x, v, dx, param) 
      REAL*8 x(6)
C     code is coming here
      RETURN
      END SUBROUTINE

这是一个好习惯吗?在用C编写的接口函数中使用函数sys_rhs__是否有效? 问题是,我无法测试它,因为我没有大量访问Windows机器。所以如果我尝试它就应该工作,我不需要经常试验。

另外我在windows上需要什么?我在哪里可以得到它们?

由于 基督教

4 个答案:

答案 0 :(得分:0)

英特尔销售了一个非常好的fortran编译器(http://software.intel.com/en-us/articles/fortran-compilers/),他们过去常常免费提供测试...; - )

PS不,我没有以任何方式与这家公司联系!

答案 1 :(得分:0)

您可能想检查gnumex项目,该项目允许使用GNU GCC编译器套件(使用MinGW或Cygwin)编译MEX文件,并能够使用g77编译Fortran程序。

答案 2 :(得分:0)

答案很简单:我的fortran代码中有一些语法错误。 gfortran没有这样严格的语法检查,因此正确解释了fortran代码。删除拼写错误后,我用f2c代码转换。

由于

答案 3 :(得分:-1)

所有这一切都有更好的解决方案

使用你的linux机器或windows机器在c / c ++中实现该功能,然后生成一个dll文件。

在matlab中,您可以加载DLL并调用其中的函数。

这是一个简单的教程,展示了如何使用matlab调用dll。

http://www.mathworks.com/matlabcentral/fileexchange/15065-example-of-loading-c-dll-and-performance-comparison