# 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

Industry-leading Fortran compiler, source compatible across Windows*, Linux* and OS X*. Outstanding optimization capability and broad language standard support now with full Fortran 2003 support and Fortran 2008 BLOCK support. Work with a familiar toolset on your favorite platform.

Choose the Intel® Fortran Compiler for your operating system:

### 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

• 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

### 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

### 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

• 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

### 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

• 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

### 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

• 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*

#### 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

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...
Posted 02/20/20140
Compiler Methodology for Intel® MIC Architecture Selective Use of gatherhint/scatterhint Instructions Overview The -qopt-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 doi...
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...
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-dimensi...

## Supplemental Documentation

No Content Found
 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.
!dir$loop count vs !dir$ parallel
6
I'm working through my old code to improve its performance and running GAP. The reports often suggest I add !dir$loop count min(XXX) to the code. Although I reckon that more often than not the loop count will exceed XXX, I cant guarantee it. I have therefore added IF loops to the code along the lines of the following example Assume A and B are vectors of the same size IF (SIZE(A) > 255) !DIR$ LOOP COUNT MIN(256)     B=A   ELSE     B=A   END IF This strikes me as pretty ugly and will have a small performance penalty as the IF loop is tested. Alternately I could write !DIR$PARALLEL ALWAYS B=A Is there a better way and which approach to coding is considered the best? Will the computation provide the wrong answer if I set loop count min and at run time there are less iterations to do or will it just be inefficient? Cheers Kim Problem installing XE 2015 - Intel.Misc.Utilities 3 I have a problem with VS 2010 Win7 when installing w_fcompxe_2015.4.221. After installation I cannot open any VS dialog. Instead I get the following error message. "Could not load file or assembly 'Intel.Misc.Utilities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f4875dd4c8d7762f' or one of its dependencies. The system cannot find the file specified." I've tried removing XE 2015 and re-installing, repairing VS and checking to see that I have the latest MS updates. This did not help. I finally removed XE 2015 and re-installed XE 2013 with w_fcompxe_2013_sp1.5.239, and that solved the problem. Mike Visual debugging of #define variable 1 I have a line like this: STRUCT(2)%VAR = 1 I use fpp to make the code a little more readable with #define VAR STRUCT(2)%VAR and now the code is VAR = 1 The preprocessor expands this to the full line and everything works fine. However, when I am debugging, I can no longer hold the cursor over "VAR" and see the value in a popup, nor can I put "VAR" in a watch window. Is there a way to have the debugger know about expanding "VAR" like the preprocessor does? LNK2001: unresolved external symbol XE 2015 in GENMOD 4 I recently upgraded from XE 2013 SP1 to XE 2015 (15.0.22) and with no changes to the code am getting LNK2001: unresolved external symbol errors from the Interface modules automatically generated by the compiler when using the -warn:all switch. Hopefully attached is a code snippet showing the problem along with a batch file to compile with from the 64 bit command line. The problem is relatively simple. My main program IPProc calls S/R AVERAGEIP PROGRAM IPPROC IMPLICIT NONE CALL AVERAGEIP() END AVERAGEIP contains a S/R AVERMED which dimensions an array using a variable declared in AVERAGEIP SUBROUTINE AVERAGEIP() IMPLICIT NONE INTEGER :: NRPTS RETURN CONTAINS ! even though this S/R is no longer called if I remove it the link error disapears SUBROUTINE AVERMED() REAL, DIMENSION(NRPTS) :: ZVEC ZVEC = 0 RETURN END SUBROUTINE AVERMED END SUBROUTINE AVERAGEIP The integer NRPTS is local to AVERAGEIP yet when I compile with-check:all -debug:full -traceback -warn:all I... shell32.lib 5 Hi All, I am using Intel Visual Fortran Composer 2013 with Microsoft Visual Studio 2012 to build an exe file. I got the following error message: 1 fatal error LNK1104: cannot open file 'SHELL32.LIB' Can anyone please share with me some ideas of how to fix this issue? Thanks, Fengbin AUTOINVIKE will not execute more than once 8 I'm having a problem with executing a call to the Execute method of a Connection object more than once. The first call executes fine but any subsequent calls just cause the program to stop execution. The point the program stops is the "$$STATUS = AUTOINVIKE($OBJECT, 6, invokeargs)" statement in the $Connection_Execute function. The$Connection_Execute function is contained in a module called "msado28" which was created with the Module Wizard.  The commandtext for the Execute method is merely a call to a SQL Server stored procedure called Storetest which takes one string parameter and has been tested within SQL Server Management Studio. The main program code is as below: program storetest  use msado28  implicit none    integer(int_ptr_kind()) COMcnn  character*120, parameter::COMcnnstr='Provider=SQLOLEDB; Data Source=mySQLServer; Initial Catalog=myDB; Trusted_Connection=Yes'  integer(4) COMrtnstatus  integer(int_ptr_kind()) COMexestatus  type(variant) rst  integer*4 i  integer(4)...
problem with Installing XE 2015
4
I have been running a thread with ...forums/intel-software-development-products-download-registration-licensing and have come up against a problem such that I have been advised to start a new thread with fortran-for-windows ... Under the instruction of registration-licensing I have downloaded Intel Software Development Products for Windows, Education, have been given a serial number and have installed the software, or have tried to ... My need is to compile .dll files from fortran subroutines with the command ifort /DLL /libs:static /threads jobname.f. But I am not able to access any of the fortran capabilities of the software. The first page of the attached powerpoint file shows a screendump of the Intel folder within Program Files (x86) and also of what I see under the shortcut icon. The second page shows the 'getting started' page of Parallel Studio XE 2015 with the initialisation instruction that I have followed. It also shows the cd window with the error message 'Visual Studio ...
Coarrays on Windows
3
Inspired by a posting on comp.lang.fortran I looked up whether the Intel Fortran compiler could "do" coarrays on Windows. It turns out it can indeed, at least as far as building a simple program is concerned. But I ran into a problem when I tried to run it: > .....\mpiexec hello.exe User credentials needed to launch processes: account (domain\user) [.....]: password: Error connecting to the Service [mpiexec@....] ..\hydra\utils\sock\sock.c (270): unable to connect from "mymachine" to "mymachine" (No error) read from stdin failed, error 6. [mpiexec@....] ..\hydra\tools\demux\demux_select.c (78): select error (No such  file or directory) [mpiexec@....] ..\hydra\pm\pmiserv\pmiserv_pmci.c (480): error waiting for event [mpiexec@....] ..\hydra\ui\mpich\mpiexec.c (945): process manager error waiting for completion Note: I had to invoke mpiexec explicitly because another program called mpiexec got in the way (via the PATH variable). What can I do to solve this error? Regards, Ar...
 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.
