Intel® Fortran Compilers

Performance without compromise on Windows*, Linux* and OS X*

  • Broad support for current and previous Fortran standards, plus popular extensions
  • Intel® Math Kernel Library included in suites
  • Optional Rogue Wave* IMSL* Fortran Numerical Library on Windows

Try & Buy Intel® Fortran Compiler in:

Intel® Parallel Studio XE

A complete Fortran development environment for Windows*

  • Works with Microsoft* Visual Studio* 2010, 2012 and 2013
  • Don't have Visual Studio? No problem - a Fortran development environment based on Microsoft Visual Studio 2010 Shell is included - nothing else to buy!
  • Develop, build, debug and run from the familiar Visual Studio IDE, or build and run from the command line - your choice!
  • 32-bit and 64-bit development included - no extra charge!
  • Create traditional console applications or advanced graphical interfaces with QuickWin, OpenGL* and Windows API support
  • COM (Component Object Model) and .NET interoperability provided
  • Build mixed-language applications with C++, Visual Basic*, Microsoft C# and more! (requires Microsoft Visual Studio)
  • Tens of thousands of declarations of routines, types and constants for Windows API, OpenGL, POSIX, dialogs, multi-byte character support and more!

Intel Fortran integration into Microsoft Visual Studio

  1. Fortran project and source files in Visual Studio
  2. Fortran-aware text editor with context-sensitive help, Go To Definition, templates, coloring and more
  3. Debug Fortran code with full access to Fortran types and arrays
  4. Build and debug mixed-language programs in a single Visual Studio solution
  5. Set breakpoints at Fortran source lines, with optional conditions


Broad support for current and previous Fortran standards, plus popular extensions

  • Full language Fortran 95, full Fortran 2003, plus significant Fortran 2008 features
    • Coarrays
    • DO CONCURRENT
    • 31 array dimensions (standard specifies 15)
    • NEWUNIT in OPEN
    • Much more - see release notes for details
  • Also supports FORTRAN IV (FORTRAN-66), FORTRAN 77 and Fortran 90
  • Extensive OpenMP 4.0* support
  • Source compatible with Compaq Visual Fortran* - most projects just need a rebuild

Performance without compromise

  • Industry leading performance on Intel and AMD* processors.  Take a look at the benchmarks below that were run by Polyhedron* for independent confirmation.


Geomean time in seconds - lower is better
As published 3/10/2014 at http://www.polyhedron.com

  • Extensive optimizations for the latest Intel processors, including Intel® Xeon Phi™ coprocessor
  • Take advantage of multicore, manycore and multiprocessor systems with OpenMP, automatic parallelism, DO CONCURRENT, coarrays and Intel Xeon Phi coprocessor support
  • Patented automatic CPU dispatch feature gets you code optimized for the current running processor

Intel® Math Kernel Library

  • Included in Fortran suites that adds advanced math processing
  • Vectorized and threaded for highest performance on all Intel and compatible processors
  • De facto standard APIs for simple code integration
  • Compatible with all C, C++ and Fortran compilers
  • Royalty-free, per developer licensing for low cost deployment
  • Click here for more information.

Rogue Wave* IMSL* 7 Fortran Numerical Library

  • Optional add-on to the suites that include Intel Visual Fortran compiler
  • Superior accuracy and reliability through 40 years of refinement
  • A comprehensive set of 1000+ algorithms
  • Supporting parallel processing architectures since 1990
  • Evolves easily with software and hardware upgrades
  • Click here for more information and pricing

Outstanding support

  • One year of support included with purchase – gives you access to all product updates and new versions released in the support period plus access to Intel® Premier Support
  • Active user forums for help from experienced users and Intel engineers

Works with your familiar development environment

  • Uses gcc tools, including gdb debugger
  • Link compatible with C and C++ from gcc
  • 32-bit and 64-bit compilers included – no extra charge!

Broad support for current and previous Fortran standards, plus popular extensions

  • Full language Fortran 95, Full Fortran 2003, plus significant Fortran 2008 features
    • Coarrays
    • DO CONCURRENT
    • 31 array dimensions (standard specifies 15)
    • NEWUNIT in OPEN
    • BLOCK
    • Much more - see release notes for details
  • Also supports FORTRAN IV (FORTRAN-66), FORTRAN 77 and Fortran 90
  • Extensive OpenMP 4.0* support

