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

Intel® MKL in depth training
By adminPosted 06/25/20120
Introduction and functionalities of Intel MKL
Superscalar programming 101 (Matrix Multiply) Part 5 of 5
By jimdempseyatthecovePosted 05/08/20120
In part 4 we saw the effects of the QuickThread Parallel Tag Team Transpose method of Matrix Multiplication performed on a Dual Xeon 5570 systems with 2 sockets and two L3 caches, each shared by four cores (8 threads). and each processor with four L2 and four L1 caches each shared by one core and...
Superscalar programming 101 (Matrix Multiply) Part 4 of 5
By jimdempseyatthecovePosted 05/08/20120
In the last installment (Part 3) we saw the effects of the QuickThread Parallel Tag Team method of Matrix Multiplication performed on two single processor systems: Where the Intel Q6600 (4 core – no HT) with two cores (two threads) sharing L1 and L2 caches attained a 40x to 50x improvement over ...
Superscalar programming 101 (Matrix Multiply) Part 3 of 5
By jimdempseyatthecovePosted 05/08/20122
By Jim Dempsey In the previous article (part 2) we have seen that by reorganizing the loops and with use of temporary array we can observe a performance gain with SSE small vector optimizations (compiler does this) but a larger gain came from better cache utilization due to the layout change and...
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


values of parameters in ENTRY
By Luigi R.1
Working with : ============================================================ 1>------ Build started: Project: Xdsim10, Configuration: Debug Win32 ------ 1>Compiling with Intel(R) Visual Fortran Compiler XE 15.0.1.148 [IA-32]... ================================================================ in Visual Studio Professional 12 - Update 4. In debugging, values of parameters passed in ENTRY statements are not displayed. Quick watch notification is : 'undefined variable' or something like that. As far as I remember the problem is not new but I did not pay much attention. Since I am now in this forum, it is worthwhile to signal this case.
Compiler errors with parameterized types using defined assignment and - operator
By Andrew Smith6
module TestParamTypeMod integer, parameter :: DP = SELECTED_REAL_KIND(13) type DoubleDif(n) integer, len :: n real(DP) :: v real(DP) :: d(n) end type interface assignment(=) module procedure ass_D_Dpdif, ass_Dpdif_Dpdif end interface interface operator(-) module procedure sub_Dpdif_Dpdif end interface contains pure elemental subroutine ass_D_Dpdif(b, a) real(DP), intent(in) :: a type(DoubleDif(*)), intent(inout) :: b b%v = a b%d = 0.0_DP end subroutine pure subroutine ass_Dpdif_Dpdif(b, a) type(DoubleDif(*)), intent(inout) :: b type(DoubleDif(*)), intent(in) :: a b%v = a%v b%d = a%d end subroutine pure function sub_Dpdif_Dpdif(a, b) result(c) type(DoubleDif(*)), intent(in) :: a type(DoubleDif(*)), intent(in) :: b type(DoubleDif(a%n)) c c%v = a%v - b%v c%d = a%d - b%d end function end module program Test use TestParamTypeMod type(DoubleDif(1)) a, b, c a = 2.0_D...
Character String Length Problems
By Gerald R.3
To the Intel Forum, I'm converting a Compaq Fortran code to compile and run under Intel Fortran XE 2013 SP1 (M/S Windows 7)  However, I seem to be having some very basic Character String length problems when using the debug tool under Intel Fortran 2013. For example: CHARACTER ACS*5, NAME*10 ACS = 'Pitch' give an error, or even inserting a character from one string into another with I=3, WFILE(1:1) = NAME(I:I) also generates an error under Debug step through. Increasing the string length of ACS to *6 removes the problem.  Any ideas on what may be causing this 'length problem' ? ( compiler settings ?). Thank you, Gerald Reeves.  
Q about debugging difficulty
By billsincl25
I am debugging a program, and I get a breakpoint, apparently because of an out-of-range subscript. Anyway, when I open the relevant subroutine, isn't it supposed to SHOW me where the breakpoint occurred? (It is mentioned in the OUTPUT pane.) but it doesn't show me where in the CODE listing. I also wanted to put the cursor on some variables that would show me their contents so I can track down why it occurred. But I don't get anything regarding what is stored in any of them. I was hoping I would not have to insert a bunch of PRINT statements, and run it again, but the debugger will not reveal what I need to look at. any reason why this might be happening? Sometimes it works, but it fails when i have a routine with a lot of source lines in it.
Fortran 14.1 command prompt redefining environment variable COMMONPROGRAMFILES
By Greg S.3
Has anyone noticed an issue with the intel 14.1 command prompt (either 32 or 64 bit) and having the COMMONPROGRAMFILES environment variable changed from the windows default (C:\Program Files\Common Files) to C:\Program Files (x86)\Common Files?  If a try to run some other software that uses the default environment variable from the intel prompt it does not function and I must switch to another prompt that does not support the fortran.  So on my system I have the following set by default >echo %COMMONPROGRAMFILES% C:\Program Files\Common Files >echo %COMMONPROGRAMFILES(X86)% C:\Program Files (x86)\Common Files But, while on the intel prompt it changes it to  >echo %COMMONPROGRAMFILES% C:\Program Files (x86)\Common Files >echo %COMMONPROGRAMFILES(X86)% C:\Program Files (x86)\Common Files Is this correct or is there something wrong with my install?  Is there a work around?  Any help would be appreciated.  I would like to return to the times when I had a single command p...
RANDOM_NUMBER, RANDOM_SEED dependencies?
By slett7
I am observing some unexpected behavior  from RANDOM_NUMBER.   I am getting differences between sequences generated by RANDOM_NUMBER after using RANDOM_SEED to set the seed.   I am writing to see if anyone can confirm or deny that Intel RANDOM_NUMBER sequences only depend upon calls to either RANDOM_NUMBER or RANDOM_SEED, and there is no dependency,  either on other Fortran routines or C/C++/C# libraries? Regards, Scott
error PRJ0019: A tool returned an error code
By Jian Jun Z.2
HELP!!!!!! During the compilation of a project named 'last-one',an error has occurred.Here is the error information: Build started: Project: last-one, Configuration: Debug|Win32  Output  Compiling with Intel(R) Visual Fortran Compiler XE 14.0.1.139 [IA-32]...  ifort /nologo /debug:full /Od /warn:interfaces /module:"Debug\\" /object:"Debug\\" /traceback /check:bounds /check:stack /libs:static /threads /dbglibs /c /Qvc12 /Qlocation,link,"E:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\\bin" "E:\Users\hades\Desktop\rtrete\last - noincrease\last\newmark.f90"  last-one : error PRJ0019: A tool returned an error code  last-one - 1 error(s), 0 warning(s) Is there anyone can help me??? I would really appreciate it.
Find All References causes Visual Studio to become unresponsive
By Nathan K.1
When I right click a Fortran subroutine and choose "Find All References" from the context menu, Visual Studio becomes unresponsive. I must use task manager to end Visual Studio's process. My solution is comprised of mixed languages C++\C\Fortran\.NET. Microsoft Visual Studio Premium 2013 Version 12.0.31101.00 Update 4 Microsoft .NET Framework Version 4.5.51209 Intel® Parallel Studio XE 2015 Composer Edition for Fortran Windows*     Package ID: w_fcompxe_2015.3.208 Intel® Parallel Studio XE 2015 Update 3 Composer Edition for Fortran Windows* Integration for Microsoft Visual Studio* 2013, Version 15.0.0121.12,  This issue seems similar to the locked topic 509022: https://software.intel.com/en-us/forums/topic/509022# It appears that this is known issue (I do not see a defect ID however).  Please correct this defect!  
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


