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

Nessun contenuto trovato

More Tech Articles

Webinar: Get Ready for Intel® Math Kernel Library on Intel® Xeon Phi™ Coprocessors
Di Zhang Z (Intel)Pubblicato il 12/05/20121
Intel recently unveiled the new Intel® Xeon Phi™ product – a coprocessor based on the Intel® Many Integrated Core architecture. Intel® Math Kernel Library (Intel® MKL) 11.0 introduces high-performance and comprehensive math functionality support for the Intel® Xeon Phi™ coprocessor. You can downl...
Intel® Compilers for Linux*: Compatibility with GNU Compilers
Di om-sachan (Intel)Pubblicato il 09/25/20122
This paper describes compatibility between the Intel® Compilers for Linux* and the GNU* compilers in terms of source, binary and command-line compatibility. The Intel® C++ and Fortran Compilers help make your software run at top speed on Intel's platforms, including those based on IA-32 and Inte...
The Heterogeneous Programming Model
Di Ronald W Green (Intel)Pubblicato il 09/09/20120
Compiler Methodology for Intel® MIC Architecture The Heterogeneous Offload Model Overview In this chapter, we examine the Intel Compiler Heterogeneous Offload programming model for the Intel® MIC Architecture. Topics The Intel® C/C++ Compiler and Intel® Fortran Compiler support a programming...
Native and Offload Programming Models
Di Ronald W Green (Intel)Pubblicato il 09/09/20120
Compiler Methodology for Intel® MIC Architecture Native and Offload Programming Models Overview This chapter details the various programming models available on the Intel® MIC Architecture. These include the Native programming model, the Heterogeneous Offload model, and the Cilk_Offoad model. ...
Iscriversi a Articoli Intel Developer Zone

Supplemental Documentation

Nessun contenuto trovato
Iscriversi a Articoli Intel Developer Zone

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


