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

Nenhum conteúdo foi encontrado

More Tech Articles

Avoiding Relocation Errors when Building Applications with Large Global or Static Data on Intel64 Linux
Por Martyn Corden (Intel)Publicado em 01/26/20103
Applications with >2GB of static or global data should be built with –mcmodel=medium –shared-intel on Intel64 Linux*. If linked with static libraries, these should also be built with –mcmodel=medium. Else, "relocation truncated to fit" errors may occur.
Intel® Compiler Options for Intel® SSE and Intel® AVX generation (SSE2, SSE3, SSSE3, ATOM_SSSE3, SSE4.1, SSE4.2, ATOM_SSE4.2, AVX, AVX2, AVX-512) and processor-specific optimizations
Por Martyn Corden (Intel)Publicado em 01/24/20105
Explains which Intel® Compiler switches to use to target and optimize for a specific platform, microarchitecture, CPU or processor.
Load Balance and Parallel Performance
Por adminPublicado em 01/19/20100
Load balancing an application workload among threads is critical to performance. The key objective for load balancing is to minimize idle time on threads.
Performance Insights to Intel® Hyper-Threading Technology
Por Antonio Valles (Intel)Publicado em 11/20/200917
This paper explains how Intel HT Technology works and shows a variety of performance results across several classes of software running on clients, workstations, and servers. Methods for assessing Intel HT Technology performance are introduced, and analysis of performance degradations are include...
Assine o Artigos do Espaço do desenvolvedor Intel

Supplemental Documentation

Nenhum conteúdo foi encontrado
Assine o Artigos do Espaço do desenvolvedor Intel

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


Parameterized Derived Data Type Allocation Error
Por Scott B.2
Hi all, the following is a simplified version of a code that I wrote that does not seem to work. For the larger code I just get a generic "compliation error" and then the compiler stops. I tracked that to where I am passing the parameterized derived data type into a subroutine with assumed parameters (eg TYPE (MYTYPE(*,*)),INTENT(INOUT):: TYP). I am not using kind numbers, so I it only contains portions that are defined with LEN in the data type.   Below is an example code that results in two different errors:   MODULE DT_INTERFACE IMPLICIT NONE ! TYPE MAT_TYP(N,M) INTEGER,LEN:: N,M REAL, DIMENSION(N,N)::A REAL, DIMENSION(N,M)::B REAL, DIMENSION(M,M)::C END TYPE ! TYPE MAT_GROUP TYPE (MAT_TYP(:,:)),ALLOCATABLE:: MAT END TYPE TYPE(MAT_GROUP), DIMENSION(:), ALLOCATABLE :: GRP CONTAINS ! THE FOLLOWING SUBROUTINE IF UNCOMMENTED CAUSE THE MAIN TO CRASH SAYING N AND M ARE ALREADY DEFINED ! S...
Redistributable Libraries and/or static compilation
Por 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
Por 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
Por 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
Por david c.2
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
Por 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
Por 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
Por 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
Assine o Fóruns

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


