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

Selective Use of gatherhint/scatterhint Instructions
Di Rakesh Krishnaiyer (Intel)Pubblicato il 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
Di Roland Wiele (Intel)Pubblicato il 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
Di Ronald W Green (Intel)Pubblicato il 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...
Memory Layout Transformations
Di AmandaS (Intel)Pubblicato il 11/25/20130
Compiler Methodology for Intel® MIC Architecture Memory Layout Transformations Overview This chapter examines a useful user code transformation: moving from data organized in an Array of Structures (AoS) to an organization of Stucture of Arrays (SoA). This transformation allows the compiler to...
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


Redistributable Libraries and/or static compilation
Di Gabriel Toro8
Hi, I need to send a co-worker the redistributable libraries for the latest Fortran compiler. Where can I find those (in my computer or on-line)? Also, does the recipient have to do anything else (move dll's to same directory as exe, define an environment variable)? As an alternative, is there an easy way to link everything statically? This is a simple Fortran console application that does not call any special numerical packages. Sorry if this has been asked before, but I could not find an up-to-date answers and the documentation has become too complicated for me (and/or I am getting old). Thanks, Gabriel
Calling a C function in Visual Studio from a Visual Fortran code
Di J B.2
Hi, I have a Visual Studio 2012 installed on Windows 8.1. Also, I installed Visual Fortran. I want to create a solution with two projects one in Fortran and one in C, then be able to call C function from Fortran code. Can anyone, please, show a simple step by step example on how to achieve this in VS? Thanks.
Making DLLEXPORT functions visible from C++ DLL
Di ovz1
I'm building a C++ DLL that links some Fortran static libraries. My environment is Visual Studio 2012 Intel(R) Visual Fortran Compiler XE 13.1.1.171 Fortran libraries export some functions e.g. logical function example_function() !DEC$ ATTRIBUTES DLLEXPORT :: example_function example_function = .true. return end When I build my C++ dll example_function does _NOT_ show up in the exports. If I add a call to this function from DllMain I get the symbol exported. What is the proper way to export Fortran functions in this configuration?   extern "C" SSSPM_EXPORT bool C_FORT_CONV example_function_(); BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { example_function_();    
Debugger watch window subscript out of range
Di david c.1
I'm debugging a program which is set up to reference memory locations outside the range of the dimension of various variables. Program is compiled so subscripts are not checked for range, but when I use the debugger an try to look at the variable in a watch window, I always get a 'subscript out of range' when I use a subscript that I know gives me the location of the information I want to see. Is there any way to keep the watch window from checking on the subscript of a variable?
Visual Fortran Complier 2008 not working anymore on Windows 7 or 8
Di Paolo Focardi14
Hello, I used to run Intel Visual Fortran v11.1 on a Windows 7 machine and everything was ok. I was making little Dos windows programs to post-process my data. I didn't use it for a while and eventually install it on a new Windows 7 machine. Now it won't run anymore, or rather when I try to run the executables it produces, Windows says that "is not a valid Win32 Application". Any idea what happened? Please help!  
Print window keeps coming up behind my application window
Di Ken9
I use the FORTRAN_WINPRINT.F90 to print from my applications, but the print window (the one that allows you to select your printer) opens almost always behind my applications window.  Not every time, but more probably more than 70% of the time.  So users think the program has stopped when it is actually waiting for input.  How do I get this Print window to always come up in front of my applications window?
missing library after update
Di slett12
 My builds previously worked, but after updating with the latest Intel Fortran tools, I no longer have a libmmt.lib and my build has a fatal error: Error    9     fatal error LNK1104: cannot open file 'libmmt.lib'    LINK     My update database shows that libmmt.lib DID previously exist in e.g. Program Files (x86)/Intel/Composer XE 2015/Compiler/lib/intel64 but it is gone after the update.   Other tools (Intel Software Manager) seem to be gone, too. Is this change expected and what can I do about it? ​Scott
64 bit debugging not working - revisited
Di Joe2
This is mostly an FYI on a follow up to the locked post: https://software.intel.com/en-us/forums/topic/515943 I had the same x64 debugging problem (watch variables show up with undefined addresses), so I updated to the latest ver of Fortran composer (Intel(R) Visual Fortran Compiler XE 14.0.5.239), which is update 5, but this did not fix the problem (the problem only occurs with VS2013, but not VS2010). I did download the FEE.dll for the above thread, and this fixed the problem, but I'm a little surprised that it was not in update 5. Perhaps I updated the wrong component? thanks - joe
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


The file size is twice bigger when writing real8 into binary file.
Di zhaopeng4
Hi, I am a newbie to Fortran language. I try to write a real8 array into binary file using code as follow (compiler: Intel Fortran 2015) open(unit=219, status='replace',file='data.bin',form='unformatted') do j=1,ny2dval do i=1,nx2dval write(219) fzavg(i,j) end do end do  But the file size is twice bigger than expected. It seems to write a real16 array. Why does it happen? Any suggestions?   Thanks a lot! Regards ZHAO Peng
repeat initialization of local variable
Di jayb10
I found a forum topic similar to this, from 2009.  Notwithstanding the Fortran standard: ""A variable, or part of a variable, shall not be explicitly initialized more than once in a program", there is a method to the following madness. This legacy program defined an array for which the "default" value was 0, and some elements were then assigned non-zero values.  A trivial example: integer a(2,2,2) data a/8*0/ data a(2,2,2)/1/ The second data statement is ignored.  My colleague commented out the first data statement, and it "works".  But it "works" only because Intel Fortran initializes values to 0. Is there a compiler switch that will tolerate multiple assignment or data statements?  This is a large application, and finding all of these non-standard instances will be tricky. Jay          
initialization of local variables
Di jayb2
My co-developer reports that, contrary to his expectations, Intel Fortran seems to be initializing local numeric variables, both scalar and array, to 0 or 0.0 I should note that In our application, all local variables are saved, and all arrays are pre-allocated (sizes are explicit in the code).  No arrays or structures are allocated at run-time, and no local variables are recursive. Is his generalization correct? Jay  
Undefined symbols for architecture x86_64
Di Brian A.5
I bet this error compiling on Mac OS 10.10 Undefined symbols for architecture x86_64 and if I try compiling using 32bit I get this error Undefined symbols for architecture i386.
runtime problems with PSBLAS library
Di Hossein T.2
Hello, About two years ago I reported ifort F03 compilation issues with  PSBLAS library (http://people.uniroma2.it/salvatore.filippone/psblas/). With Intel 2015, the compilation issues are solved but there are runtime problems. I have also tried the Ifort 2016 Beta and same problem occurs. PSBLAS is usable with several other compilers (such as GNU/IBM/CRAY) other than Intel. We are thoroughly using Intel Compilers for research and using PSBLAS will save us big time for not reinventing the wheel. Is there any kind promise/timeline the Intel developers can give to finally fix these bugs?
Error when passing a null pointer to an optional argument with the &quot;-check all&quot; option
Di flying_hermes1
Hi, An run-time error is given by ifort version 15.0.0 using the "-check all" option when passing a null pointer to an optional argument. Without the the "-check all" option, the result seems correct. Gfortran is ok ! This code passes a null pointer to an optional argument of a procedure. ! Athough the code seems to works fine, it leads to the following error when compiled with "-check all": ! forrtl: severe (408): fort: (7): Attempt to use pointer PTR when it is not associated with a target ! Gfortran compiles and run fine. ! Tested with ifort version 15.0.0 Program Main implicit none integer ,target :: i = 0 integer ,pointer :: Ptr write(*,*) "Calling with arg" call Proc( i ) write(*,*) "Calling without arg" call Proc() Ptr => i write(*,*) "Calling with Ptr => i" call Proc(Ptr) Ptr => null() ! This should be ok but but causes an error when compiled using the "-check all" option write(*,*) "Calling with Ptr => null" call Proc(Ptr) con...
Help with Intel fortran building error with PETSc
Di quarkz3
Hi, I am using ifort version 15.0.1 to compile and build my code with the open source PETSc and MPI Compiling has no error msg but during building, I got the errors below, though in the end the build completed with a working a.out. However, I'm still worried there's some underlying problems. What do these errors mean? ipo: warning #11021: unresolved xcb_connection_has_error         Referenced in /usr/lib64/libX11.so        
Internal compiler error with long names - ifort 15.0.2
Di YG4
Hello, I have recently run into an internal compiler error with ifort 15.0, for a piece of code that works just fine with Ifort 14.0.  I think this is a regression bug. The catastrophic error shows up when I create a polymorphic pointer to an extended type with a long name, which is defined within a module that also has a long name.  I see the error whenever the sum of the two names (module + type) is equal to or larger than 110 characters. Please consider the following code: module module________________with_a_long_name_of_55_characters type :: type__________________with_a_long_name_of_55_characters integer :: i end type type__________________with_a_long_name_of_55_characters end module module________________with_a_long_name_of_55_characters program p use module________________with_a_long_name_of_55_characters, only: & type__________________with_a_long_name_of_55_characters implicit none class(type__________________with_a_long_name_of_55_characters), poi...
Iscriversi a Forum