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

What are PEEL and REMAINDER loops? (Fortran and C vectorization support)
By Martyn Corden (Intel)Posted 10/28/20140
The vectorization component of the optimization report produced by the Intel® Compiler version 15 may contain remarks such as: <Peeled> remark #15301: PEEL LOOP WAS VECTORIZED <Remainder> remark #15301: REMAINDER LOOP WAS VECTORIZED The compiler does its best to create an effi...
Diagnostic 15319: Using NOVECTOR directive
By Devorah H. (Intel)Posted 10/02/20140
Product Version: Intel(R) Visual Fortran Compiler XE 15.0.0.070  Cause: When using NOVECTOR directive in code, the vectorization report generated using Visual Fortran Compiler's optimization and vectorization report options ( -O2 -Qopt-report:2) includes non-vectorized loop instance.  Example:...
Diagnostic 15304: non-vectorizable loop instance
By Devorah H. (Intel)Posted 10/02/20140
Product Version: Intel(R) Visual Fortran Compiler XE 15.0.0.070   Cause: The vectorization report generated using Visual Fortran Compiler's optimization and vectorization report options (-Qvec-report2 -O2) includes non-vectorized loop instance when using the following compiler option (Win OS): ...
Mapping of Intel® MPI Library versions to bundle suites
By Gergana Slavova (Intel)Posted 08/28/20140
Introduction: Mapping the Intel® MPI Library numbers to specific suites and update versions Intel® Parallel Studio XE 2015 Update 1 Cluster Edition (released 26 November 2014) Intel® MPI Library 5.0 Intel® Registration Center Activation Date (yr.mo.day) Windows Version / build Linu...
Subscribe to Intel Developer Zone Articles

Supplemental Documentation

Intel® MKL Sparse BLAS Overview
By Naveen Gv (Intel)Posted 06/25/20120
Sparse BLAS routines can be useful to implement iterative methods for solving large sparse systems of equations or eigenvalue problems
Intel Guide for Developing Multithreaded Applications
By adminPosted 01/16/201224
The Intel® Guide for Developing Multithreaded Applications covers topics ranging from general advice applicable to any multithreading method to usage guidelines for Intel® software products to API-specific issues.
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


