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

OpenMP Related Tips
By AmandaS (Intel)Posted 11/25/20130
Compiler Methodology for Intel® MIC Architecture OpenMP Related Tips OpenMP* Loop Collapse Directive   Use the OpenMP collapse-clause to increase the total number of iterations that will be partitioned across the available number of OMP threads by reducing the granularity of work to be done...
Resolving problem when building HDF5* with Intel® compiler 14.0
By Yolanda Chen (Intel)Posted 11/12/201310
Introduction To build the latest HDF5* with Intel® compiler 14.0, a segmantation fault occurs when running "make check". This article is to provide a solution in resolving this issue. The information in this article is assuming you already undertand how to build HDF5* with Intel compilers by read...
Getting Started with Intel® Composer XE 2013, New User Compiler Basics
By AmandaS (Intel)Posted 11/07/20130
Compiler Methodology for Intel® MIC Architecture Getting Started with Intel® Composer XE 2013, New User Compiler Basics Overview Modern compilers can be invoked with hundreds of options. From these, what are the essential set of options needed by the typical application programmer? This chapter h...
Memory Allocation and First-Touch
By AmandaS (Intel)Posted 11/07/20132
Compiler Methodology for Intel® MIC Architecture Memory Allocation and First-Touch Memory allocation is expensive on the coprocessor compared to the Intel® Xeon processor so it is prudent to reuse already-allocated memory wherever possible. For example, if a function gets called repeatedly (say...
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


How to convert an O file to fortran source file
By Vahid E.5
Hi all, I have received from somebody else a Fortran object file (created under Linux). Can I convert it back to the source file? (I have Windows 7)
XE 2015 Installer has no options
By Andrew Smith2
The latest installer no longer gives us options for which version of Visual Studio to install on. In fact it presents no options at all. VS version was a useful feature because it allowed me to maintain old and incompatible compiler versions on older VS versions, keeping separation without needing multiple workstations. When will we get better support for older compiler versions, such as being able to set compiler version as a solution property rather than a Visual Studio property ?
Command prompt and Visual Studio 2010
By Carlo G.7
I downloaded Intel Parallel Studio XE 2015 composer edition for Fortran, evaluation 30 days. My OS is Windows 8.1. I cannot find the path to the command prompt with intel compiler (both IA-32 and Intel 64) along with Microsoft Visual Studio 2010 Shell. Any help would be highly appreciated, thanks!  
Help system in VS2012 screwed up?
By Anthony Richards7
I have Intel Fortran Composer 2015.2.179 installed in VS2012 pro. I an not a regular user and have not used it for a while and on opening it and hoping to do a Help search for help on some Windows API functions, I find I can only select Intel Compiler and Libraries help and its search is restricted to Fortran stuff. If I type in 'SendMessage' or any other Windows API function name or Windows resource name I get a null return. I recall in the past having access to a much wider search ability, so I am wondering if my help system has been screwed up since I installed the latest composer version. I recall in the past being able to choose the help system before, but that option appears to be missing from the Help menu in VS2012 now. Please can you update me on how I might be able to merge the Intel Fortran help with the wider API help that typically was available in the old Visual Studio Compaq Visual Fortran Help.
What is the effect of indirect recursion on ELEMENTAL procedures, especially finalizers?
By FortranFan3
The following simple code involving a linked list compiles with no errors or warnings with compiler 2015, update 2.  It seems to execute without any run-time exceptions as well. However, you will notice the code in module m invokes a finalizer for the derived type for linked list (node_t) that has indirect recursion via clear_node_t; this is to work around the restriction in the standard that both RECURSIVE and ELEMENTAL attributes cannot be applied with subroutines. What are the risks associated with such a workaround? Colud the compiler do a static allocation (non-automatic) for allocatable array foo in program p and could the indirect recursion then possibly lead to a failure of some sort under some circumstances?  Note, however, I have not noticed any such issues - no memory leaks are detected nor any other run-time exceptions; I tried /heaparrays0 also. module m implicit none private type, public :: node_t private type(node_t), pointer :: m_chi...
error #8055
By Tai Q.1
Error 8055 occurred in my code. program main integer,allocatable::a(:) integer n n=4 allocate(a(n)) call func(a,n) endprogram subroutine func(a,n) integer n integer,target::a(n) a(1)=1 endsubroutineError    1     error #8055: The procedure has a dummy argument that has the ALLOCATABLE, ASYNCHRONOUS, OPTIONAL, POINTER, TARGET, VALUE or VOLATILE attribute. Required explicit interface is missing from original source.   [A]    The above is just demonstration I wrote for my original code.  
15.0.2.179 and Multithread libraries problem
By Jauch1
Hello, Today I started to have a problem when trying to run my code. The code must read an HDF5 file and at some point, return the biggest value on one specific dataset. The dataset is set to 0.0 on all its values, but the value found was much bigger. I try to run the code in DEBUG to find the error, as there was some changes in the code since the last time I compiled, but in DEBUG, the error goes away. I thought that could be a problem with OpenMP, so I disabled the OpenMP on Release mode. But the error was still there. After many tests, I could determine that the error only happens when I use the Multithread option in the Compiler Runtime Libraries. Even in Release Mode, if I change it to Debug Multithread, the program seems to works as supposed, like when in Debug mode. Could you give me some advice on how to look to this problem? I'll try to compile the code without changes and than add the different pieces of code until I find the culprit, but I would like to know if a brok...
demo code specifically dll_shared_data
By steve k.1
I recently downloaded composer edition XE 2015 update 2 for trial and I am trying to get 2 programs to share data, I have tried several things that I saw online to accomplish this, the 2 programs both will link but they do not share the data (i.e. the variable has one value in one program and a different value in the other)... I specifically have been trying a dll and the !DEC$ ATTRIBUTES DLLEXPORT (and DLLIMPORT) method  I see there is a sample program called dll_shared_data taht is supposed to illustrate this functionality, but this solution does not appear to be included in what I downloaded... can anyone post this code snippet or tell me where it is available? Thanks
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


Derived type IO with private DT array component
By Thomas D.12
I've run into a possible bug with derived type IO when I have a derived type with a private component array of derived types. I've included a example code snippet below that should reproduce the problem (I'm using ifort version 14.0.2.114). To summarize the problem, when I try to write my derived type using a formatted write statement it output the public component of the derived type, as expected, and then it outputs the first n-1 values of the component derived type, which is both private and not called in the main formatted write statement. In the sample code below the write statement should output: 1.0000but instead outputs 1.0000 2.0000 2.0000 2.0000 2.0000Sample code: module DTIO implicit none ! derived types: type T1 private real :: x contains procedure, private :: T1_write_formatted generic :: write(formatted) => T1_write_formatted end type T1 type T2 private real :: x type(T1) :: y(5) contains proced...
maximal record length for integer-size 64
By Marius B.5
Hello, I have the following problem with ifort 15.0.2.164 Build 20150121. Even when using "-integer-size 64" I can not create record lager then integer(4) (2^32-1).  For the older release of ifort Version 13.1.0.146 Build 20130121 this works just fine. For example program recltest   implicit none      integer :: reclsize      reclsize=2**31-1   write(6,*) reclsize   open(unit=123,file="test.dat",access="direct",recl=reclsize,form="unformatted")   close(123)      reclsize=2**31   write(6,*) reclsize   open(unit=123,file="test.dat",access="direct",recl=reclsize,form="unformatted")   close(123) end program recltest the second open statement works with ifort 13  ( using ifort -integer-size 64  -assume byterecl test.f90 ), while it does not work with ifort 15, giving me the following error message forrtl: severe (118): The 'RECL=' value in an OPEN statement for unit 123, file test.dat, exceeds the maximum allowed for the file's record type. Is this a bug or am I doing somethi...
creeping cpu time
By a b.8
  Hello.   I have a fortran multithreaded (omp) code compiled with ifort that runs 24/7 doing fluid flow calculations. It uses about 6GB of ram and it is run as a series of self-submitting jobs. The processor is an i7 3930k with 16GB ddr3 @ 1600mhz and the OS is opensuse but run in konsole. No other application is run on this system and it not connected to the net.   Each one of the series of these jobs does a virtually identical number of operations - exept when there is an occasional database dump - so in theory the cpu time used should be about constant for each of the segments of the run,   The curious thing is that the code runs the fastest after a reboot  and over the subsequent runs the cpu time used creeps up. Over 2 days the cpu has increased by about 6%. Isolated runs have occured being  ~ 20% slower than average, Are there any explanations why there this cpu creep? thanks -- ps: timing is measured with omp_get_wtime(). also the linux time is used to time the executable.  
Xcode 6.2
By Izaak Beekman2
Is it safe to upgrade to Xcode 6.2 or will this break the installed compiler? If it is safe is there anything special I need to do? TIA -Zaak  
I/O Question
By bhvj7
Hi    I have an input output question. I am trying to read the values as in the attached text file, until end of file, then multiply the last value (from beginning to end) by a coefficient (example 0.5) and output the table in the same format but with the modified last column. Attached herewith is a test program which I tried to write for this, which appears to go in an infinite loop. Any pointers and suggestions so as to output the file in the same format would be greatly helpful. Thank you.
Downcast function result without copy
By Ferdinand T.19
Problem: A subprogram 'make_child' returns a variable of type 'child' which is an extension of the 'parent' type. 'make_child' itself gets the 'child' from a generic factory, which produces the 'child', but declares it as 'parent' type. (Note: this is not about human genetic engineering, it's a Fortran question...) Question 1 (Fortran Standard): How can 'make_child' downcast the 'parent'-type into the result declared as 'child', without creating a copy (large data!) ? What I tried so far: Sourced allocation within a select-type environment -> no solution (must copy the data & leave the select-type-env. in order to return from 'make_child') move_alloc works in ifort 14.0.3 and ifort 15, but is not standard-conforming (same kind of 'from' and 'to'). Question 2 (Intel): In case I use move_alloc nevertheless (if there is no better answer to Question 1), will this non-conforming code compile and work correctly on all future version with ifort? Code: Here, make_child is a subrout...
OpenMP & Shared derived array
By criswu2
type :: zmplx2d complex*16,pointer:: val1(:,:),val2(:,:) end type type(zmplx2d),dimension(:),allocatable:: acamats !$omp parallel do private(ilo,jlo,snedges,fnedges, & ies,ief) shared(acamats) & schedule(guided) do j = Levindx(i), Levindx(i+1)-1 ilo = edgeips(2,j) jlo = edgeips(1,j) snedges = igall(jlo+1)-igall(jlo) fnedges = igall(ilo+1)-igall(ilo) ies = igall(jlo) ief = igall(ilo) call farboxInteraction2(snedges,fnedges,acacomps(j), & acamats(j)%val1, & acamats(j)%val2,ztmp1(ief),ztmp2(ies)) enddo I want to parallelize the do-loop using OpenMP.   the result of the codes is not correct.  It seems OpenMP don't support derived types. Anyone knows why and how to solve this problem ?   
Another catastrophic error: **Internal compiler error
By hiroshi-murakami3
$ ifort -v ifort version 15.0.0 $ ifort -c -fast -openmp test.F90 test.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 test.F90 (code 1)   Note, If you undefine the macro flag "BUG_OCCUR", the compiler error disappears. OS: CentOS-6.x
Subscribe to Forums