BBC Radio - Codes that Changed the World - Fortran
Por Steve Lionel (Intel)0
A delightful program from BBC Radio on Fortran. Downloadable for the next three weeks: http://downloads.bbc.co.uk/podcasts/radio4/codes/r4codes_20150406-1400b.mp3
-heap-arrays flag - does it work?
Por Mark Mackey4
Hi all. If I compile the following program with ifort -m32 -heap-arrays test.f the array in mytest2() is allocated on the heap, but the one in mytest() is not. According to the documentation, the -heap-arrays flag should put all automatic arrays on the heap. Am I misunderstanding the documentation? Is there a way to force the array in mytest to be allocated on the heap instead of on the stack or in static data? Regards, Mark program test implicit none integer i,mytest,mytest2 i=mytest() i=mytest2(100000) stop end function mytest implicit none integer mytest automatic bigarray integer bigarray(100000) integer i,j do i=1,100000 bigarray(i)=i enddo do i=1,100000 j=j+bigarray(i) enddo mytest=j return end function mytest2(isize) implicit none integer mytest2,isize ...
line break in formatted output
Por may.ka6
Hi this code write(CSTmp,"(I0)") size(this%RVPEffSize) CSFormat="("//Trim(AdjustL(CSTmp))//"(1X,F20.10))" write(this%ISOutputUnitEff,CSFormat,iostat=ISSubStat,iomsg=CSMsg)& &(this%RVPEffSize(c1),c1=1,size(this%RVPEffSize))is supposed to write the content of "this%RVPEffSize" into a single line of the file. It does so until "size(this%RVPEffSize)" is 51422. For larger sizes, a new line is inserted. Is that intended or a bug or related to the operation system??? Thanks Karl ifort 14, ubuntu 14.04
Where is the compiler binary in composer XE 2015?
Por eudoxos3
I downloaded the trial version of Composer XE 2015.1.133. The webpage said it also included fortran compiler. I am unable to locate ifp or ifort anywhere in the package. Am I overlooking something obvious? Or is the compiler called something else? Thanks for any hints.
Integer overflow, ifort internal compiler error
Por zmi0072
I am just playing with integer overflow in fortran compilers and have found that this simple "buggy" fortran code causes internal compiler error by ifort on each of the write instruction. Gfortran detects these overflows and shows some "Error: Arithmetic overflow" during compilation. program integer_overflow implicit none write(*,*) -(-2147483647-1) write(*,*) 2000000000 + 2000000000 write(*,*) -2147483647 - 2147483647 write(*,*) 46341 * 46341 write(*,*) (-2147483647-1) / -1 end program integer_overflowWith ifort (IFORT) 15.0.2 20150121 ifort intel_bug.f90 -o intel_bug.x intel_bug.f90: catastrophic error: **Internal compiler error: floating point exception signal raised**  
ifort v15.0.2 could not pass fortran_2003_iee_test
Por Juncheng L.1
Hi all, I compiled this file with following commands: ifort fortran_2003_ieee_test.F And the error is: fortran_2003_ieee_test.F(39): error #6503: This keyword is invalid for this intrinsic procedure reference.   [UNIT]       CALL FLUSH (UNIT=6) ------------------^ compilation aborted for fortran_2003_ieee_test.F (code 1) Here's the code:       PROGRAM fortran_2003_test                USE , INTRINSIC :: IEEE_EXCEPTIONS       IMPLICIT NONE       TYPE bunch_of_stuff          INTEGER,POINTER,DIMENSION(:) :: i          REAL   ,POINTER,DIMENSION(:) :: x          LOGICAL,POINTER,DIMENSION(:) :: l       END TYPE bunch_of_stuff       TYPE outer_wrapper          TYPE(bunch_of_stuff), ALLOCATABLE, DIMENSION(:) :: ddt_things       END TYPE outer_wrapper       TYPE(outer_wrapper), DIMENSION(15) :: combo       REAL :: x , y , z       INTEGER :: return_code       CHARACTER (LEN=256) :: my_shell       x = 1.e+10       y = 1.e-10       z = x + y       ALLOCATE(combo(1)%ddt_things(10)) ...
ifort fails silently with nested TBP call
Por Ramanathan V.2
Hello, I'm using: $ ifort --version ifort (IFORT) 15.0.0 20140723 Copyright (C) 1985-2014 Intel Corporation.  All rights reserved.The following Fortran code: module B_mod type :: t_B contains procedure, pass :: foo_B procedure, pass :: bar_B end type t_B interface subroutine foo_B(this) import :: t_B class(t_B) :: this end subroutine foo_B end interface interface subroutine bar_B(this) import :: t_B class(t_B) :: this end subroutine bar_B end interface end module B_mod module A_mod use B_mod, only : t_B type :: t_A type(t_B) :: b contains procedure, pass :: foo_A end type t_A interface subroutine foo_A(this) import :: t_A class(t_A) :: this end subroutine foo_A end interface end module A_mod program main use A_mod, only : t_A integer :: ierror type(t_A) :: a call a%foo_A() end program main subroutine foo_A(this) use A_mod, only : t_A class(t_...
Backspacing through segmented files instead of rewind
Por Dan U.1
Hi, I am having some trouble trying to adapt some fortran code to BACKSPACE through unformatted segmented files. My code exists as a few separate programs, the first creates these very large, unformatted files, which are then read in by a second program. My first modification was to store these files as segmented, as I was having issues with reading in the data correctly on the next step. I'm not too clued up with the technicalities but my understanding was that the data I was writing (which is not fixed length) might have been exceeding the record length, leading to some gibberish data being into the second program. Having these files segmented appeared to fix this issue. My current issue though is something else. These files are very large and in my second program the records are read in, and the record data is then used for calculations. It is necessary for me to step back over records to reread them at certain points, and in these instances the desired record to be read is alway...
Assine o Fóruns