如何在 C# 应用程序中使用 Fortran 文件?

How can I use a Fortran file in a C# application?

我有 Intel® Parallel Studio XE,它为 Microsoft Visual Studio 提供 Fortran 编译器(我使用 2013 Ultimate 版本)。 可以在 C# 应用程序中执行 Fortran 文件,还是必须是 C/C++ 应用程序?我该怎么做?

None 其中可以使用fortran,必须创建一个fortran项目,不能混合语言。一个可能的解决方案是创建一个 DLL 并将其与 DLLImport 连接,这可能对您有所帮助:

https://sukhbinder.wordpress.com/2011/04/14/how-to-create-fortran-dll-in-visual-studio-with-intel-fortran-compiler/

从 C# 调用 Fortran 有两种选择。

1) 创建 Fortran 控制台应用程序 (EXE)。使用 Process.Start 从 C# 调用并使用文件传递输入和输出。我建议从这种方法开始。

var startInfo = new ProcessStartInfo();
startInfo.FileName = "MyFortranApp.exe";
startInfo.Arguments = @"C:\temp\input_file.txt C:\temp\output_file.txt";
Process.Start(startInfo);

2) 一种更高级的方法是创建 Fortran DLL 并使用 P/Invoke (DllImport) 从 C# 调用。使用 DLL,所有输入和输出都在内存中传递。您还可以使用回调将进度报告回 C# 调用代码。

public static class FortranLib
{
    private const string _dllName = "FortranLib.dll";

    [DllImport(_dllName, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
    public static extern void DoStuff([In] double[] vector, ref int n, [In, Out] double[,] matrix);
}

http://www.luckingtechnotes.com/calling-fortran-dll-from-csharp/ http://www.luckingtechnotes.com/calling-fortran-from-c-monitoring-progress-using-callbacks/