Intel® Fortran Compiler

SIMD prefix sum (cumulative sum)


Does anyone have a good reference to an implementation (or at least an algorithm) for implementing a so-called prefix sum (a cumulative sum) in Fortran using SIMD?  I have found several good reference for implementations in C++ but they use SIMD functions peculiar to C++ that don't appear to be available in Fortran.


error stop: warning #6477: Fortran 2008 does not allow this statement or directive

Something that irritated me for a long time.

When compiled with -warn all -stand f08 I get

: warning #6477: Fortran 2008 does not allow this statement or directive.
error stop

This seems completely wrong. Indeed Fortran 2008 introduced this statement.

Or am I using the compiler flags wrong?

This in with ifort (IFORT) 15.0.2 20150121.



Calling a function from a parallelized do concurrent loop

Trying to compile my program in the release mode with parallelization, I've encountered a problem with calling a function, defined in a module. Here is the sample program to reproduce the problem:

program test
use test_mod
implicit none

integer, parameter :: N = 10
integer :: i
real :: a(N)

do concurrent (i = 1:N)
	a(i) = func(real(i))
end do

print *, a

end program

and the module:

DEC$ ATTRIBUTES DLLEXPORT attribute can not be assigned to an internal procedure


I am trying to expose some Fortran subroutines in a DLL.
I didn't write the Fortran code, and I'm having some difficulties creating the DLL.

The Fortran code is something like this (simplified):

! ===========================================================================
 ! Some declarations, initialisations etc
   subroutine Initialisation


mixed mpi/coarray programs - is -coarray-config-file required?

I've a mixed mpi/coarray program that I'm trying to port to intel.
I build it with mpiifort:

mpiifort --version
ifort (IFORT) 15.0.2 20150121

but I'm very confused about  -coarray-config-file option.
I can build the executable with or without this option,
but so far I haven't managed to run it, with or without this option.
My latest attempt is to specify -coarray-config-file at link time,
and submit the job to PBS queue with:

Double click selection of variable name is broken in VS

In November 2013 I posted this but the post is locked so I can not bump it:

If you double click a variable name in the source that is a component of a derived type, VS selects past the percent sign on the left but not that on the right!  It would be better I think if it stopped for both sides. It seams to have got changed in XE2013 update 5. In update 3 select stopped on both sides.

It is not yet fixed in XE 2015 update 3 and I presume not in later ones. I know it probably seams minor but it does affect users productivity. Is there an issue number ?

Passing allocateable array to a FORTRAN DLL

I hope you would not mind my ignorance. I am having a hard time trying to figure out how I can pass an allocatable array from a subroutine to a FORTRAN DLL, or if I am doing anything wrong. The source below does work and the values inside the allocateable array is passed to FORTRAN DLL, but it may seem that it may be overwriting something else? Below is the sample code which we are using currently:

Fortran Console application using fortran Static Library

I am getting Runtime error (Severe<157> : Program Exception – access violation) in Fortran Console application using FORTRAN static library. I have tired commenting out Write statements but it gives error to next Write statement .

I have Parallel Studio XE2013 and Visual Studio 2010 installed on my laptop.


When I had all source files ( from which static library .lib file was created ) compiled within same project it runs fine without any issues.


Is there anything special I need to define/declare in console application file (console.f90)?

Suscribirse a Intel® Fortran Compiler