Intel® Fortran Compilers

Fortran compilers for Windows*, Linux* and OS X*

  • 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

Limited-time discount for existing Intel® Visual Fortran customers! Click here.

Fortran only:
From $849
Buy Now
Or Download Free Trial

Fortran & C/C++:
From $1,199
Buy Now
Or Download Free Trial

A complete Fortran development environment for Windows*

  • Works with Microsoft Visual Studio* 2008, 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, nearly all of 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 and pricing

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

Try & Buy

The Intel® Visual Fortran compiler is available in several development packages as listed below.

Product

Intel® Cluster Studio XE
Who needs this: Develop fast, reliable MPI cluster applications along with the features in Intel® Parallel Studio XE.

Includes: MPI library and MPI profiler along with the Intel C++ and Visual Fortran compiler, threading library, math library, media and data library, thread prototyping tool, memory & threading error checker and performance profiler.

Free Trial

Buy

Intel® Parallel Studio XE
Who needs this: Boost C++ and Fortran application performance, prototype thread implementations, eliminate memory and threading errors and tune for performance.

Includes: Intel® C++ and Visual Fortran compilers, threading library, math library, media and data library, thread prototyping tool, memory & threading error checker and performance profiler.

Free Trial

Buy

Intel® Fortran Studio XE
Who needs this: Boost Fortran application performance, prototype thread implementations, eliminate memory and threading errors and tune for performance.
Includes: Intel Visual Fortran compiler (no C++), math library, thread prototyping tool, memory and threading error checking and performance profiler.

Free Trial

Buy

Intel® Composer XE
Who needs this: Boost C++ and Fortran application performance for developers who do not need thread prototyping, error checking and performance profiling.

Includes:  Intel C++ and Visual Fortran compiler, threading library, math library and media and data library.

Free Trial

Buy

Intel® Fortran Composer XE
Who needs this: Boost Fortran application performance for developers who do not need thread prototyping, error checking and performance profiling.

Includes: Intel Visual Fortran compiler (no C++) and math library.

Free Trial

Buy

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, nearly all of 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

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

Try & Buy

The Intel Fortran compiler is available in several development packages as listed below.

Product

Intel® Cluster Studio XE
Who needs this: Develop fast, reliable MPI cluster applications along with the features in Intel® Parallel Studio XE.

Includes: MPI library and MPI profiler along with the Intel C++ and Fortran compiler, threading library, math library, media and data library, thread prototyping tool, memory & threading error checker and performance profiler.

Free Trial

Buy

Intel Parallel Studio XE
Who needs this: Boost C++ and Fortran application performance, prototype thread implementations, eliminate memory and threading errors and tune for performance.

Includes: Intel C++ and Fortran compiler, threading library, math library, media and data library, thread prototyping tool, memory & threading error checker and performance profiler.

Free Trial

Buy

Intel® Fortran Studio XE
Who needs this: Boost Fortran application performance, prototype thread implementations, eliminate memory and threading errors and tune for performance.
Includes: Intel Fortran compiler (no C++), math library, thread prototyping tool, memory and threading error checking and performance profiler.

Free Trial

Buy

Intel® Composer XE
Who needs this: Boost C++ and Fortran application performance for developers who do not need thread prototyping, error checking and performance profiling.

Includes:  Intel C++ and Fortran compiler, threading library, math library and media and data library.

Free Trial

Buy

Intel® Fortran Composer XE
Who needs this: Boost Fortran application performance for developers who do not need thread prototyping, error checking and performance profiling.

Includes: Intel Fortran compiler (no C++) and math library.

Free Trial

Buy

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, nearly all of Fortran 2003, plus significant Fortran 2008 features
    • 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

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

Try & Buy

The Intel Fortran compiler is available as listed below.

Product

Intel® Fortran Composer XE
Who needs this: Boost Fortran application performance on OS X*

Includes: Intel Fortran compiler and math library.

Free Trial

Buy

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:

  • 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
By Rakesh Krishnaiyer (Intel)Posted 02/20/20140
Compiler Methodology for Intel® MIC Architecture Selective Use of gatherhint/scatterhint Instructions Overview The -opt-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 doin...
New Fortran switch allows use of abbreviated syntax to examine parent fields of an extended derived type when debugging
By Roland Wiele (Intel)Posted 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
By Ronald W Green (Intel)Posted 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-dime...
Memory Layout Transformations
By AmandaS (Intel)Posted 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 ac...

Pages

Subscribe to

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

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