Performance without compromise

  • Industry leading performance on Intel and AMD processors. Take a look at the benchmarks below that were run by Polyhedron for independent confirmation.


Geomean time in seconds - lower is better
As published 3/10/2014 at http://www.polyhedron.com

  • Extensive optimizations for the latest Intel processors including Intel® Xeon Phi™ coprocessor
  • Take advantage of multicore, manycore and multiprocessor systems with OpenMP, automatic parallelism, DO CONCURRENT, coarrays and Intel Xeon Phi coprocessor support
  • Patented automatic CPU dispatch feature gets you code optimized for the current running processor

Intel® Math Kernel Library

  • Included in Fortran suites that adds advanced math processing
  • Vectorized and threaded for highest performance on all Intel and compatible processors
  • De facto standard APIs for simple code integration
  • Compatible with all C, C++ and Fortran compilers
  • Royalty-free, per developer licensing for low cost deployment
  • Click here for more information

Outstanding support

  • One year of support included with purchase – gives you access to all product updates and new versions released in the support period plus access to Intel® Premier Support
  • Active user forums for help from experienced users and Intel engineers

Works with your familiar development environment

  • Build from command line or use Xcode integration (limited feature)
  • Link compatible with C and C++ from gcc
  • 32-bit and 64-bit compilers included – no extra charge!

Broad support for current and previous Fortran standards, plus popular extensions

  • Full language Fortran 95, full Fortran 2003, plus significant Fortran 2008 features
    • DO CONCURRENT
    • 31 array dimensions (standard specifies 15)
    • NEWUNIT in OPEN
    • BLOCK
    • Much more - see release notes for details
  • Also supports FORTRAN IV (FORTRAN-66), FORTRAN 77 and Fortran 90
  • Extensive OpenMP 4.0* support

Performance without compromise

  • Industry leading performance
  • Extensive optimizations for the latest Intel processors
  • Take advantage of multicore, manycore and multiprocessor systems with OpenMP, automatic parallelism, DO CONCURRENT
  • Patented automatic CPU dispatch feature gets you code optimized for the current running processor

Intel® Math Kernel Library

  • Vectorized and threaded for highest performance on all Intel and compatible processors
  • De facto standard APIs for simple code integration
  • Compatible with all C, C++ and Fortran compilers
  • Royalty-free, per developer licensing for low cost deployment
  • Included in Intel® Fortran Composer XE
  • Click here for more information

Outstanding support

  • One year of support included with purchase – gives you access to all product updates and new versions released in the support period plus access to Intel® Premier Support
  • Active user forums for help from experienced users and Intel engineers

Videos to help you get started.

  • Introduction to Intel® Visual Fortran in the Microsoft* Visual Studio* Development Environment
  • Optimizing your application with Intel® C++ and Fortran Compilers for Windows* and Linux*

Register for future Webinars


Previously recorded Webinars:

  • Update Now: What’s New in Intel® Compilers and Libraries
  • An Introduction to Intel® Visual Fortran Development on Intel® Xeon Phi™ coprocessor
  • OpenMP 4.0 for SIMD and Affinity Features with Intel® Xeon® Processors and Intel® Xeon Phi™ Coprocessor
  • Learn to be an Intel® Visual Fortran Power User
  • Optimizing and Compilation for Intel® Xeon Phi™ Coprocessor

Featured Articles

No Content Found

More Tech Articles

Redistribution of Application Binaries Built for Linux*
By Bonnie Aona (Intel)Posted 09/03/20100
Information on redistribution of applications built primarily with 11.x Intel® Compiler Professional Edition for Linux*.
Procedure Inlining in the Intel Fortran Compiler
By Igor Vorobtsov (Intel)Posted 03/01/20102
Inline expansion basics and how it works with Intel Fortran Compiler
Avoiding Relocation Errors when Building Applications with Large Global or Static Data on Intel64 Linux
By Martyn Corden (Intel)Posted 01/26/20103
Applications with >2GB of static or global data should be built with –mcmodel=medium –shared-intel on Intel64 Linux*. If linked with static libraries, these should also be built with –mcmodel=medium. Else, "relocation truncated to fit" errors may occur.
Intel® Compiler Options for Intel® SSE and Intel® AVX generation (SSE2, SSE3, SSSE3, ATOM_SSSE3, SSE4.1, SSE4.2, ATOM_SSE4.2, AVX, AVX2, AVX-512) and processor-specific optimizations
By Martyn Corden (Intel)Posted 01/24/20105
Explains which Intel® Compiler switches to use to target and optimize for a specific platform, microarchitecture, CPU or processor.
Subscribe to Intel Developer Zone Articles