What does "Service & Support Renewal Pre-expiry" mean
Di Tai Q.1
My research group is now considering buying a IVS compiler and install it to one computer. Then I found the cheapest one is: Intel® Parallel Studio XE Composer Edition for Fortran Windows - Named-user Academic (Service & Support Renewal Pre-expiry) [Electronic Delivery] It is only $199. So what does Service & Support Renewal Pre-expiry mean? My group will use it to run some short fortran codes. So any suggestions if we buy this one?
Bug with DENYNONE specifier?
Di opmkl2
For the code below I am using Intel Fortran 14.0.5.239 (64-bit) on Windows 7. Multiple images attempt to write (in orderly fashion) to a file that has been created with the SHARE='DENYNONE' attribute; and yet only the last image writes to it. I may be overlooking something here, but this behavior puzzles me. PROGRAM COARRAY_FILE_WRITE USE ISO_FORTRAN_ENV IMPLICIT NONE INTEGER :: I_IMAGE LOGICAL :: LOCK_IS_ACQUIRED TYPE(LOCK_TYPE) :: FILE_LOCK[*] ! Image 1 creates the shared file. IF (THIS_IMAGE()==1) THEN OPEN(UNIT=200,FORM='FORMATTED',FILE='Test.txt',STATUS='REPLACE',ACTION='READWRITE',SHARE='DENYNONE') END IF SYNC ALL ! Other images open the (same) shared file. IF (THIS_IMAGE()>1) THEN OPEN(UNIT=200,FORM='FORMATTED',FILE='Test.txt',STATUS='OLD',ACCESS='APPEND',ACTION='READWRITE',SHARE='DENYNONE') END IF SYNC ALL ! All images write something in the shared file, using a lock to prevent simultaneous writes. LOCK_IS_ACQUIRED = .FALS...
Gather strategy for coarrays
Di opmkl7
In the trivial code below, all images perform some task, which output needs to be gathered on the first image (for further processing, for instance). Two strategies are implemented: the first one consists in having image 1 go hunt for the results on other images; the second one consists in all images writing to the local coarray of image 1. My questions are the following: Is one of these two approaches more efficient over the other one? Intuitively one might say (2) ... but on the other hand nothing is really intuitive  or obvious with parallel codes... Is the second one even standard compliant? In particular, I have in mind this paragraph in the Intel Compiler Fortran 14 documentation: "If a variable is defined on an image in a segment, it must not be referenced, defined, or become undefined in a segment on another image unless the segments are ordered.". Line 36 of the code forms a segment that is not ordered when executed by the code images, and yet these access the same array c...
Strategy for merging file output from multiple coarray images?
Di opmkl3
I am looking for a strategy to implement the merging of file output when a coarray program is executed. Assume I have a code being executed on multiple images. Ideally, the overall behavior of the code and some intermediate results would be documented in a small number of log files (possibly just one). At regular intervals (but not too frequently), the slave images would add content to these *.log files. I am a bit at a loss to find an elegant solution to this problem, and if somebody here could share their experience with this I would be very grateful!
Wired Performance
Di Blane J.6
I happen to test the lower_limit<=variable<=upperlimit form of selection statement in IF block, and it seems that the statement is always true even if the upperlimit is little than the lower_limit, why is that ? For example: integer :: var = 10 if(9 <= var <= 11) write(*,*) "Yes" ! When execute, "Yes" is printed out. if(11 <= var <= 9) write(*,*) "Yes Again" ! When execute, "Yes Again" is printed out. 
ERROR when using LCONF and L2ONF
Di Nga N.13
Hello, I would like to ask for help. When running a program using LCONF and L2ONF, I encountered an ERROR: ERROR 5 FROM LCONF.  The equality constraints and the bounds on the variables are found to be inconsistent. I checked the program with Matlab and there was no feasible solution.  I use LCONF in a loop for 12 cases. It worked well with the first 8 cases and there was above ERROR with 9th case (I knew that this case does not have optimal solution). When encountering the ERROR, the program crashed and stopped working at case 9th. Hence, case 10th, 11th,12th will not be run. Would you please let me know how I can make the program keep working with case 10th, 11th, 12th without stopping because of ERROR of case 9th? Thank you so much.
help with older project - converting to new compilers
Di wgrimes@cea-az.com2
Hi, Not sure where to post this....so starting here.  I have a solution that combines Intel FORTRAN with Visual studio, specifically some C and C++ code.  Last time I compiled, I used older versions...running on Virtual XP machine on my Win7 computer. I'm looking for help in migrating over to new system....really should not take more than a few hours (famous last words)....and I'm willing to pay for help.  Is there anyone out that that is interested or knows where I can find someone with Intel FORTRAN and Visual C experience?? Thanks. Wes wgrimes@cea-az.com
Bug(?) with elemental function and allocatable actual argument
Di Wolf W.2
Hello! I am getting some odd results, when i try to use the allocatable return value of a function directly as an argument of another function. Is this behavior intendet, or is this usage of the elemental-keyword false? I use the 15.0.2 compiler. program main implicit none character(4) :: test_char = "Test" character(:), allocatable :: temp_alloc character(10) :: temp_fixed ! This should be the result ! 'Test\foo' write(*,*) test_char // "\" // foo() ! This is the result ! 'foo f .' write(*,*) concat(test_char, foo()) ! It works as intendet, when the result of 'foo' is stored in a variable temp_alloc = foo() write(*,*) concat(test_char, temp_alloc) temp_fixed = foo() write(*,*) concat(test_char, temp_fixed) contains function foo() character(:), allocatable :: foo foo = "foo" end function foo ! There are no problems without the 'elemental'-keyword elemental function concat(var1,var2) result(var_result) ch...
Iscriversi a Forum

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