C# Array to Fortran
By Carsten A.3
Hello, I try to pass an 1D-array from a C#-DLL to Fortran. For that I am using R. Giesecke DllExport. That makes my managed DLL to a unmanaged DLL with a .lib file. To pass a normal parameter works well. Please see here: https://software.intel.com/en-us/forums/topic/517631 The 1D-Array has always the size of 6! The size of the array will never change only the assigned value. Here my Code in C#: using System; using System.Text; using RGiesecke.DllExport; using System.Runtime.InteropServices; namespace Testme { class Test { [DllExport("Get1DArray", CallingConvention = CallingConvention.Cdecl)] public static int Get1DArray([MarshalAs(UnmanagedType.LPArray, SizeConst = 5)] int [] Stress) { Stress [0] = 0; Stress [1] = 1; Stress [2] = 2; Stress [3] = 3; Stress [4] = 4; Stress [5] = 5; return Stress[5]; } } }Build my C# Dll successfull...
Coarray & OMP file access
By David DiLaura1
  Steve, Colleagues: I have a large, binary, sequential access data file. Each record corresponds to data for a particular element in a large problem being analyzed. Each record is the same length. Two scenarios: 1. I launch a coarray program and each image opens this (same) file. Different images read through (skip over) the records until the file pointer is at the first element to be processed by that image. Each image then process it's own set of elements, sequentially reading records from the file as necessary. Does the file/MPI system maintain the correct/separate file pointer position(s) for each image? 2. Parallelization is achieved by an OMP 'parallel do' in a single program. Before the parallel do loop is entered, the data file is opened. Each thread is responsible for processing a subset of the elements in the problem. Does the file/OMP system maintain the correct/separate file pointer position(s) for each thread? Or must I use a binary direct access file and calculated/se...
error #5415
By Tripp L.18
I'm very frustrated by this error. Not only is it a feature for Fortran 2003 and it is 2014, but it keeps me from being able to file read using namelist for a derived type that contains any allocatable elements or types containing allocatable elements even if I'm not assigning anything to those fields in the namelist read. Is there a workaround/fix other than creating a second type without the allocatable elements and transferring them post-read?
How to let the program output runtime error information in C++ code?
By tangzhanghong98@yahoo.com17
Dear all, I have the C++ dynamic linked library built by VS2012+Intel C++ 14.0, the dynamic linked library is called by Fortran main program. Currently there are some problems in the C++ code and I need to locate it. However, the bug can't be reproduced in Debug mode but in Release mode, I can't get to know where the crash happened. I have set /Zi option in 'C/C++' and /DEBUG option in 'Linker', but the output message is as follows: forrtl: severe (157): Program Exception - access violation Image              PC                Routine            Line        Source CSGlib.dll         000007FEEF57DF1E  Unknown               Unknown  Unknown CSGlib.dll         000007FEEF57DB5F  Unknown               Unknown  Unknown CSGlib.dll         000007FEEF57D78D  Unknown               Unknown  Unknown fem.exe            000000013FD6F26E  ELEMENT_mp_LOCALM       20494  datatype.f90 fem.exe            000000013FDE82ED  ELEMENT_mp_TESTME       20389  datatype.f90 fem.exe            000000013FF1D...
The continuing saga of modules in static libraries
By dboggs4
A lot of people are confused on this topic, and a lot has been said in this forum, for which I am grateful. Just when I think I understand it (sufficiently to get by), I run into examples that conflict with what I thought I knew. So I must rehash it again. If a library project has subroutines SubA.f90, SubB.f90, ... and modules ModA.f90, ModB.f90, ... and these are all compiled into a file MyLib.lib, that file will contain object files SubA.obj, ..., ModA.obj, .... The build procedure will also create compiled module object files ModA.mod, ModB.mod, .... that are not contained in MyLib.lib. For these routines to be used by outsiders, I must distribute MyLib.lib and all of the .mod files, and provide instructions to make .lib accessible to their linker and the .mod accessible to their compiler. There are several ways to do this. It can get unwieldy and confusing. In spades sometimes, e.g. if you need to deal with debug and release combinations. Now I come upon some discussion, and so...
Unresolved externals with intrinsic Fortran functions
By Philip B.5
I've recently changed the core mathematical libraries we use from the Netlib versions of BLAS and LAPACK to the MKL versions. This has been going fine until I tried to link a Fortran binary to these libraries. During the linking there are a whole load of unresolved externals that relate to mathematical intrinsic Fortran functions such as SIN, COS and EXP. I don't understand how this should be related to the change of BLAS and LAPACK libraries. The list of errors is: Error    46     error LNK2001: unresolved external symbol _sinf    aero F.lib(adatin.obj)     Error    15     error LNK2019: unresolved external symbol _powf referenced in function _L_ADATPUT_CIRCULATIONCONTROL    aero F.lib(adatput.obj)     Error    10     error LNK2001: unresolved external symbol _powf    aero F.lib(aerofl.obj)     Error    23     error LNK2001: unresolved external symbol _sinf    aero F.lib(aerofl.obj)     Error    5     error LNK2001: unresolved external symbol ___powr4i4    aero F.lib(aeroit.obj...
Character
By Rasa N.2
Hi, I wrote small program to read and write a character. But it gives error messages. program check1     CHARACTER str*(*)      read *, str     print *, str      end program check1 When i ran this program, it gave following error. Error    2    Compilation Aborted (code 1)    J:\Personal Works\Fortran\CHECK\check1\check1\check1.f90    1     Error    1     error #6832: This passed length character name has been used in an invalid context.   [STR]       I could not find any error in the source code. Anyone can explain what is wrong with this code. Thanks
Inter-process communication
By Lei T.3
Hello, I saw some postings in this forum about using Pipe for inter-process communication. I try to write a Fortran code to implement this idea but ifort does not recognize CreatePipe. What do I miss here? Any hint is highly appreciated,

Pages

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)5
  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/