Supplemental Documentation

No Content Found
Subscribe to Intel Developer Zone Articles

You can reply to any of the forum topics below by clicking on the title. Please do not include private information such as your email address or product serial number in your posts. If you need to share private information with an Intel employee, they can start a private thread for you.

New topic    Search within this forum     Subscribe to this forum


Problem with Redistributable Files
By dabradley3
I am using VisualStudio2013Pro and Intel(R) Visual Fortran Composer XE 2013 SP1 Update 3 Integration for Microsoft Visual Studio* 2013, 14.0.0092.12. After compiling/linking in release mode, then sending the executable file to a user, when he runs it, the error message, that libifcoremd.dll is missing, is displayed. I either need to: (1) link that dll file so that the executable file contains it (preferred, if possible), or (2) have that dll file available to him.  I cannot find a way to do (1); if you know of a way, please respond.  As far as (2), I have tried sending him the dll file and having the user to place it in the same folder as the program executable file.  Then, when he runs the program, it stops unexpectedly. So, after some investigation, and finding almost no documentation, on (2) above, I am asking for your help.  What I really need is a tutorial on how to do this.  Some hints exist on the Internet that, along with the Intel Fortran, an executable file or msi file exi...
A foolproof way to calculate DO LOOP iterations.
By billsincl26
An afterthought ; Why not use REAL(16) arithmetic to calculate that? We are always guaranteed to get the correct answer for ANY combination of inputs, and the most extreme range (-huge to +huge) You get  a REAL(16) result, which you would round off to get the final number. NO_STEPS = (real(STOP,16) - real(start,16)+real(step,16))/real(step,16) Since the compiler supports REAL(16) arithmetic, this should not cause any problems. Anyway, I wanted to see what the compiler guys think about this, since it completely avoids the integer overflow curse.
intel version 10 windows visual fortran
By William G.2
Question 1. In the version  10 windows fortran compiler, can the cpu be specifically set to use which of these floating point calculation modes  single mode (32 bit floating)  or double mode(64 bit mode) or double extgended mode(80-bit) WHich of the above 3 modes (32,64,80 bit) is the default??   Question 2 In a more up to date version of the fortran compiler is there more control to instruct the cpu to specifically use for example 64 bit mode floating point calculations   WHat we are seeing is ONLY when the fortran dlls are being run through an EXCEL spreadsheet interface, sometimes the first time the excel is run values are returned ; but then the second and subsequent runs of the excel interface produce a consistent set of values that are slightly different from the first set of values (usually differences start after about 5 significant digits).   the hypothesis is that 1. excel opens and sets the floating point mode 2 the first time the fortran dll loads there is some static in...
DISLIN
By jm-nichols@tamu.ed11
Dear Steve: DISLIN is a neat program for drawing plots written by Helmet Michaels in Germany. The program is free for non -commercial use. I bought the really excellent manual whihc explains how to install the libraries.   The library files are installed in a folder called c:\DISLIN  The Module File for DISLIN DISLIN.F90 and DISLIN.MOD is stored in c:\DISLIN\IFC I set the path command to point to the point to the correct places Set the DISLIN environment variable to c:\dislin and include      c:\dislin\win in your path. If you have installed DISLIN in a      different directory, you have to use that directory for the       environment variables above.   I then used a VS 2012 Command prompt to run the sample program provided with DISLIN I also tried setting up a VS 2012 solution and run it from VS.   I get a variety of errors depending on how I configure the VS properties, but the main and first error is ifconsol.lib cannot open file.  Helmut suggested the following - this morning...
ICE with PDT
By Espen M.2
MODULE test    IMPLICIT NONE    PUBLIC    INTEGER, PARAMETER, DIMENSION(6), PRIVATE :: kind_params = [0,1,3,7,9,14]      TYPE :: dt(kind)   INTEGER, KIND :: kind   REAL,DIMENSION(kind_params(kind))  :: comps  END TYPE dt   END MODULE testThe above code is a stripped down example of something I'm trying to compile that generates an internal compiler error due to the parameter array kind_params being used in the dimension specification of comps.
How to build and object file for 64 bit system?
By Vahid E.14
Dear all, My system is 64 bit with Windows 7. I want to run ABAQUS 6.13 with a subroutine which should be compiled by Fortran compiler. I have Intel Composer XE 2013 (Intel Compiler 14), which is able to build 32bit and 64bit applications. The general settings are OK because Abaqus Verfication says it can work with a sample subroutine. But when I want to do my own simulation it gives again the error: LNK1112: module machine type 'X86' conflicts with target machine type 'x64' When I changed abaqus_v6.env file (machine type in link_sl and link_exe from /machine:AMD64 to /machine:X86), the error again changed to export.def : error LNK2001: unresolved external symbol _forceCRTManifestCUR standardU.lib : fatal error LNK1120: 1 unresolved externals I first build an object file from my fortran code and the pass it to Abaqus. Maybe the object file is built for a 32 bit application type. I do not know how I can say ifort to build it for a 64bit application type. I searched but no luck. Can y...
finding the max number of iterations needed to get convergence for DLCONF
By Yasin O.3
On rare occasions, my function DLCONF from the IMSL library exceeds maximum number of function evaluations and I guess it is because my function is flat for some iterations. To avoid that problem, I am curious if there is a way to compute a maximum number of iterations needed to get a convergence as in DZBREN (another IMSL library)? So before calling DLCONF, I would like to compute the number of iterations needed to get a convergence and call some other routine if maximum number of iterations exceeds my preset value of MAXFCN. So I can avoid that particular iteration with a different routine and my program does not stop iterating? DLCONF so far is fast and I don’t want to entirely switch to a new subroutine. best
Character Declaration
By Blane J.8
In the topic "Declarations of Character Types" of the IVF users reference, it says: The form CHARACTER*(*) is an obsolescent feature in Fortran 95. I'm puzzled with the saying "CHARACTER*(*)". The question is elementary maybe, but does it mean the form of old FORTRAN standard " CHARACTER*(some_len_things)" or the * Length Character Syntax which is to be removed from the future standard ?
Subscribe to Forums