Small program segfaults on READ from internal file
By Øyvind J.3
The following program gives a segfault with Intel 15.0.2 on Linux: PROGRAM read_empty_substing CHARACTER(LEN=20) :: c_in = "hello" CHARACTER(LEN=20) :: c_out INTEGER :: i_iostat ! These statements give a segfault with Intel 15.0.2 READ(c_in(2:1), '(A)') c_out READ(c_in(2:1), '(A)', IOSTAT=i_iostat) c_out ! The following statements give end-of-file as expected: !READ(c_in(2:1), *) c_out !READ(c_in(2:1), *, IOSTAT=i_iostat) c_out print *, TRIM(c_out) END PROGRAM As you can see, we try to read from an empty substring of c_in, and I do expect an error condition, i.e. i_iostat/=0. Instead I get a segfault. The read statements with format string segfaults, while the list directed read gives end-of-file. Am I supposed to check the length of the internal file before I read from it, or could this be a compiler bug? Øyvind ------------------------ (gdb) run Starting program: /fs/auto/home/oyvindj/tmp/read_segfault/a.out [Thread debugging using libthread_db enabled] ...
Compiler internal error in type overloading
By F R.1
I took an example of type overloading from a website and unfortunately on compilation with ifort I am getting an internal error. The code is attached herewith to look at. 
allocatable result on (sub)module function
By zp35
Hi, Afaik, since F2003 it should be possible to assign an allocated function result to a deferred lhs. I've tried that on a module function lying in a submodule and it doesn't seem to work. My code looks like: !(Interface in module file) module function gst_il2p(lm,descn,sb) result(ind) implicit none integer(GST_IK), intent(in) :: lm(:,:), descn(4), sb integer(GST_IK), allocatable :: ind(:) end function gst_il2p program test_gst use gst   implicit none integer(GST_IK), allocatable :: ind(:) .... ind=gst_il2p(lm,int([0,50,200,4],GST_IK),1_GST_IK) write(*,*) ind(1) .... end program test_gstWhen writing ind(1) I get an access violation, because ind isn't allocated. Nevertheless, the program works perfectly when substituting allocatable with pointer: !(Interface in module file) module function gst_il2p(lm,descn,sb...
ifort environment variable
By Lester6
Hi Is there an environment variable (like __GFORTRAN__ for gfortran) that can be used to as a flag to the preprocessor so that it will preprocess part of the file when it is a fortran file and skip that part when it is a C or C++ file?  It would be valuable if it worked the same for Windows.  
historical question
By jayb5
I was recently explaining to a colleague why I chose Intel Fortran for a legacy application that will (assuming we receive the expected funding) undergo a modernization process.  I was missing one historical piece of information.  I know that Intel Fortran is descended from DEC Fortran.  But there is also an HP Fortran, which supports HP's proprietary operating systems, including (Open)VMS.  Was there a point at which a single compiler diverged into the two products we see today?  Is there still sharing of effort/code among the two companies? JayB  
Unknown option -xSSE4.2
By Seemanth M.9
Hi all, I am trying to compile a fortran code using ifort (version 10.1) in a linux machine (ia64) as follows ifort -c -O3 -xSSE4.2 -ip my_code.f90 and I am getting the following warning ifort: command line warning #10006: ignoring unknown option '-xSSE4.2'. Could anyone give me a hint to avoid this warning? (Although I could get the executable by compiling the code without the '-xSSE4.2' option, when I execute it, it stops with segmentation fault !!!) Seemanth
BBC Radio - Codes that Changed the World - Fortran
By 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?
By 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 ...
Subscribe to Forums