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

Nenhum conteúdo foi encontrado

More Tech Articles

Nenhum conteúdo foi encontrado
Assine o Artigos do Espaço do desenvolvedor Intel

Supplemental Documentation

Nenhum conteúdo foi encontrado
Assine o Artigos do Espaço do desenvolvedor Intel

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


Assignment overloading for intrinsic types?
Por Jacob Williams3
Consider the following toy example: module test_module implicit none type :: myint integer :: i = 0 contains generic :: assignment(=) => int_to_myint procedure :: int_to_myint end type myint contains subroutine int_to_myint(me,i) !myint = integer assignment implicit none class(myint),intent(inout) :: me integer,intent(in) :: i me%i = i end subroutine int_to_myint end module test_moduleThe type(myint)=integer assignment works great.  My question is this: is it possible to have the reverse assignment (integer=type(myint)) work as well?  This would be like overloading the assignment operator for the integer type, I guess?  Is such a thing possible?
A gap in interface checking for procedures? Can it be filled?
Por FortranFan17
This is based on a discussion at comp.lang.fortran: https://groups.google.com/forum/#!topic/comp.lang.fortran/nzq3Sad_zQE The following code generates no compiler warnings with /warn:interfaces or /warn:all: MODULE m !.. IMPLICIT NONE !.. PRIVATE !.. PUBLIC :: s1_intent_in CONTAINS SUBROUTINE s1_intent_in(ia) INTEGER,INTENT(IN) :: ia CALL s2_intent_in(ia) RETURN END SUBROUTINE s1_intent_in SUBROUTINE s2_intent_in(ia) INTEGER :: ia ! Missing INTENT attribute ia = 2 ! Dummy argument should be subject to limitations of actual argument ! i.e., it cannot be redefined; shouldn't the compiler be able to catch ! this and issue some warning? END SUBROUTINE s2_intent_in END MODULE m Intel Fortran documentation summarizes the standard nicely: "If no INTENT attribute is specified for a dummy argument, its use is subject to the limitations of the...
How to use FORTRAN compiler "Data Options" together with a batch file
Por Reza M.2
Hi Intel developers, The FORTRAN language prohibits changing the definition status of an argument associated with a constant or expression. My application needs to do so; therefore, I need to specify the /assume:noprotect_constants option. I use the following MSC.Marc batch scripts and its options: run_marc.bat -j job_name -u user_subroutine I wonder how I should add "-assume noprotect_constants" option? As you may know the default is "-assume protect_constants". Thank you in advance for your assistance.  Reza
"The procedure entry point for_error_stop could not be located...
Por opmkl2
Suddenly, I encounter this message while trying to run my code (which compiles fine with  Intel(R) Visual Fortran Compiler XE 14.0.4.237 [Intel(R) 64]...): The procedure entry point for_error_stop could not be located in the dynamic library libifcoremd.dll. Any suggestion regarding the root cause for this?
Problems compiling with Intel Visual FORTRAN (ver. 11.1) on Windows 7 Enterprise
Por Deb C.18
I just migrated from a desktop PC to Dell Ultrabook and has the IntelFORTRAN with IMSL (Professional version 11.1) installed on Ultrabook. I tried compiling an old FORTRAN code that uses IMSL special function routine, and, this code was running just fine on the old machine (desktop/PC which had Intel FORTRAN with IMSL ver. 11.1). When I tried recompiling on the new Ultrabook the same code it started giving me errors for the IMSL.  I am attaching both the source code and the "build.htm" file which lists the errors. Can anyone please help me fix these errors? - thanks, Deb C.
Variable import from DLL broken by upgrade
Por dougf20
When I rebuild my code using Visual Fortran Composer XE 2013 SP1 Update 4, previously working (using version 13.0.1.119) imports of variables that are exported from a DLL (created in ObjectAda, if that matters) no longer work.  Imports of procedures still work, although it seems that I no longer need to include a DLLIMPORT directive for this. Here's the code: real(kind=8) :: DLLFunc real(kind=8) :: LocalDouble !DEC$ ATTRIBUTES DLLIMPORT:: DLLFunc !DEC$ ATTRIBUTES DLLIMPORT:: DLLProc !DEC$ ATTRIBUTES DLLIMPORT:: LocalDouble When I rebuild using XE 2013 SP1 Update 4, I can access DLLFunc (a function) and DLLProc (a subroutine) just fine (although it also works now when I leave out the DLLIMPORT directives). However, I get the following compilation error for the imported variable LocalDouble: error #6406: Conflicting attributes or multiple declaration of name. [LOCALDOUBLE] I'd appreciate any thoughts regarding what I need to update to get this back in working order, and perhaps some i...
Unlimited polymorphic variables
Por NsK6
Hello, I'm really afraid of reporting this one... Please tell me it is standard, and if it's not, that the standard is going to change: module dummy_module implicit none type :: a_type integer(4) :: val end type a_type type :: b_type integer(4) :: val1 integer(4) :: val2 end type b_type contains function f(x) ! Variables class(*), target :: x class(*), pointer :: f ! Body of f f => x end function f end module dummy_module program polymorphism_test use dummy_module implicit none type(a_type), pointer :: a type(b_type), pointer :: b allocate(b) b%val1 = 3.0 b%val2 = 4.0 a => f(b) end program polymorphism_test  Compiles with  XE 2013 SP1 14.0.0100.12 and  XE 2015 15.0.0107.2010 (and I think with Update 1 as well), which is perfect, but gfortran complains: main.f90:38.8:         a => f(b) ...
SETCOLORRGB
Por Robert M.8
I am working through some examples in the book "Compaq Visual Fortran A Guide to Creating Windows Applications'  in which this code is given: ibackcolor=rgb(255,255,255) ! white ifrontcolor=rgb(0,0,0) ! black iret = setcolorrgb(ifrontcolor) iret = setbkcolorrgb(ibackcolor) iret = settextcolorrgb(ifrontcolor) This is equivalent to the following given in the Intel documentation: iret = setcolorrgb(Z'00000000') iret = setbkcolorrgb(Z'00FFFFFF') iret = settextcolorrgb(Z'00000000') My question is where in the Intel documentation do I find a description of the RGB function?   Where can I find documentation for other functions like RGB that are built into Intel Visual Fortran?  Thank you.
Assine o Fóruns

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


