Intel® Fortran Studio XE

File I/O Overhead at Intel Fortran 13 and Higher Versions


I encounter the I/O performance drop at Intel compiler version 13 and onwards. The MPI code operates a simple read from the mesh file in the following way:

           ((FOO,ISIZ=1,NS),IDIM=1,DL-1), &
           ((FOO,ISIZ=1,SL-1), &
           (DATA(ISIZ-SL+1,IDIM-DL+1),ISIZ=SL,SU), &
           (FOO,ISIZ=SU+1,NS), &
           IDIM=DL,DU), &

Linking against acml

Hi there,

I am running into problems linking against acml 5.3.1 with ifort 14.0.1

while "gfortran -o TestACML TestACML.f90 -L /opt/acml5.3.1/gfortran64_int64/lib/" compiles without error,

"ifort -o TestACML TestACML.f90 -L/opt/acml5.3.1/ifort64_int64/lib/" produces:

Fortran 2003 features not recognize for ifort 15.0.2

Hi all,

I have been compiling WRF-chem using ifort 15.0.2. After configuring WRF, there are some warnings indicate that ifort does not recognize part of FORTRAN 2003 features. But It is claimed(by Wiki) that ifort has full support of FORTRAN 2003 since the release of 15.0. The output of configuration is in the attachment.

Any ideas to solve this problem?

Many thanks!

compiler-generated interfaces question

We have built all our own interface for all of our routines and would like ifort to check them for us. That is, tell us if there is a missing or incorrect interface. However, the only info/behavior I can find is to let the compiler generate interfaces or not. When we let it we get genmod interfaces for all routines whether we have one or not. Our interface mod file is built and used but I want the compiler to only generate an interface when ours in incorrect or missing. Is there a combination of compiler options that will get us that behavior?

Free webinar April 7 2015 9am PST "Further Vectorization Features of the Intel Compiler"

There is a free webinar “Further Vectorization Features of the Intel Compiler” coming next Tuesday talking specifically about getting more vectorizations from Intel Compilers. But you would benefit it more if you've watched/listened to the previous webinar Performance essentials using OpenMP* 4.0 vectorization with C/C++.
Please register at Intel® Software Tools Technical Webinar Series 

Installing Fortran compiler

I am trying to install the Fortran compiler (and associated libraries and linkers) on my MacBook Pro laptop -- a brand new (Yosemite) system.  I downloaded the "Academic Research Performance Libraries from Intel (OS X*)” to my Mac — a 1.1 Gbyte file named: m_ipp_8.2.1.108.mpkg. I then clicked on this file and went through the install procedure.  What do I do next? I found the webpage:

OpenMP calls with newer multi core/thread CPUs

My new workstation runs RH Release 6.6 with Linux kernel 2.6.32-504.el6.x86_64, with a Xeon CPU & 64 GB RAM, etc.  Nothing else is different, however, now my Fortran routines with openMP calls to the BLAS lib (from Intel Libs) aren't maximizing core/thread usage (it looks like core/thread-swapping has gone "nutz") unless I set the number of threads to 1 in my execution script.  Have you seen this behavior with upgrades to the multicore/multithread CPUs?

Overriding type-bound procedures

Hi there,

I am trying to make best use of Fortran's OOP features and I have a question regarding the overriding of type-bound procedures.

Is there a way in which I can define a type-bound procedure that can be overridden in child objects (objects which extend the base class) and have different dummy arguments?

At the moment I can override type-bound procedures but I have to have exactly the same number and type of dummy arguments. I had been thinking about generic procedures, but I couldn't figure out to tackle the problem.



ifort real*4 count bug

Recently, I wrote a piece of codes, like that below. The value of num is larger than the range of integer 32.
The result of the tmp should be 2. But in that code, the program gave 0. No matter if use ifort 13.0.0 or 15.0.0. If I change the tmp from real*4 to real*8, the result is correct. Ang idea?

integer*8,parameter :: num = 2500000000
integer*8 :: i
real*4,dimension(:),allocatable :: a
real*4 :: tmp

a = 0.0e0

do i = 1, num
   if(i.eq.1) then
      a(1) = 1.0e0
   else if(mod(i, 2).eq.0) then
      a(i) = 1.0e0
      a(i) = -1.0e0
Subscribe to Intel® Fortran Studio XE