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

Kein Inhalt gefunden

More Tech Articles

Expectations for User Source Code Changes
Von AmandaS (Intel)Veröffentlicht am 11/25/20130
Overview Although most codes can run in the Intel® Many Integrated Core Architecture (Intel® MIC Architecture) with little to no changes, to run EFFICIENTLY may require changes in user source code. This chapter examines algorithmic some general topic related to user source code changes that can en…
Getting Started with Intel Compiler Pragmas and Directives
Von AmandaS (Intel)Veröffentlicht am 11/25/20130
Compiler Methodology for Intel® MIC Architecture Getting Started with Intel Compiler Pragmas and Directives Overview Compiler options allow a user to control how source files are interpreted and control characteristics of the object files or executables.  Compiler options are applied to an enti…
Advanced Optimizations for Intel® MIC Architecture
Von AmandaS (Intel)Veröffentlicht am 11/25/20130
Compiler Methodology for Intel® MIC Architecture Advanced Optimizations Overview This chapter details some of the advanced compiler optimizations for performance on Intel® MIC Architecture AND most of these optimizations are also applicable to host applications. This chapter includes topics such…
Advanced Optimizations for Intel® MIC Architecture, Low Precision Optimizations
Von AmandaS (Intel)Veröffentlicht am 11/25/20130
Compiler Methodology for Intel® MIC Architecture Advanced Optimizations for Intel® MIC Architecture, Low Precision Optimizations Overview The latest Intel Compilers (released after the 13.0.039 Beta Update 1 release) do not generate low-precision sequences unless low-precision options are added …
Intel Developer Zone Beiträge abonnieren

Supplemental Documentation

Kein Inhalt gefunden
Intel Developer Zone Beiträge abonnieren

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


Unhelpful error message array section assignment
Von David White3
I am attempting to assign an array section, e.g. X(1:N) = Y(1:N) In the situation that Y has not been declared, the compiler only seems to look at the RHS of the statement, and so assumes that Y is intended to be of CHARACTER type, failing to recognize that the notation also could be an array section.  Since the destination is an array section, then error message 6514 is misleading. Error 1  error #6404: This name does not have a type, and must have an explicit type.   [UNDECLAREDVAR] C:\Open\kwc54dw\Dev\Winyldmd\trunk\ymd_commands\Show_Stage.f90 107 Error 2  error #6514: A substring must be of type CHARACTER.   [UNDECLAREDVAR] C:\Open\kwc54dw\Dev\Winyldmd\trunk\ymd_commands\Show_Stage.f90 107 Error 3  error #6303: The assignment operation or the binary expression operation is invalid for the data types of the two operands.   [UNDECLAREDVAR] C:\Open\kwc54dw\Dev\Winyldmd\trunk\ymd_commands\Show_Stage.f90 107  
Error# 6634 and 8284 and 7710
Von James S.3
I will start with I am new to Fortran and to this forum so if there are any suggestions. Thanks in advance.   My issue I that I keep coming across is error 6634 and 8284 when trying to use subroutines that operate on element operations.  I have created a simple routine to hopefully illustrate my problem as my code is too large to include.  I have also included my workaround for Error 7710 related to passing a section of an array and wanted to know if there is a better workaround or best practice?   program Test_Scale_Array implicit none ! Variables REAL(KIND=8), Dimension(:), Allocatable :: var3 REAL(KIND=8), Dimension(1:10) :: var2,exponent REAL(KIND=8) :: var4 integer, Dimension(5) :: x integer :: i ! Body of Test_Scale_Array var2 = 4.0D0 var4 = 4.0D0 exponent = 2.0D0 !have routine that is meant mostly for this call simples…
Pointer association and red-black trees
Von sgeard@cad-schroer.co.uk7
I'm trying to implement a red-black tree in Fortran. Rather than starting from scratch I'm translating some c-code I found on the internet. Both the original code and my Fortran versions are attached together with a Makefile; the c version works as I expect. The problem I'm having is that line 373             newn%parent => oldn%parent seems to corrupt the contents of oldn but not on the first invocation. Tested with 14.0.1.139. Is this a compiler bug, a typo in my code or something else. I've been thinking about this all afternoon and just can't see what the problem is. Any help greatly appreciated. Simon
Go To Definition and type-bound procedures
Von FortranFan1
Steve, By the way, you may have noticed "Go To Definition" doesn't fully work with type-bound procedures: for example, if one right-clicks on bar in line 6 in the snippet below, it will be really great if the cursor jumped to the definition of bound procedure (possibly a rename or a generic) of bar in type t in module m!  Right now, it doesn't seem to do anything. .. use m, only : t .. type(t) :: foo .. call foo%bar(..) .. Possibly a difficult feature to implement, but it will be cool if available!
Downgrade Rights?
Von Jake B.8
Dear All, Firstly, apologies for my naivety - I'm not familar with Fortran products. I've been placed in charge of finding out some information regarding software we need to use on a current project. We currently have a license for Intel Visual FORTRAN Studio XE (v2013) - we need to use an older version of this software for the project, namely version: Intel Visual FORTRAN Standard Edition (v10.1). Is this possible with the license we have? Any help is greatly appreciated. Thanks in advance, Jake Bloomfield
OpenMP: Loops are not parallelized
Von Benedikt R.10
Hi  I'm writing a Fortran-Program with Open-MP.  !$OMP PARALLEL !$OMP DO PRIVATE(j) DO I=1,10 j = aIndex(I) ... VALUES(j) = ... END DO !$OMP END DO !$OMP END PARALLELThe compiler refuses to parallelize this: OpenMP Construct at file.for(2255,7) remark #16201: OpenMP DEFINED REGION WAS PARALLELIZED ... LOOP BEGIN at file.for(2258,7) remark #17104: loop was not parallelized: existence of parallel dependence remark #15300: LOOP WAS VECTORIZED LOOP END Actually I *do* know, that aIndex contains only different indexes. Therefore the loop *can* be parallelized. Is there any way to overrule the compiler? In OpenACC for example I could write !$acc loop independent private(j) Thanks Benedikt
How to convert an O file to fortran source file
Von 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
Von 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 ?
Foren abonnieren

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