OOP fortran: can not make a subroutine execute different objects
Por luis.gc.rego4
I need some help please. In this code I create two objects (MM and FF) that extend an abstract object (MF). Then I have a subroutine (execute_MM_or_FF) that is supposed to handle both objects (MM and FF). I tried several ways of doing it but none worked; this is an example for which I get the error message error #8169: The specified interface is not declared.   [OUTPUT] What is the problem with this code? thanks !=================================== module Abstract_class_m     implicit none     private     type , abstract , public :: MF     contains         procedure (output_info) , deferred :: output     end type     abstract interface         subroutine output_info( me , iter)             import :: MF             class(MF) , intent(in) :: me             Integer   , intent(in) :: iter         end subroutine     end interface end module Abstract_class_m !=================================== module MM_class_m     use Abstract_class_m      implicit none     private    ...
Porblem/Bug for GET_ENVIRONMENT_VARIABLE with MPI
Por bpichon6
Dear Fortran !! In the following (a hello world kind) program, I try to read the processor's name where images are running. Each process can read the processor's name with a EXECUTE_COMMAND_LINE("echo $HOSTNAME") but with GET_ENVIRONMENT_VARIABLE(...), nothing is read (ios /=0) Note that a single image works well  (mpiexec.hydra -genvuser ./Hello_world_mpi.exe  is Ok) Executable is made with : ifort -I/softs/intel/impi/5.0.1.035/intel64/include/ Hello_world_mpi.f90 -o Hello_world_mpi.exe -L/softs/intel/impi/5.0.1.035/intel64/l ib/ -lmpifort -lmpi We have ifort 15.0.0 and mpi 5.0 (as shown above) We use mpiexec.hydra with OAR Bernard ==========================   source code ============================== Program WHERE_I_AM    USE mpi    USE ISO_FORTRAN_ENV, Only: Output => Output_unit    Implicit None    Integer :: nb_procs, rank, code, ios = 1    Character(Len=20) :: env_name, env_value    !    Call MPI_INIT(code)    Call MPI_COMM_SIZE ( MPI_COMM_WORLD , nb_procs , code ...
array temporary
Por Lin L.1
when I'm calling ZGEMV using the interface ZGEMV_f95, the following warning appears: forrtl: warning (406): fort: (1): In call to ZGEMV, an array temporary was created for argument #5 forrtl: warning (406): fort: (1): In call to ZGEMV, an array temporary was created for argument #7   How to avoid this warning?
Uniary operator following arithmetic operator
Por hiroshi-murakami3
! (ifort version 15.0.0 or earier) !  I think it is a bad idea to extend the grammer of the arithmetic expression ! in Fortran langurage as the followings. ! Such functionality might look convenient at first, however it would enhance !possibilities to make the compiler to silently ignore  possible human-errors ! such as mis-types especially in lengthy expressions.   ifort accepts the source code below without errors nor warnings. --------------------------- program to_be_avoided implicit none real a, b, c, d, e, f, g, x, y, z, w    a = --3.0    b = ++3.0    c = -+3.0    d = +-3.0    e = 2.0 +-3.0    f = 2.0 *- 3.0    g = 2.0 *+ 3.0    x = 2.0 *- 3.0    y = 2.0 /- 3.0    z = 2.0 +-+ 3.0    w = 2.0 +-+----- 3.0    !----    a =  2.0 ++ a / x    b = --y    c = +-w    d = y *- x    e = z /+-a    f = -- y ++ a /- x    g = -- y ++ a / -----x    x = -a **-x    y = -+a **--x    z = --a **+ x ** y    w = sin(++2.0) -- sin(x--y) ! integer expressions as well (omitt...
Automatic allocation of arrays in fortran is not working
Por dhirajhazra3
Hello,     I am using ifort 15.0.1. I know that the automatic allocation works in fortran 2008. I got it working with gfortran. But it seems ifort is not able to compile such programs appropriately. Below is a simple program : program testing implicit none real,allocatable,dimension (:):: a,b allocate(a(10)) a = 1.0 b = a print*,size(b) end program   The array "b" should get the allocation of array "a" along with its values. When I compile with gfortran, the program prints 10, but for ifort it prints 0. Is this feature of F2008 supported yet in ifort ? Regards, Dhiraj               
Help with Intel Fortran on OS X
Por Teresa de Jesús C.1
  Hello everyone! I am new in Intel Parallel Studio, and Trying to install and tune the 2015 version in a MacBook pro running Yosemite OS, for now the trial version. The dmg package is already installed and the environmental program executed. How ever running a simple program the following printout appears: ifort: error #10401: error running 'xcrun -find ld' I saw in the forums but not reports on such an error. What is missing in my installation? Some advices? In advance I thank your answer.   Best, Tere            
catastrophic error: **Internal compiler error: segmentation violation signal raised**
Por hiroshi-murakami1
With FFLAGS="-C -openmp" # THIS DOES NOT MAKE COMPILATION ERROR.   ifort -c $FFLAGS sub1.f90 sub2.f90 # THIS ALSO DOES NOT MAKE COMPILATION ERROR.   cat   sub1.f90   sub2.f90   >   combined.f90   ifort -c $FFLAGS   combined.f90 # THIS "DOES" MAKE COMPILATION ERROR.   cat   sub2.f90   sub1.f90   >   combined-r.f90   ifort -c $FFLAGS   combined-r.f90 The error message is: combined-r.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 combined-r.f90 (code 1) % ifort -v ifort version 15.0.0 The Operating system, Linux (Cent-OS 7.0, or Fedora16 etc.) You can do the above experiment by using my script "compile.sh".  
Differences between !$OMP SIMD and !DIR$ SIMD
Por Fiona R.3
Hi Folks,  Can anyone explain the difference(s) between !DIR$ SIMD and !$OMP SIMD please or point me towards where I can find this out? I should add, I've already read through the thread at https://software.intel.com/en-us/forums/topic/509157 but this didn't fully explain the differences.  As I understand !DIR$ SIMD is an Intel specific directive but !$OMP SIMD is part of the OpenMP 4.0 standard, however, many of the clauses that can be added and the use cases appear to be identical for both directives.  Thanks in advance.  Fiona  
Assine o Fóruns