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

Programming and Compiling for Intel® Many Integrated Core Architecture
By AmandaS (Intel)Posted 10/16/20131
Compiler Methodology for Intel® MIC Architecture This methodology enables you to determine your application's suitability for performance gains using Intel® Many Integrated Core Architecture (Intel® MIC Architecture).
Parallelization with Intel® Cilk™ Plus
By Ronald W Green (Intel)Posted 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 Inte...
Common Vectorization Tips
By AmandaS (Intel)Posted 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. Spec...
Data Alignment to Assist Vectorization
By Rakesh Krishnaiyer (Intel)Posted 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 processo...
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


SELECT CASE construct
By netphilou3112
Hi, I have a very basic question related to the SELECT CASE construct. The documentation tells that is is possible to branch to the END SELECT statement only from within the SELECT CASE construct but it does not mention how to do that. My problem, is that I would like to be able to exit a CASE block before the end of the block. Is there something I missed? Best regards, Phil.
Help connecting COM Library in Fortran Code
By HoDz1
Hi, I need some help to connect a COM library to my Fortran code. To start of I am using Visual Studios 2010 with Visual Fortran Compiler XE15.0 Update 3. I do have some experiance with Fortran programming but no experience with using COM libraries and their integration in various codes. The goal is to use the Fortran code to set up and performe measurements on a commercial measurement instrument. I have access an COM library in the form of a .tlb file that can be used to controll the measurment instrument. I have used the Intel Visual Fortran Module Wizard to create an fortran file "COMLibrary.f90" which contain modules that simplify calling of COM features in my code. The file containing the modules is then added to the Source Files in my Fortran project in VS2010. However when I try to compile my main program the following error message is returned: " error#6405: The same named entity from different modules and/or program unites cannot be referenced [GUID]" for the COMLibrary.f9...
Submodule+coarray bug with IVF 16.0
By opmkl1
The following code triggers compiler error #8361 (A coarray or an object with a coarray ultimate component shall be a dummy argument or have the ALLOCATABLE or SAVE attribute.) for coarray J. I think this is incorrect, but I may be wrong. Using SAVE for J eliminates this error message. MODULE A INTEGER :: I[*] END MODULE A SUBMODULE (A) B INTEGER :: J[*] END SUBMODULE B PROGRAM MAIN USE A END PROGRAM MAIN 
Need an advice on programming graphic using either Visual Fortran or Visual C/C+
By Haroon B.5
Dear All, I have a project on fluid flow with graphics on. I am looking forward to continue developing the solver part in Fortran but the UI with a graphic console in mixed language form. I just need an advice that which one of the following two options is better; Solver in Fortran and as well as the UI with graphics console in Visual Fortran Solver is Fortran but with a wrapper in Visual C/C+ for UI and graphics console. The main program in Visual C/C+ calls the Fortran solver libraries in dll. The graphic console must plot planner meshed surfaces with contours, and pan/tilt/zoom capability. I asked the same question from a experienced programmer and he suggests to opt for the option 1. As per him the mixed language programming is doable but its complex. I do not have a much experience of programming in Visual C/C+ and for this purpose I would definitely hire a developer.  Option 1 seems easier with lesser investment required. However, I just don't know if it can be really benefi...
passing a character string in c++ t oa dll function in Fortran
By jbensabat@ewre.com4
Hello I have a fortran dll with a large number of functions receiving character strings as arguments for example double precision function func(str1,prop1,prop2,str2) BIND(C,name='cppfunc') use, intrinsic :: ISO_C_BINDING !DEC$ ATTRIBUTES DLLEXPORT :: func implicit none !define input variables character, dimension (12), intent(in) :: str1 character, dimension(255), intent(in) :: str2 .. additional processing on the c++ side I declare a function extern "C" { double cppfunc(char *, double, double, char *); } then in the main c++ code I declare the following char input[12],f[255],path[255]; strcpy_s(input,"somestring"); strcpy_s(path,"some_path"); cppfunc(input,10.0,10.0,path); using the debugger I see that path is not defined on the fortran side of the dll and the program has an exception is there any systematic and robust way to pass char string to a fortran function in a dll ?   thanks jac    
link error
By jbensabat@ewre.com5
Hello I have upgraded to the new version of the compiler and I am getting the following error 1>LINK : fatal error LNK1104: cannot open file 'libmmdd.lib' I am using Intel(R) Visual Fortran Compiler XE 15.0.3.208 both in 32 and 64 bit any help would be welcome best jac  
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 Smith7
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...
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


Undefined symbols for architecture x86_64
By 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
By 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 "-check all" option
By 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
By 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
By YG8
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...
shape restrictions on assumed shape arguments
By zp33
Hi, wan't to ask if it's permitted to define certain restrictions on the shape of assumed shape arrays? For example something like: integer(GST_IK), intent(in) :: lm(2,:)Thanks for advice    
Questions about Intel® Software Development Suite Student Edition for OS X
By Belmiro C.3
Hi, I have some questions about Intel® Software Development Suite Student Edition for OS X: http://softwarestore.ispfulfillment.com/store/Product.aspx?skupart=I23S97 1. As shown in "product info", Intel Software Development Suite Student Edition for "Linux" and "Windows" includes the MKL. However, it seems that Intel Software Development Suite Student Edition for "Mac OS X" does not !?!?! Is it true??? 2. As shown in https://software.intel.com/en-us/articles/intel-fortran-composer-xe-2013... , it indicates that the Intel® Fortran Composer XE 2013 for OS X* only supports upto OS X* 10.8 “Mountain Lion". Therefore, how about the intel Fortran Composer XE for Mac OS X  in this Intel® Software Development Suite Student Edition?? Can it support OS X 10.9 and 10.10?? Thank you!! Belmiro
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] ...
Subscribe to Forums