Fortran Wavelet Transforms
1
Hey guys,   I am trying to find some online library or code that computes Daubechies wavelet coefficients, for image processing purposes (horizontal, vertical and diagonal detail coefficients). Is there any algorithm you are aware of or have used in the past?   Thank you! Cyril Nader
FORTRAN: Opening and reading data from a network location
3
I am trying to run a simulation using FORTRAN. I have large input data at server A and I want to read input files from server A and run my simulation on server B. I am using a FORTRAN subroutine to assign input into a BCs array. I want to read input file from server A via FTP and assign them into BCs array on server B. I will be grateful if you can suggest me some ways to do so. Thanks The code I have tried so far is as follows but it gives error. FILENAME="//192.255.8.152/home5/nadeem/inflow/Inflow_001" OPEN(81,FILE=FILENAME,FORM='UNFORMATTED',STATUS='OLD') READ (81)((UBC3(1,J,K),J=1,N2M),K=1,N3M) ! INLET BOUNDARY CLOSE(81)
cannot find 'ifort' after installing parallel_studio_xe_2015_update3 on ubuntu
2
I am an university student. I have just downloaded and installed the parallel_studio_xe_2015_update3. But in the directory '/opt/intel/composer_xe_2015/bin', I only find 'icc', but not 'ifort'. Have I installed the wrong file? According to the website, the parallel studio should contain both C and Fortran in it. Or am I looking at the wrong directory? I have checked several places but still cannot find 'ifort'. Please help with this. Thank you very much!  BTW, my operation system is 'ubuntukylin-14.04.2-desktop-amd64' and I am pretty new to Linux.
Coarray implementation of QR decomposition?
0
I am wondering if there exists a coarray implementation of the QR decomposition somewhere, in library or source form. We are probably years away from a true coarray implementation of LAPACK, for instance, but in the meantime I am wondering if there is anything to play with. Thanks for any tips/pointers there!
Complex logarithm
8
Hello all, according to the "Intel Fortran Libraries Reference", the natural logarithm of a complex number should give complex values x+i*y with -pi < y <= pi. But: write(*,*) log((-1d0,0d0)),log(-(1d0,0d0)) yields the following output  (0.000000000000000E+000,3.14159265358979)  (0.000000000000000E+000,-3.14159265358979) although the results should be identical and the imaginary part should NOT be -pi. I see this with versions 12 and 15. (In the final version of the code, where several complex logarithms are added up, the compilers behave differently, however, leading to correct results with v12 and incorrect results with v15. This complexity is lost after simplifying it to the above example.) Thank you. Christoph
Bad results from assignment to allocatable array (with realloc_lhs)
1
I've attached a small example that clearly demonstrates that bad results are obtained from assignment to an (unallocated) allocatable array.  I am using the required realloc_lhs switch.  The problem exists with both Intel 14.0.3 and 15.0.2.   A key ingredient to the problem seems to be that the rhs of the assignment is an elemental type bound function referenced through a derived type array.
Intel 14 and 15 compiler bug
1
I've attached a very small example that exposes a bug in 14.0.3 and 15.0.2.  In the example, a module declares a derived type and a F2003 structure constructor for it.  In a later procedure the module is USEd and the type referenced, but the compiler complains incorrectly that the type is not known.  The error goes away if the structure constructor is not defined.
Compiler runs into problem compiling F77 code
1
I'm trying to compile Fortran 77 code (T-matrix code) on a Linux system using Intel Parallel Studio XE 2015 for Fortan and I have the recurring problem of too many errors. I'm using: ifort ampld.new.f and the errors that come up are: ampld.new.f(1): error #5149: Illegal character in statement label field  [T] This test result was calculated by the code in its ^ ampld.new.f(1): error #5149: Illegal character in statement label field  [h] This test result was calculated by the code in its -^ ampld.new.f(1): error #5149: Illegal character in statement label field  [i] This test result was calculated by the code in its --^ ampld.new.f(1): error #5149: Illegal character in statement label field  [s] This test result was calculated by the code in its ---^ ampld.new.f(1): error #5118: First statement in file must not be continued This test result was calculated by the code in its -----^ ampld.new.f(4): error #5149: Illegal character in statement label field  [I] ICHOICE=1  ...