You can reply to any of the forum topics below by clicking on the title. Please do not include private information such as your email address or product serial number in your posts. If you need to share private information with an Intel employee, they can start a private thread for you.

New topic    Search within this forum     Subscribe to this forum


swapping in windows 10
By Tim Prince10
Although Visual Studio and other applications appeared to remain in working order after the (very time consuming) Windows Update installation of windows10 tech preview, none of my Intel software tools except Impi came up by themselves.  The culprit appeared to be multiple visible versions even though the latest had been installed with the choice to replace the previous. Impi also had 2 visible versions, but that didn't stop it from coming up. Un-installing everything possible and re-installing seemed to recover, but then I had to find  a working ifort.cfg elsewhere. The current free start-button (with default options) seems necessary to have reasonable options.  I couldn't see even how to run Visual Studio otherwise. I compared the working of Intel compilers with VS2012 pro and VS2013 free and didn't see much difference, although in CL compilations there are a few different missed optimizations in the two versions (on an early corei7 desktop).
Memory not released after DEALLOCATE
By Alireza B.3
 I am working as a software developer in a company with a code based on FORTRAN 90. Recently we have found that code was failing with lack of enough memory at some stage of the run. Tests have shown that using the "Deallocate" makes the pointers used "unassociated", but for some pointers the memory is not released. This could be a large amount causing the code to crash eventually. The situation becomes worse as we are allocating and deallocating the same pointers several times during the runtime. For some pointer we can see that during the "allocate" memory usage increases, but it doesn't decrease by using "deallocate"! We are using Intel 13.1 at the moment. I will appreciate greatly if I hear your comments and advice as to how to tackle the problem? Thanks, Alireza  