help interprt a Linker warning for alignment
By dajum3
I have some code that runs fine and doesn't give any warnings using parallel studio XE2011 (or under that version on windows). But under parallel studio XE2013 update3 it give this warning: ld: Warning: alignment 16 of symbol `hshdt_' in /home/steve/Documents/SF5.6/lib/proces.a(blkdat.o) is smaller than 32 in /tmp/ifortpmrpmh.o ld: Warning: alignment 16 of symbol `flonm6_' in /home/steve/Documents/SF5.6/lib/proces.a(blkdat.o) is smaller than 32 in /tmp/ifortpmrpmh.o I see under windows and using XE2011 it aligns these using 32 bytes.  But the common blocks are only 16 bytes long.  Under 2011 the map gives                 0x0000000000cdd1f0                droot_find0_                 0x0000000000cd6b80                hstdt8_                 0x0000000000cdd2c0                hpxloc_                 0x0000000000cd6b70                hshdt_                 0x0000000000cdd300                svredb2_ (not sure why they are not ordered sequentially ) where you can see hstdt8 is 16 ...
Internal compiler error - character(:) pointer in function declaration
By ernst.a.meese@sintef.no1
The program below gives an internal compiler error for ifort (IFORT) 14.0.3 20140422 under Linux.  It is the character(:) in front of function getS that triggers the error.  Moving character(:) to the pointer statement four lines below makes everything work ok. MODULE testModule   TYPE :: FOO      CHARACTER(LEN=:), ALLOCATABLE :: s     CONTAINS      PROCEDURE, PASS(this) :: getS      PROCEDURE, PASS(this) :: setS   END TYPE FOO CONTAINS     PURE SUBROUTINE setS( this, s )     !     CLASS(foo),   INTENT(inout) :: this     CHARACTER(*), INTENT(in)    :: s     IF( .NOT. ALLOCATED( this % s ) ) THEN        ALLOCATE( this % s, SOURCE=s )     ELSE IF ( LEN(this % s) /= LEN(s) ) THEN        DEALLOCATE( this % s )        ALLOCATE( this % s, SOURCE=s )     ELSE        this % s = s     END IF   END SUBROUTINE setS   CHARACTER(:) FUNCTION getS( this ) RESULT( p )     !     CLASS(foo), INTENT(in), TARGET :: this     !     POINTER :: p     p => this % s   END FUNCTION get...
Strange behaviour of private variable with OpenMP
By unrue6
Dear Intel users, I have a strange behaviour with a PRIVATE variable. I'm using Intel Ifort 14.01 My program has many lines of code, so I report a snippet that summarize the situation. In the main I have an integer  global variable, a parallel region that sets that variabies, and a function ever in parallel region that uses the variable. If I define the variable PRIVATE, the code dies. If Ipass the same variable to a subroutine the code works fine, also if the results are not the same as serial code. This is the snippet that fails: PROGRAM my_program integer samplmin_newscal integer samplmax, sampl0, deltaT REAL(stnd), DIMENSION( : ), allocatable :: t0 samplmax = some_value sampl0 = some_value deltaT = some_value ...allocate and set t0 $!OMP PARALLEL DO PRIVATE (i, samplmin_newscal) DO i samplmin_newscal = some_value call my_subroutine() END DO contains my_subroutine() real to_tmp DO ij = samplmax, samplmin_newscal, -1 t0_tmp = t0(ij + sampl0)+deltaT ...
Passing a null pointer to a subroutine fails with segv
By Raghu Reddy2
Actual argument is a pointer that is set to null. The dummy argument was declared as a variable, but is never used. The code when compiled and run crashes with a segmentation fault. Is it illegal to pass a pointer set to null to a subroutine? Especially if it is not used? This test was created from a larger real program. fe5.% ifort -v ifort version 14.0.3 fe5.%
getenv and setenv subroutines in Fortran
By Wadud M.4
Does the Intel Fortran compiler have Fortran wrappers for getenv and setenv subroutines? If so, which link flag should I use to obtain them?

Pages

Subscribe to Forums