Initialize character constants using hex bytes
By Adrian F.4
Is it possible to initialize a character array using hex values for the bytes? using character(10) :: ch =  ie. it may contain non printable bytes such as 0x0D, etc
Text file to allocatable string
By Jacob Williams3
Fortran gurus: I'm looking for the fastest, safest, and most portable way to read the entire contents of a text file into a Fortran allocatable string.  Here's what I've come up with: subroutine read_file(filename, str) implicit none character(len=*),intent(in) :: filename character(len=:),allocatable,intent(out) :: str !parameters: integer,parameter :: n_chunk = 256 !chunk size for reading file [arbitrary] character(len=*),parameter :: nfmt = '(A256)' !corresponding format statement character(len=1),parameter :: newline = new_line(' ') integer :: iunit, istat, isize character(len=n_chunk) :: chunk integer :: filesize,ipos character(len=:),allocatable :: tmp !how many characters are in the file: inquire(file=filename, size=filesize) !is this portable? !initialize: ipos = 1 !where to put the next chunk !preallocate the str array to speed up the process for large files:...
named user licensing
By monty c.3
I perform system administration duties on a classified windows workgroup.  I need to purchase a named user license for the Intel® Parallel Studio XE 2013 Composer.  However, I will only be the installer/administrator of the software and only one specific user will actually use the software.  The specific user does not and will never have any kind of admin rights on the computer.  I have been told by third party providers that we would need to purchase a 2 user floating license to accomplish this approach. Is there a way to buy one named user license to accomplish this task?
Speeding up execution of REAL*16 programs
By Simon Clegg5
Hi Intel, Anyone, I've been running an application in extended precision (REAL*16) for more years than I like to count and, finally, the time has come when I need it to execute faster. My impression is that all I can do is reduce, as far as possible, the number of extended precision multiply and divide operations. (This is what VTune tells me is what is taking the most time.) I can certainly do this, but is there more I should know? Extended precision and its needs seems to be a neglected area of development. Two things caused me to write this post. (1) I received an email flyer for an Intel HPC Code Modernisation Workshop that offered, among other things to "Learn how to modernize your legacy code or develop brand-new code in order to maximize software performance on current and future Intel Xeon and Xeon Phi processors". I asked if there was anything in the workshop relevant to extended precision programs. Answer: "No". (2) I found that mutiplying two REAL*16 variables that are bo...
Quickwin SETWINDOWCONFIG: unable to use QWIN$EXTENDFONT_OEM_CHARSET
By dboggs5
I'm trying to get linedraw characters. The documentation states "Using QWIN$EXTENDFONT_OEM_CHARSET with the font name 'MS LineDraw'C will get the old DOS-style character set with symbols that can be used to draw lines and boxes." But it gives no instruction or example on how to use it. What I am trying is USE IFQWIN TYPE (Windowconfig) wc LOGICAL status wc%fontsize = QWIN$EXTENDFONT wc%extendfontname = 'MS Linedraw'C wc%extendfontattributes = QWIN$EXTENDFONT_OEM_CHARSET status = SETWINDOWCONFIG (wc) IF (.NOT. status) status = WINDOWCONFIG (wc) But this does not work. I am suspicious of the assignment of QWIN$EXTENDFONT_OEM_CHARSET to wc%extendfontattributes. Just guessing on this due to lack of documentation.
Details on VF2013 Update 5 Fix (DPD200256609)
By KKennedy1
I was wondering if someone could post more details on the item fixed in Visual Fortran 2013 Update 5?  The issue is: DPD200256609 and the title is: "Different answers with optimization and debug" We use Fortran as a core part of our system and I was wondering what would cause these differences so that we can recommend our team updating to Update 5.  Thank you!
When will new F2008 arrive
By Espen M.4
Hi I'm just wondering about if the following F08 features are planned for the next (non-update) release:  - SUBMODULEs  - Derived types with ALLOCATABLE components of RECURSIVE type with SUBMODULEs taking the pole position on my wish list (since PDTs happened) :) I read in some other post that new features don't appear in updates, does that imply that we'll have to wait for version 16 (which I guess is due late in 2015) or could they come in 15.1, say?
Using Fortran dll in VBA of Excel 2010
By Andy 8.1
Hello every one, I am trying to use Fortran dll in VBA of Excel 2010, but I have a problem now. I want to get virtual array as returned value, but failed. Here is my code, * fortran 11 subroutine virtualArrayTest(iv_array,ii) !DEC$ ATTRIBUTES STDCALL,REFERENCE,DLLEXPORT,ALIAS:"virtualArrayTest"::virtualArrayTest implicit none   integer,intent(out):: ii   integer,allocatable,intent(out) :: iv_array(:)      ii = 3   allocate(iv_array(3))   iv_array = 9   return end subroutine   * visual basic macro Option Explicit Option Base 1 Private Declare Sub virtualArrayTest Lib "Dll1.dll" (ByRef iv_array() As Long, ByRef ii As Long) Sub vattt() Dim iv_a() As Long Dim ii As Long Call virtualArrayTest(iv_a, ii) Cells(7, 1) = iv_a(1) Cells(8, 1) = iv_a(2) Cells(9, 1) = iv_a(3) End Sub Excel quit when running. What is the matter? Thanks very much for any suggestion.
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


OS X 10.9 Xcode 5 error ld: library not found for -lcrt1.10.6.o
By Ronald W Green (Intel)0
Environment:  OS X 10.9 (Mavericks) and Xcode 5.0 Command line compilations/links fail with "ld: library not found for -lcrt1.10.6.o" Affected compiler:  Intel Composer XE 2013 Update 1 Root cause:  Xcode 5.0 installation does not install all command line tools (include files, libraries, SDKs) need for the compiler to link user applications.  FIX: Install the Xcode 5.0 "Command Line Tools".  Follow this Knowledge Base article for installation of this package:  http://software.intel.com/en-us/articles/installing-intel-compilers-for-os-x-pre-requisite-xcode-command-line-tools
Compiler Installation and Uninstallation Help, Linux and Mac OS
By Ronald W Green (Intel)7
  Installing the Intel compilers on Linux* and Mac OS* X requires that you install various prerequisite packages. Linux: Read this Help on Installing the Intel Compilers. Mac OS X: Read this article on Xcode and Command Line tools installation (prerequisite for installation and use) We also have an article on Linux Silent or Non-Interactive Installation Here And Mac OS X Silent or Non-Interactive Installation Here Having trouble REMOVING or UNINSTALLING the Intel Linux compilers?  Read this article: http://software.intel.com/en-us/articles/uninstall-intel-compiler-for-linux-when-uninstallsh-is-missing-or-not-functioning NOTE: ARTICLES such as this are not monitored on a regular basis - do NOT ask questions here, your quesiton may go unnoticed.  Please post all questions to the USER FORUM