error #6405: The same named entity from different modules and/or program units cannot be referenced.
By Todor K.6
Hi, I am getting the error message from the title when compiling the code in which there are many modules having the initialisation procedures with the same name, init. Normally, when the various modules use each other, I mask those init procedures with use somemodule, forgetme => init. However, intel fortran compiler 13.1.3 20130607 fails to compile it and, what is worse, it is not easy to say where exactly the error originates from, since it is issued from some temporary .i90 file the compiler made as it went about its business. Both ifort 15.0.0 and gfortran 4.9.1 are able to compile the code without issues. However, I would like to be able to use 13.1.3 compiler too. Is there any way to do this, without modifying the code itself?
forrtl: severe (41): insufficient virtual memory
By Amit P.3
Hi, While running GSI application global test for "T574" resolution it gives me below error message: ----------------------------------------------------------QUOTE------------------------------------------------------------------ forrtl: severe (41): insufficient virtual memory Image              PC                Routine            Line        Source gsi.exe            0000000000434B9F  Unknown               Unknown  Unknown gsi.exe            00000000004A88C2  Unknown               Unknown  Unknown gsi.exe            0000000000A6E63A  Unknown               Unknown  Unknown gsi.exe            0000000000412B99  Unknown               Unknown  Unknown gsi.exe            00000000004078E3  Unknown               Unknown  Unknown gsi.exe            0000000000405B09  Unknown               Unknown  Unknown gsi.exe            0000000000405A96  Unknown               Unknown  Unknown libc.so.6          00002BA355A67CDD  Unknown               Unknown  Unknown gsi.exe            00000...
coarray problem with allocatable array and derived types
By John D.7
Hi, I added some code which either segfaults or prints the wrong result (ifort 15.0.2, Intel MPI 4.1.3.049). It should work, as far as I understand the standard, so I'm assuming that it's a compiler bug. Any help is appreciated, John
Retrieving a value from an array to use it in an equation, using column value as index
By bhvj3
Hi, I am trying to retrieve a value from an array, using column value as index, to select the corresponding value from a specified row, and use it in an equation. Attached is a portion of the array. In an attempt to do this I am trying to create another subroutine (with the arguments as row-i and column-j)  for this, and then call it in the equation, I am going to use. In the subroutine, I tried to read the complete array into temp (i,j). Is this the right approach, or would there be an efficient way? I also checked the documentation, but I didn't find Fortran inbuilt functions (also tried to look for lookup function). Any suggestions or pointers in this regard would be greatly helpful. Thank you.
ifort compiler version specific seg fault error
By conor p.18
Hello, I am receiving a very strange segfault that seems to depend on the version of ifort I am using. I am including the subroutine that is producing the segfault. I have ran the code with a number of different compiler versions. Some produce a segfault, and some do not. At first I thought this might be a heap/stack issue since it didn't segfault with gfortran, so I had -ulimit -s unlimited for all these runs. This code does use a MIC, although the subroutine under question does not yet (I had commented out all openmp and offload directions), and some compilers produced some warning. I included them, just in case. Code was compiled with no optimizations. If you have any suggestion, I would greatly appreciate it. I am extremely perplexed. This is part of a much larger molecular dynamics code, so I am hesitant to post the whole code. But let me know if thats necessary. 15.0.1.133, no segfault. completed whole code successfully x86_64-k1om-linux-ld: warning: libimf.so, needed by /apps...
ICE when moving parameterized derived types into different modules
By oysteinolsen2
Hi, I have attached two files. They contain basically the same code. array_pdt2.f90 compiles, array_pdt.f90 fails with: $ifort array_pdt.f90 fit_lookup: Line_seq_number (nil) was not found array_pdt.f90: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report.  Note: File and line given may not be explicit cause of this error. compilation aborted for array_pdt.f90 (code 1) array_pdt.f90 have the same parameterized dervied types as array_pdt2.f90, but they have now be placed in different modules. array_pdt.f90 compiles if I comment out certain lines, which are described in the code. This is with ifort version 15.0.2 on openSUSE 13.2. Best regards, Øystein        
Subscribe to Forums