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

Parallelization with Intel® Cilk™ Plus
Von Ronald W Green (Intel)Veröffentlicht am 10/16/20130
Compiler Methodology for Intel® MIC Architecture Efficient Parallelization, Parallelization with Intel® Cilk™ Plus Overview Intel® Cilk™ Plus is an extension to C and C++ that offers a quick, easy and reliable way to improve the performance of programs on multicore processors. The three Intel …
Common Vectorization Tips
Von AmandaS (Intel)Veröffentlicht am 10/07/20132
Compiler Methodology for Intel® MIC Architecture Common Vectorization Tips Handling user-defined function-calls inside vector-loops If you want to vectorize a loop that has a user-defined function call, (possibly re-factor the code and) make the function-call a vector-elemental function. Specif…
Data Alignment to Assist Vectorization
Von Rakesh Krishnaiyer (Intel)Veröffentlicht am 09/07/20134
Compiler Methodology for Intel® MIC Architecture Data Alignment to Assist Vectorization Overview Data alignment is a method to force the compiler to create data objects in memory on specific byte boundaries. This is done to increase efficiency of data loads and stores to and from the processor.…
Large Page Considerations
Von Rakesh Krishnaiyer (Intel)Veröffentlicht am 09/06/20130
Compiler Methodology for Intel® MIC Architecture Large Page Considerations   Use THP enabled by default in the MPSS Operating System: MPSS versions later than 2.1.4982-15 support “Transparent Huge Pages (THP)” which automatically promotes 4K pages to 2MB pages for stack and heap allocated data.…
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


ICE with PDT
Von 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?
Von 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 you…
finding the max number of iterations needed to get convergence for DLCONF
Von 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
Von 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 ?
Do LOOP fails when NOWHERE NEAR LIMITS
Von billsincl24
This do loop example has NO passes thru it.    dk4=100000000     khi4=huge(k4)/2 ! nowhere near upper limit     klo4=-khi4  !  nowhere near lower limit    kount=(khi4-klo4)/dk4+1     print *,"klo,hi=",klo4,khi4," kount 4=",kount     do k4=klo4,khi4,dk4         print *,"k4=",k4     enddo It gives the correct result (22) for KOUNT, but the compiler apparently gives ZERO for the same thing. All variables are integer(4)
Parameterized derived type: unexpected run-time error with ALLOCATABLE type with a contained type
Von FortranFan3
I believe the following code is ok and it compiles with no errors or warnings.  But it encounters a run-time error; it appears the automatic variable in the "contained" type that depends on the length parameter is not allocated. module m implicit none private type :: t(n) private integer, len :: n = 1 integer :: m_a(n) end type t type, public :: q(l) private integer, len :: l = 1 type(t(n=l)) :: m_t end type q public :: init_q contains subroutine init_t(this) type(t(*)), intent(inout) :: this this%m_a = 1 print *, " t%a = ", this%m_a return end subroutine init_t subroutine init_q(this) type(q(*)), intent(inout) :: this call init_t(this%m_t) return end subroutine init_q end module mprogram p use m, only : q, init_q type(q(l=:)), allocatable :: foo allocate( q(l=2) :: foo) call init_q(foo) stop end program pUpon execution, forr…
Parameterized derived type: problem with ASSOCIATE construct.
Von FortranFan8
module m implicit none private type, public :: t(n) private integer, len :: n = 1 integer :: m_a(n) end type t public :: init contains subroutine init(this) type(t(*)), intent(inout) :: this asc: associate ( a => this%m_a ) a = 1 end associate asc print *, " with associate: t%a = ", this%m_a return end subroutine init end module m program p use m, only : t, init type(t(n=2)) :: foo call init(foo) stop end program p   Upon execution with either IA-32 or Intel(R) 64 compiler version: with associate: t%a = 0 0 Press any key to continue . . . 
Some Do Loops fail with integer(8) as well
Von billsincl12
I put together this little test program, to see better when we get problems. Apparently , having the upper limit near HUGE() does not seem related to this. Especially when the compiler pre-computes the number of iterations using this formula: KCALC = (K8HI - K8LO)/DK8 + 1 Consider the trivial case where KCALC = 3 Then the values of K8 should be: K8HI - 2*DK8,   K*HI-DK8, and  K8HI So it does not have a chance to overflow the integer(8) high value, even when K*HI8 = HUGE(K8) This little test program steps thru values of K8LO starting with zero. You start off getting wrong numbers  of number of iterations thru the loop, then when it reaches the value of KI8, the problem goes away. So I have to conclude that the compiler has an error in the way it computes the number of iterations. Why would it ever give you ZERO passes? Unless the result was negative..... Some call this the "integer overflow curse." Actually, if it DID overflow the integer(8), you would get an infinite number of iterati…
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


coarray problem with allocatable array and derived types
Von 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
Von 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
Von 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/r…
ICE when moving parameterized derived types into different modules
Von 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        
Overridden binding and parameterized derived type
Von oysteinolsen1
Hi, I get the following error when I compile overide_pdt.f90 (attached):  ifort override_pdt.f90 override_pdt.f90(56): error #8383: The dummy arguments of an overriding and overridden binding that correspond by position must have the same characteristics, except for the type of the passed object dummy arguments.   [TESTQ]      PROCEDURE, PASS :: testq => test_extendedq I believe this is a compiler bug. It might be related to the bug I reported yesterday. If so, this is a different way to trigger that bug. This is with ifort version 15.0.2 on openSUSE 13.2. Best regards, Øystein    
Installing Parallel Studio XE 2015 Update 2
Von mark.s.marley@nasa.gov2
I am trying to install Update 2 of Intel Parallel Studio Fortran XE 2015. I am running Mac OS 10.9.5 on a 2014 Mac Pro.   When I run both the standard install and the online custom install I get the error window "Unapproved caller. SecurityAgent may only be invoked by Apple software." Any ideas?  Thanks very much.      
The following code runs the compiler in a catastrophic error
Von bpichon2
Dear Fortran, As shown in the tittle, the following program runs the compiler in a catastrophic error. command line : $ ifort -coarray -coarray-num-images=4 Conv_Cata.f90 ifort -version gives :    ifort (IFORT) 15.0.0 20140723   Note : it works fine with my Windows ifort !! Bernard
Problems with constant expressions
Von MR3
Hi, consider the following code: program p implicit none logical, parameter :: use_v1 = .true. integer, parameter :: v1 = 3, v2 = 8 integer, parameter :: & ! this produces a warning at compile time and wrong result i = v1*count( (/use_v1/) ) + v2*count( (/.not.use_v1/) ) ! this produces an ICE at compile time !i = v1*count( (/use_v1/) ,kind=kind(i)) + v2*count( (/.not.use_v1/) ) write(*,*) i end program p Compiling with ifort -stand f08 p.f90 -o p I see two warnings and wrong results at run time (-3 instead of 3) $ ifort -stand f08 p.f90 -o p p.f90(9): warning #6192: Fortran 2008 does not allow this data type conversion.    i = v1*count( (/use_v1/) ) + v2*count( (/.not.use_v1/) ) ----------^ p.f90(9): warning #6192: Fortran 2008 does not allow this data type conversion.    i = v1*count( (/use_v1/) ) + v2*count( (/.not.use_v1/) ) -----------------------------------^ $ ./p           -3 Isn't the code right? In any case, I don't understand which type convers…
Foren abonnieren