fp-model and other arguments
Von ereisch5
I'm compiling a large program with the new 15.0.2 compiler, where we previously used 12.0.4.  Since we need to ensure our results are identical with the optimized and non-optimized version, we previously used the following compile arguments: -extend-source 132 -assume nounderscore -assume nobscc -align dcommons -static-libgcc -zero -fp-port -c -fpe0 -ftz -prec-div -fp-stack-check -ccdefault fortran -traceback -fp-model precise ...when compiling the non-optimized (debug) version, we added the following: -g -debug full -debug-parameters -check bounds -O0 ...and added in -O1 or -O2 for the nodebug/optimized version.  All was well in the world, and our results matched perfectly between both executables.  However, now that we're moving on to version 15, this is not so much the case anymore.  We're matching with the majority of our results, however some executions that involve multiple inter-communicating processes are no longer matching.  Our first hiccup was we had to change the "-fp-mode…
Can the dummy argument of a PURE subroutine with INTENT(OUT) attribute be unlimited polymorphic?
Von FortranFan6
The following code compiles with no errors or warnings with the latest Intel Fortran compiler 2015, update 2 even with -stand compiler option: pure subroutine foo(val) class(*), allocatable, intent(out) :: val allocate(val, source=0.0) end subroutine foo but gfortran (GCC 5 development truck) throws an error: pure subroutine foo(val) 1 Error: INTENT(OUT) argument 'val' of pure procedure 'foo' at (1) may not be polymorphic   I fail to see anything in the standard about INTENT(OUT) and polymorphic dummy arguments and pure procedures.  Is gfortran misinterpreting the standard or is Intel Fortran incorrect to allow this? Thanks,  
no license sent with evaluation version
Von Ben D.1
Hi, I just downloaded the evaluation version of the fortran compiler, but I didn't get the license that goes with it so I can't install it. Please can someone at Intel send it to me? Thanks, Ben
incompatibilty between libifcore.a between ifort 15.0.0 and 15.0.2
Von Lawrence M.2
The following affects one of our Library builds, built using ifort 15.0.0 when compiling and linking a main program against the shared library using ifort.15.0.2 ....... Using ifort 15.0.0 compile up the following in file nag_test_io.f90  and turn into archive    Subroutine nag_test_io(string)       Character (*) string       Write(6,*) string     End Subroutine nag_test_io ifort -O3 -w -auto -fPIC -axAVX,SSE2 -threads -fexceptions -fp-model precise -c  nag_test_io.f90 -o nag_test_io.o ar rvf libnag_test.a nag_test_io.o and make shared icc -w -fPIC -m64 -axAVX,SSE2 -DPOINTER64 -fp-model precise -DLONG_CHARLEN -fexceptions -shared -Wl,-rpath=\$ORIGIN,-z,origin -Wl,-soname,libnag_test.so -o libnag_test.so -Wl,--whole-archive libnag_test.a -Wl,--no-whole-archive -Wl,--no-undefined /opt/intel/composer_xe_2015.0.090/compiler/lib/intel64/libifcoremt_pic.a /opt/intel/composer_xe_2015.0.090/compiler/lib/intel64/libsvml.a /opt/intel/composer_xe_2015.0.090/compiler/lib/intel64/libimf.a /opt/…
Why my fortran jobs got killed?
Von Gators vs. Sundevil4
Hi, I have encountered a very strange problem while running my fortran code on a ubuntu system. I was using the PARDISO to solve a very 'huge' system using the OOC mode. For a first case, according to iparm(17), it required 680G harddisk storage. And the problem was solved without any issue. For the second case, the matrix size is even bigger, almost twice of the previous one, but the harddisk usage is not increased much, around 700G according to iparm(17). And this is the only difference between these two problems. But the job of the second problem was killed after phase 22. I have used phase 11, 22 and 33 in my code. For both cases, I have set the ulimit to unlimited and the KMP_STACKSIZE to 5G. So, what should be the problem? Why the second job was killed by the system. Any suggestion will be much appreciated. By the way, the machine I was using has 250G RAM, but for large problems I still needs to use the OOC mode.
Relating two different arrays for table lookup
Von bhvj4
Hi,     I have a table of daily data for 50 years (18262 data values), which I am able to read and write into an output file. I have another table of coefficients, which is actually yearly (50 data values). I would like to multiply the yearly coefficients with the 18262 data values, whenever the year matches. Basically, I am looking for relating two arrays when they match (as I am trying to do from line 41 to 45 in the attached program). Attached herewith are also the two tables. I am sorry if I am asking this same question many times, but this is the place I feel that I really need help with to move forward. Any ideas or suggestions to multiply the correct coefficient value (coeff(n,2) with tc to get the modified table of 18262 data values, would be greatly helpful to me. Thank you.
Derived type IO with private DT array component
Von 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 procedur…
maximal record length for integer-size 64
Von 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 something…
Foren abonnieren