Intel 15.0.2 OMP Runtime Error
Di LM15
I received the following error while running a Fortran code in parallel: OMP: Error #13: Assertion failure at kmp_runtime.c(1592). OMP: Hint: Please submit a bug report with this message, compiler and run commands used, and machine configuration info including native compiler and operating system versions. Faster response will be obtained by including all program sources. For information on submitting this issue, please see http://www.intel.com/software/product/support/. I am not able to share the source code but my configurations are as follows: Compiler Version: 15.0.2 Native System Compiler: gcc-4.4.7 MPI Version: OpenMPI-1.8.2 OS: RHEL 6.5  2.6.32-431.20.3
ifort 15: Internal compiler error
Di Anton S.2
ifort -c -coarray cgca_m1co.f90 ifort -c -coarray -debug full -free -fPIC -warn all  cgca_m2stat.f90 cgca_m2stat.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 cgca_m2stat.f90 (code 1) make: *** [cgca_m2stat.o] Error 1 ifort --version ifort (IFORT) 15.0.0 20140723 the files: http://sourceforge.net/p/cgpack/code/HEAD/tree/head/cgca_m2stat.f90 http://sourceforge.net/p/cgpack/code/HEAD/tree/head/cgca_m1co.f90   With some time I can narrow it down. For now, please confirm you're getting this error too. Thanks Anton
Mac OS X, Problems passing COMMON with a shared library.
Di Michael B.10
I have the program: PROGRAM main   USE GLOBAL   IMPLICIT NONE   CALL open_f()   print*,'In test',flags(1), ACC_TRUNC_F END and I create a shared library that contains the GLOBAL module: MODULE GLOBAL   IMPLICIT NONE   INTEGER :: flags(1) !DEC$ATTRIBUTES DLLEXPORT :: /FLAGSN/   COMMON /FLAGSN/ flags   INTEGER :: ACC_TRUNC_F   EQUIVALENCE(flags(1), ACC_TRUNC_F) CONTAINS   SUBROUTINE open_f()     IMPLICIT NONE     flags(1) = 99     print*,'In F',flags(1), ACC_TRUNC_F   END SUBROUTINE open_f END MODULE GLOBAL And when I run the program the values print correctly in the subroutine, but when I print it in the main program the values are zero:  In F          99          99  In test           0           0 I'm using intel 15 on Mac OS X 10.9. It works if I build a static library and it works building shared on Windows. What I'm I missing? Misc. information: To compile the module libtool: compile:  ifort -g -check all -I../../src -I../../fortran/src -c H5fortran_types.f90 -o ...
change run time just for a line
Di diedro20
Dear all, I wrote a very complex code. I mean a code with many subroutines and functions. I used to worked fine. Last few days I noticed that the code became very very slow. After that I noticed that this depends by a single line. If I comment this line the code became very fast again. To be more clear, this is a peace of may code: CALL PDEPositivity(status,QR) IF(status.LT.0) THEN QR = QQ(:,jp) ENDIF VL(1) = QL(2)/QL(1) VL(2) = QL(3)/QL(1) VR(1) = QR(2)/QR(1) VR(2) = QR(3)/QR(1) UU = 0.5d0*(VL+VR) ! VL=0.d0 VR=0.d0 UU=0.d0 VPL=0.d0 VPR=0.d0 ! FL = PDEflux(nVar,UU,QL(:)) ...
internal error: derived type containing parameterized derived type
Di Nathan W.2
In my case, I have a standard derived type that contains a parameterized derived type. I am not certain that this is legal, but at any rate compiling gives an internal error. I have attached simplified source files which produce the error. The standard derived type is defined as follows: module type_one use type_two !contains parameterized derived type (two_type) implicit none type, public :: one_type type(two_type(3)) :: two contains final :: one_destructor end type one_type private contains subroutine one_destructor(self) type(one_type), intent(in) :: self end subroutine end module type_oneMac OS X 10.2.2 ifort (IFORT) 15.0.2 20150121
Cannot find ifort XE 15 in Xcode6.2
Di Johnson Y.1
Hello, I've installed ifort 15 (and Xcode6.2 with command line tool) and have followed the instructions on https://software.intel.com/en-us/node/524635. to build a fortran file. When I'm suggested to add build rule and to select Intel® Fortran Compiler XE 15.0, I cannot find it under Using. I've tried to reinstall  Intel® Fortran Compiler XE 15.0 and restart Xcode but it still doesn't work.
Aggregate profiling data collected by -profile-functions in the compiler flag
Di aketh t.0
Aggregate profiling data collected by -profile-functions in the compiler flag
Sourced allocation problems in 15.0.1
Di Ferdinand T.5
Dear all, the 15.0.1 ifort compiler produces errors on the following snippets. Are these errors still present in 15.0.2 ? If someone can give advice, this would help me to decide whether I have to check / change all such "sourced allocation assignments" or just wait for our IT to upgrade the compiler. Snippet 1: Sourced allocation into polymorphic array Source is allocated function result program p implicit none type :: t logical :: is_not_empty ! seg. fault without end type class(t), dimension(:), allocatable :: a allocate(a, source=make_alloc()) print *, allocated(a) ! T print *, size(a) ! 0 (wrong) contains function make_alloc() result(a) type(t), dimension(:), allocatable :: a allocate(a(5)) print *, size(a) ! 5 end function end program  Snippet 2: Derived type t has polymorphic component Sourced allocation into array of type(t) fails program p implicit none type :: s logical :: is_not_empty end type type :: t ! CLASS is the problem here ...
Iscriversi a Forum