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

未找到内容

More Tech Articles

Resolving problem when building HDF5* with Intel® compiler 14.0
作者:Yolanda Chen (Intel)张贴日期:11/12/201310
Introduction To build the latest HDF5* with Intel® compiler 14.0, a segmantation fault occurs when running "make check". This article is to provide a solution in resolving this issue. The information in this article is assuming you already undertand how to build HDF5* with Intel compilers by read...
Getting Started with Intel® Composer XE 2013, New User Compiler Basics
作者:AmandaS (Intel)张贴日期:11/07/20130
Compiler Methodology for Intel® MIC Architecture Getting Started with Intel® Composer XE 2013, New User Compiler Basics Overview Modern compilers can be invoked with hundreds of options. From these, what are the essential set of options needed by the typical application programmer? This chapter h...
Memory Allocation and First-Touch
作者:AmandaS (Intel)张贴日期:11/07/20132
Compiler Methodology for Intel® MIC Architecture Memory Allocation and First-Touch Memory allocation is expensive on the coprocessor compared to the Intel® Xeon processor so it is prudent to reuse already-allocated memory wherever possible. For example, if a function gets called repeatedly (say...
Overview of Vectorization Reports and the -vec-report6 Option
作者:Ronald W Green (Intel)张贴日期:11/07/20130
Compiler Methodology for Intel® MIC Architecture Overview of Vectorization Reports and the -vec-report6 Option Note: This article applies to Intel Compiler version 14.X and earlier. With version 15.0, the four optimization report options (-opt-report, -vec-report, -openmp-report, and -par-re...
订阅 英特尔开发人员专区文章

Supplemental Documentation

未找到内容
订阅 英特尔开发人员专区文章

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


demo code specifically dll_shared_data
作者:steve k.1
I recently downloaded composer edition XE 2015 update 2 for trial and I am trying to get 2 programs to share data, I have tried several things that I saw online to accomplish this, the 2 programs both will link but they do not share the data (i.e. the variable has one value in one program and a different value in the other)... I specifically have been trying a dll and the !DEC$ ATTRIBUTES DLLEXPORT (and DLLIMPORT) method  I see there is a sample program called dll_shared_data taht is supposed to illustrate this functionality, but this solution does not appear to be included in what I downloaded... can anyone post this code snippet or tell me where it is available? Thanks
Read hex byte into character(1)
作者:Adrian F.1
I have a character variable of length 2, eg ch2 = '4f', which I want to read into a character variable of length 1, ch1, which must contain the ASCII representation of the 2-char string, ie. Z'4f'  ie. ch1='O'.  Is there an elegant way to do this in a READ / FORMAT statement?  Something like read(ch2,'(z2)') ch1?
IFLOGM dialog scroll bar position problem
作者:app461911
I was making an update to my last remaining program that uses IFLOGM for dialogs rather than the Windows SDK. Consider the small routine below which gets the handle for a list box on a modeless dialog, gets the min / max range of the vertical scroll bar and then sets the current position to the max position such that you can see the info that has been put there. This works fine in that the 'get' returns the correct values, and 'set' returns with the correct position before the update, however irrespective of where the slider thumb was or has been set to the dialog is always then displayed with the thumb moved to position zero. IE my set has no effect.  Is my code wrong? Is it just a 'feature' of the IFLOGM implementation of dialogs? Is there a simple alternative method? Any ideas would be appreciated. Best Regards, Andrew  subroutine update_scroll_pos() use :: ifwin, only: bool, LPINT, GetScrollRange, TRUE, SetScrollPos, & SB_V...
fatal error LNK1104: cannot open file 'ifconsol.lib
作者:Julie D.11
Hello: I have installed the 30-day trial Intel Parallel Studio XE Composer.  I also installed Microsoft Visual 12. I am new to using a compiler.  I am new at troubleshooting issues concerning computers.  I am a new beginner at using Visual C++ or fortran.  I have read other forum entries to learn about similar situations.   I have had IT support for these types of projects at school or work.  Expect, I am trying to install on my home computer with the hopes of using a compiler.  I am trying to compile a ANSYS fortran user subroutine using these products.  I keep getting the following error: LINK: fatal error LNK1104: cannot open file 'ifconsol.lib'.  I have located the file at this location: C:\\Program Files (x86)\Intel\Composer XE 2015\ compile\lib\intel64 I would like to have some success with this product.  But, so far the trial product is very hard to get configured for use. Can someone help me with this error. Regards, Julie D
Annoying warning #8753
作者:goetti18
Since I use the 2013 Fortran compiler I get an annoying warning: warning #8753: A CHARACTER component of an interoperable derived type must have length 1. It is caused by following type which is an equivalent to a simple C data structure of a DLL: type, bind(C) :: MDSLConfigA     character(MDSL_APPNAME_LEN, C_CHAR) :: szAppName        character(MDSL_MAXPATH_LEN, C_CHAR) :: szLocalPath      character(MDSL_MAXPATH_LEN, C_CHAR) :: szGlobalPath     character(MDSL_MAXPATH_LEN, C_CHAR) :: szHelpFile       integer(C_INT)                      :: iLangID      end type MDSLConfigA typedef struct MDSLConfigA_ {     char    szAppName[MDSL_APPNAME_LEN];     char    szLocalPath[_MAX_PATH];         char    szGlobalPath[_MAX_PATH];        char    szHelpFile[_MAX_PATH];          int     iLangID;                    } MDSLConfigA;                         Is there a way to disable the warning or to avoid it? Thanks in advance for all comments.  
String encrypting in Fortran
作者:Adrian F.1
Message for Steve Lionel:  Steve, the last post in this archived thread - https://software.intel.com/en-us/forums/topic/313560 - has a link to some code you wrote to solve the problem.  The link is no longer active.  Do you have another link to this code? Adrian
fortcom.exe not found; How to set up command line for 64 bit builds?
作者:Grey E.3
Hello, I am running ifort via command line (via the windows start menu). I am receiving the following error: ifort: error #10037: could not find 'fortcom' ifort: error #10273: Fatal error in fortcom, terminated by 0Xffffffff I have noticed that fortcom.exe is not within bin/intel64. However, there is a copy in bin/ia32. I'm guessing my install is not setup for 64 bit builds. How do I set it up to do so? Can I simply copy fortcom.exe over to bin/intel64. Note that everything worked fine until I did an intel software update... Thanks!
is it possible for two users to write a common Direct Access file?
作者:Xj Kong2
It means the two(or more) users write different records to the same file by different programs. How to write to the shared file by Fortran implementation?
订阅 论坛

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


OpenMP & Shared derived array
作者:criswu2
type :: zmplx2d complex*16,pointer:: val1(:,:),val2(:,:) end type type(zmplx2d),dimension(:),allocatable:: acamats !$omp parallel do private(ilo,jlo,snedges,fnedges, & ies,ief) shared(acamats) & schedule(guided) do j = Levindx(i), Levindx(i+1)-1 ilo = edgeips(2,j) jlo = edgeips(1,j) snedges = igall(jlo+1)-igall(jlo) fnedges = igall(ilo+1)-igall(ilo) ies = igall(jlo) ief = igall(ilo) call farboxInteraction2(snedges,fnedges,acacomps(j), & acamats(j)%val1, & acamats(j)%val2,ztmp1(ief),ztmp2(ies)) enddo I want to parallelize the do-loop using OpenMP.   the result of the codes is not correct.  It seems OpenMP don't support derived types. Anyone knows why and how to solve this problem ?   
Another catastrophic error: **Internal compiler error
作者:hiroshi-murakami3
$ ifort -v ifort version 15.0.0 $ ifort -c -fast -openmp test.F90 test.F90: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error. compilation aborted for test.F90 (code 1)   Note, If you undefine the macro flag "BUG_OCCUR", the compiler error disappears. OS: CentOS-6.x
EOF Question
作者:bhvj5
Hi    I was trying to implement the EOF function, in order to read until end of the input file, as DO WHILE (.NOT. EOF(unit number of open file)) It gives the following error: forrtl: severe (24): end-of-file during read, unit 121, Attached herewith is the test code and input file. Any suggestions in this regard would be greatly helpful. Thank you.
source the ifortvars.sh or ifortvars.csh file to properly set the user environment
作者:iodine l.2
in the old version like fortran 11.1.046, after the compilers are installed, it is necessary to source the ifortvars.sh or ifortvars.csh file to properly set the user environment to use the Intel compilers. but now I install a new version (Intel® Parallel Studio XE 2015 Professional Edition for Linux) I fail to find out when the ifortvars.sh is, can anybody give me the path of it? the compliers is installed under /opt/intel
Implementing Table Lookup
作者:bhvj3
Hi,     Please disregard my previous posts in this regard. Attached herewith is a modified draft program (including the input file) where I have tried to create a subroutine called "fetchvalue" I am having trouble with the driver program, when I am trying to call this subroutine. I am getting an error while compiling saying that the "fetchvalue" hasn't been declared. Any suggestions of pointers in this regard will be greatly helpful. Thank you.  
Limitations on array slice bounds checking
作者:Brian1
I recently ran into an issue with assignment of incompatible array sections to an allocatable array that was not caught by the Intel Fortran compiler's bounds checking.  A reduced example is: subroutine sub1(array) implicit none real, intent(inout) :: array(42) real, allocatable :: send(:) allocate(send(1)) send(:) = array(9:10) end subroutine ! subroutine sub2(array) ! implicit none ! ! real, intent(inout) :: array(42) ! real :: send(1) ! ! send(:) = array(9:10) ! end subroutine program bug implicit none real :: array(42) array = 0.0 call sub1(array) ! call sub2(array) end program Subroutines sub1 and sub2 assign an array section of size two into an array section of size one.  Obviously, this is illegal.  The version in sub2, which assigns to an ordinary array, is diagnosed at compile time when bounds checking is on.  The version in sub1, which assigns to an allocatable array, is not caught at compile time or at run time. Is this the expected ...
getarg does not work?
作者:vincenzo s.8
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
作者:bhvj8
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.  
订阅 论坛