Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Fortran and .NET CLR

mattintelnetfort
Beginner
981 Views
I'm evaluating Intel Fortran compiler for use by our desktop application. I'm confused about the Fortran compiler's relationship with .NET Common Language Runtime (CLR). I'm familiar with the notion of 'managed' and 'unmanaged' C++; is there something similar for Intel Fortran? I see the LAHEY compiler indicates 'managed' Fortran, but I'm not sure what this means. Can the Intel Fortran access the .NET framework class libraries? I see an Intel article that states Fortran can be compiled to the CLR; does this mean Fortran compiled objects are in the Microsoft Intermediate Language (MSIL)? Is there some reference material on this topic somewhere?
0 Kudos
2 Replies
TimP
Honored Contributor III
981 Views
Please look at the articles on those topics on this forum, which you can find with the search button at the bottom of the screen. As you can infer from general web search results, only Lahey and Silverfrost offer Fortran compilers which provide for the generation of either 32-bit native "unmanaged" or CLR "managed" Windows code, supporting the extensions you mentioned. According to their web sites, those compilers require Visual Studio 2003, which has been discontinued. VS2003 managed code is their only debugging option. No Fortran intended for 64-bit Windows has a "managed" code option, so it appears that development on Fortran managed code compilers has slacked off, in response to the small market share. In the comparisons of Fortran compilers posted at http://www.polyhedron.co.uk/ you can see that run-time performance is not a feature of the "managed" code compiler evaluated there.
0 Kudos
Steven_L_Intel1
Employee
981 Views
As Tim says, Intel Fortran generates native (unmanaged) code only. You CAN have Intel Fortran code that interoperates with CLR code through DLL calls or the "Fortran Module Wizard" that can generate interfaces to .NET assemblies.
0 Kudos
Reply