ld: cannot find -lm
By Ronald W Green (Intel)1
RHEL 6.x, FC14, FC13, FC12, SL6.x, CentOS 6, etc. and possibly other recent distributions: error when using -static or -fast: ld: cannot find -lm See this article: http://software.intel.com/en-us/articles/error-ld-cannot-find-lm/
getarg does not work?
By vincenzo s.4
Hi, i'm porting some programs from 32 bit linux suse to 64 bit linux suse. in 32 bit  version i use fortran compiler XE 12.0 update 2 for linux in 64 bit version i use XE 13.1 for linux function getarg seems not work in 64 bit version. test.f90:     program test     implicit none     integer*4 ::iarg     character(len=64)::string,string1,string2     iarg = iargc()     write(*,*) iarg     call getarg(1,string )     write(*,*) 'test --- ',string     pause     read(string,*)string1     write(*,*)'string1= ',string1 !     call getarg(2,string)     read(string,*)string2     write(*,*)'string2= ',string2 !     stop ' ok'     end program test ------------------------------------------------------------- ifort -g -c -traceback -noalign -integer-size 16 -double-size 64 -132 -O0 -assume dummy_aliases -assume byterecl -warn noalignments test.f90 ifort -o test.out test.o ------------------------------------------------------------------------ EXEC in 64 bit: ./test.out str1 str2 ...
Stepwise calculation for large datasets in Fortran
By bhvj7
Hi, I am trying to do stepwise calculations, for each day, by using an equation in a Fortran program, using the datasets, as in the attached (each dataset has 18262 values corresponding to 18262 days). The output of the program would be another new dataset in which the two datasets are combined per the equation (as an example 0.5*TC1+ 7*TC2), for each day. What would be the best way to approach this? Would it be a good idea to create two large arrays of size 18262 each for the input, read it into them, and create one large array of size 18262, and write the output into this array? Any suggestions or insight into this would be greatly helpful. Thank you.  
Installer crashes, Website only works in Firefox
By David O.1
  Downloaded Intel Fortran compiler for evaluation on OSX. Mounted installer dmg, fired up installer - instant crash missing symbol _strnlen in /usr/lib/libSystem.B.dylib not very good Find out if any way to report this - no Forum website does not work in Chrome - only Firefox Not a performance suggesting purchase this software
xe14=>xe15 cause a SIGSEV (openmp)
By Guillaume d.4
When updating from ifort 14 to ifort 15 (15.0.2 to be precise), several bugs have appear in our programs (while it ran smoothly with ifort 14). One of them seems related to openMP :  forrtl: severe (174): SIGSEGV, segmentation fault occurred Image PC Routine Line Source libintlc.so.5 00007FF35F0F3961 Unknown Unknown Unknown libintlc.so.5 00007FF35F0F20B7 Unknown Unknown Unknown libhsall.so 00007FF362794692 Unknown Unknown Unknown libhsall.so 00007FF3627944E6 Unknown Unknown Unknown libhsall.so 00007FF36275518C Unknown Unknown Unknown libhsall.so 00007FF36275BA58 Unknown Unknown Unknown libpthread.so.0 00007FF35EEDA0A0 Unknown Unknown Unknown libhsall.so 00007FF3627AA9C3 Unknown Unknown Unknown libhsall.so 00007FF36277B74B Unknown Unknown Unknown libhsall.so 00007FF36277ADBC Unknown Unknown Unknown hspec 000000000042093F hspeccal_ 104 hspeccal.f90 libiomp5.so 00007FF360F7EBB3 Unknown Unknown Unknown libiomp5.so 00007FF360F53617 Unknown Unknown Unknown   The source code at the locatio...
Fortran forrtl: severe (174): SIGSEGV, segmentation fault in derived type data
By JIquan P.1
 "m.f90" :   1 module typedef   2 implicit none   3 type::mytype   4     integer::mn(2,2)   5     complex(kind=8)::w   6     integer,allocatable::sz(:)   7 end type   8 end module typedef   9 subroutine mysub(mtp)  10 use typedef  11 implicit none  12 type(mytype)::mtp(6)  13 integer::lm  14 complex(kind=8)::f0(6),f1(6)  15 do lm=1,6  16     write(*,*)"a",lm  17     f0(lm)=mtp(lm).w  18     f1(lm)=f0(lm)  19 end do  20 end subroutine  21 program main  22 use typedef  23 implicit none  24 type(mytype)::mtp(6)  25 call mysub(mtp)  26 end program I compiled this program with "ifort m.f90" then run it "./a.out",  then error occured:  forrtl: severe (174): SIGSEGV, segmentation fault occurred If I compiled it with "ifort m.f90 -CB" then No error occured If I changed the 4th line into "integer::mn(3,3)" or just delete it, then compiled it with "ifort m.f90" No error occured. This problem puzzled my a lot, is something wrong with my program? my compiler is ifort ...
Subscribe to Forums