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

More Tech Articles

Mapping of Intel® MPI Library versions to bundle suites
By Gergana Slavova (Intel)Posted 08/28/20140
Introduction: Mapping the Intel® MPI Library numbers to specific suites and update versions Intel® Parallel Studio XE 2015 Update 1 Cluster Edition (released 26 November 2014) Intel® MPI Library 5.0 Intel® Registration Center Activation Date (yr.mo.day) Windows Version / build Linu...
Selective Use of gatherhint/scatterhint Instructions
By Rakesh Krishnaiyer (Intel)Posted 02/20/20140
Compiler Methodology for Intel® MIC Architecture Selective Use of gatherhint/scatterhint Instructions Overview The -qopt-gather-scatter-unroll=<N> compiler option can be used to generate gatherhint/scatterhint instructions supported by the coprocessor.  This is useful if your code is doi...
New Fortran switch allows use of abbreviated syntax to examine parent fields of an extended derived type when debugging
By Roland Wiele (Intel)Posted 01/17/20140
Examining the parent fields of an extended derived type in the gdb* or Microsoft Visual Studio* debugger currently requires that you also list the parent name.  A new internal command line switch for the Intel(R) Fortran Compiler, /switch:fe_debug_use_inherit (for Windows*) or –switch fe_debug_us...
Vectorization Essentials
By Ronald W Green (Intel)Posted 12/06/20130
Compiler Methodology for Intel® MIC Architecture Vectorization Essentials Overview This chapter covers topics in vectorization. Vectorization is a form of data-parallel programming. In this, the processor performs the same operation simultaneously on N data elements of a vector ( a one-dimensi...
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


!dir$ loop count vs !dir$ parallel
By Kim Frankcombe6
I'm working through my old code to improve its performance and running GAP. The reports often suggest I add !dir$ loop count min(XXX) to the code. Although I reckon that more often than not the loop count will exceed XXX, I cant guarantee it. I have therefore added IF loops to the code along the lines of the following example Assume A and B are vectors of the same size   IF (SIZE(A) > 255) !DIR$ LOOP COUNT MIN(256)     B=A   ELSE     B=A   END IF This strikes me as pretty ugly and will have a small performance penalty as the IF loop is tested. Alternately I could write !DIR$ PARALLEL ALWAYS   B=A Is there a better way and which approach to coding is considered the best? Will the computation provide the wrong answer if I set loop count min  and at run time there are less iterations to do or will it just be inefficient? Cheers Kim
Problem installing XE 2015 - Intel.Misc.Utilities
By Mike K3
I have a problem with VS 2010 Win7 when installing w_fcompxe_2015.4.221.  After installation I cannot open any VS dialog.  Instead I get the following error message. "Could not load file or assembly 'Intel.Misc.Utilities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f4875dd4c8d7762f' or one of its dependencies.  The system cannot find the file specified." I've tried removing XE 2015 and re-installing, repairing VS and checking to see that I have the latest MS updates.  This did not help. I finally removed XE 2015 and re-installed XE 2013 with w_fcompxe_2013_sp1.5.239, and that solved the problem. Mike
Visual debugging of #define variable
By Daniel E.1
I have a line like this: STRUCT(2)%VAR = 1 I use fpp to make the code a little more readable with #define VAR  STRUCT(2)%VAR and now the code is VAR = 1 The preprocessor expands this to the full line and everything works fine. However, when I am debugging, I can no longer hold the cursor over "VAR" and see the value in a popup, nor can I put "VAR" in a watch window.  Is there a way to have the debugger know about expanding "VAR" like the preprocessor does?
LNK2001: unresolved external symbol XE 2015 in GENMOD
By Kim Frankcombe4
I recently upgraded from XE 2013 SP1 to XE 2015 (15.0.22) and with no changes to the code am getting LNK2001: unresolved external symbol errors from the Interface modules automatically generated by the compiler when using the -warn:all switch. Hopefully attached is a code snippet showing the problem along with a batch file to compile with from the 64 bit command line. The problem is relatively simple. My main program IPProc calls S/R AVERAGEIP PROGRAM IPPROC IMPLICIT NONE CALL AVERAGEIP() END AVERAGEIP contains a S/R AVERMED which dimensions an array using a variable declared in AVERAGEIP SUBROUTINE AVERAGEIP() IMPLICIT NONE INTEGER :: NRPTS RETURN CONTAINS ! even though this S/R is no longer called if I remove it the link error disapears   SUBROUTINE AVERMED()   REAL, DIMENSION(NRPTS) :: ZVEC   ZVEC = 0   RETURN   END SUBROUTINE AVERMED END SUBROUTINE AVERAGEIP The integer NRPTS is local to AVERAGEIP yet when I compile with-check:all -debug:full -traceback -warn:all I...
shell32.lib
By Fengbin X.5
Hi All, I am using Intel Visual Fortran Composer 2013 with Microsoft Visual Studio 2012 to build an exe file.  I got the following error message: 1 fatal error LNK1104: cannot open file 'SHELL32.LIB' Can anyone please share with me some ideas of how to fix this issue? Thanks, Fengbin
AUTOINVIKE will not execute more than once
By David B.8
I'm having a problem with executing a call to the Execute method of a Connection object more than once.  The first call executes fine but any subsequent calls just cause the program to stop execution.  The point the program stops is the "$$STATUS = AUTOINVIKE($OBJECT, 6, invokeargs)" statement in the $Connection_Execute function.  The $Connection_Execute function is contained in a module called "msado28" which was created with the Module Wizard.  The commandtext for the Execute method is merely a call to a SQL Server stored procedure called Storetest which takes one string parameter and has been tested within SQL Server Management Studio. The main program code is as below: program storetest  use msado28  implicit none    integer(int_ptr_kind()) COMcnn  character*120, parameter::COMcnnstr='Provider=SQLOLEDB; Data Source=mySQLServer; Initial Catalog=myDB; Trusted_Connection=Yes'  integer(4) COMrtnstatus  integer(int_ptr_kind()) COMexestatus  type(variant) rst  integer*4 i  integer(4)...
problem with Installing XE 2015
By Thomas C.4
I have been running a thread with ...forums/intel-software-development-products-download-registration-licensing and have come up against a problem such that I have been advised to start a new thread with fortran-for-windows ... Under the instruction of registration-licensing I have downloaded Intel Software Development Products for Windows, Education, have been given a serial number and have installed the software, or have tried to ... My need is to compile .dll files from fortran subroutines with the command ifort /DLL /libs:static /threads jobname.f. But I am not able to access any of the fortran capabilities of the software. The first page of the attached powerpoint file shows a screendump of the Intel folder within Program Files (x86) and also of what I see under the shortcut icon. The second page shows the 'getting started' page of Parallel Studio XE 2015 with the initialisation instruction that I have followed. It also shows the cd window with the error message 'Visual Studio ...
Coarrays on Windows
By arjenmarkus3
Inspired by a posting on comp.lang.fortran I looked up whether the Intel Fortran compiler could "do" coarrays on Windows. It turns out it can indeed, at least as far as building a simple program is concerned. But I ran into a problem when I tried to run it: > .....\mpiexec hello.exe User credentials needed to launch processes: account (domain\user) [.....]: password: Error connecting to the Service [mpiexec@....] ..\hydra\utils\sock\sock.c (270): unable to connect from "mymachine" to "mymachine" (No error) read from stdin failed, error 6. [mpiexec@....] ..\hydra\tools\demux\demux_select.c (78): select error (No such  file or directory) [mpiexec@....] ..\hydra\pm\pmiserv\pmiserv_pmci.c (480): error waiting for event [mpiexec@....] ..\hydra\ui\mpich\mpiexec.c (945): process manager error waiting for completion Note: I had to invoke mpiexec explicitly because another program called mpiexec got in the way (via the PATH variable). What can I do to solve this error? Regards, Ar...
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


Fortran Wavelet Transforms
By Cyril N.1
Hey guys,   I am trying to find some online library or code that computes Daubechies wavelet coefficients, for image processing purposes (horizontal, vertical and diagonal detail coefficients). Is there any algorithm you are aware of or have used in the past?   Thank you! Cyril Nader 
FORTRAN: Opening and reading data from a network location
By Muhammad N.3
I am trying to run a simulation using FORTRAN. I have large input data at server A and I want to read input files from server A and run my simulation on server B. I am using a FORTRAN subroutine to assign input into a BCs array. I want to read input file from server A via FTP and assign them into BCs array on server B. I will be grateful if you can suggest me some ways to do so. Thanks The code I have tried so far is as follows but it gives error. FILENAME="//192.255.8.152/home5/nadeem/inflow/Inflow_001" OPEN(81,FILE=FILENAME,FORM='UNFORMATTED',STATUS='OLD') READ (81)((UBC3(1,J,K),J=1,N2M),K=1,N3M) ! INLET BOUNDARY CLOSE(81)
cannot find 'ifort' after installing parallel_studio_xe_2015_update3 on ubuntu
By Weikang D.2
I am an university student. I have just downloaded and installed the parallel_studio_xe_2015_update3. But in the directory '/opt/intel/composer_xe_2015/bin', I only find 'icc', but not 'ifort'. Have I installed the wrong file? According to the website, the parallel studio should contain both C and Fortran in it. Or am I looking at the wrong directory? I have checked several places but still cannot find 'ifort'. Please help with this. Thank you very much!  BTW, my operation system is 'ubuntukylin-14.04.2-desktop-amd64' and I am pretty new to Linux.
Coarray implementation of QR decomposition?
By opmkl0
I am wondering if there exists a coarray implementation of the QR decomposition somewhere, in library or source form. We are probably years away from a true coarray implementation of LAPACK, for instance, but in the meantime I am wondering if there is anything to play with. Thanks for any tips/pointers there!
Complex logarithm
By Christoph F.8
Hello all, according to the "Intel Fortran Libraries Reference", the natural logarithm of a complex number should give complex values x+i*y with -pi < y <= pi. But: write(*,*) log((-1d0,0d0)),log(-(1d0,0d0)) yields the following output  (0.000000000000000E+000,3.14159265358979)  (0.000000000000000E+000,-3.14159265358979) although the results should be identical and the imaginary part should NOT be -pi. I see this with versions 12 and 15. (In the final version of the code, where several complex logarithms are added up, the compilers behave differently, however, leading to correct results with v12 and incorrect results with v15. This complexity is lost after simplifying it to the above example.) Thank you. Christoph  
Bad results from assignment to allocatable array (with realloc_lhs)
By Neil Carlson1
I've attached a small example that clearly demonstrates that bad results are obtained from assignment to an (unallocated) allocatable array.  I am using the required realloc_lhs switch.  The problem exists with both Intel 14.0.3 and 15.0.2.   A key ingredient to the problem seems to be that the rhs of the assignment is an elemental type bound function referenced through a derived type array.
Intel 14 and 15 compiler bug
By Neil Carlson1
I've attached a very small example that exposes a bug in 14.0.3 and 15.0.2.  In the example, a module declares a derived type and a F2003 structure constructor for it.  In a later procedure the module is USEd and the type referenced, but the compiler complains incorrectly that the type is not known.  The error goes away if the structure constructor is not defined.
Compiler runs into problem compiling F77 code
By Jason Z.1
I'm trying to compile Fortran 77 code (T-matrix code) on a Linux system using Intel Parallel Studio XE 2015 for Fortan and I have the recurring problem of too many errors. I'm using: ifort ampld.new.f and the errors that come up are: ampld.new.f(1): error #5149: Illegal character in statement label field  [T] This test result was calculated by the code in its ^ ampld.new.f(1): error #5149: Illegal character in statement label field  [h] This test result was calculated by the code in its -^ ampld.new.f(1): error #5149: Illegal character in statement label field  [i] This test result was calculated by the code in its --^ ampld.new.f(1): error #5149: Illegal character in statement label field  [s] This test result was calculated by the code in its ---^ ampld.new.f(1): error #5118: First statement in file must not be continued This test result was calculated by the code in its -----^ ampld.new.f(4): error #5149: Illegal character in statement label field  [I] ICHOICE=1  ...
Subscribe to Forums