Intel® Fortran Compiler for Linux* and Mac OS X*

Diagnostics of kind mismatches of intrinsics (e.g. MIN) could be improved

Hello,

the standard conformance diagnostics can sometimes be confusing.  Example:

subroutine foo (i, k, m)
  integer    :: k   
  integer(1) :: i, m(3)
  k = min (k, i)           ! Useful    warning
  k = min (k, maxval (m))  ! Confusing warning
end subroutine foo

impure elemental procedure support

Any chance we'll see support for impure elemental procedures sometime soon? It would certainly aid debugging my overloaded operators and assignments. Abstract factory patterns in Fortran often require type gaurding the RHS these operators and assignments. If they are elemental and if an incompatable type is passed (which might extend a common abstract parent class) there is no good way to signal an error. This error will likely have to pass silently.

Bug report and bug-report/feature-request

Hi,

I got the following message running

ifort (IFORT) 13.1.0 20130121
in RHEL 5 x86_64:

single_point_streaming_stats.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.

The compiler was invoked as:

vectorization: data dependence and subscript too complex

Hi everyone - I am trying to better understand both data dependency and the subscript too complex rules.

The snippet below gives the subscript too complex error, whereas if I swap this line for the commented ones the code vectorizes (ifort 12, linux).

Can anyone explain why the compiler would balk at the one but not the other two in combination? They seem to access the same subscripts. What can be done?

Also, am I correct that I can do the two commented lines together (two accesses to zz(k) on one iteration of k)?

Thanks,

Eli

Vectorization and subscript too complex

Hi, I am trying to understand better the data dependence and  "subscript too complex" rules on vectorization. Here is an example of what I don't understand:

  

 do i=1,ni
     do j=1,nj
         zz = 0.d0
!DIR$ IVDEP 
         do k=1,nk
             !!zz(k)=zz(k)+ arr(k,j,i)           ! vectorizes along with line below
             !! zz(k)=zz(k)+ arr(k,j-1,i)      ! vectorizes along with line above
             zz(k)=zz(k)+ arr(k,j,i)+ arr(k,j-1,i)    !subscript too complex
        end do
      end do
  end do

error #6099: An ENDDO statement occurred without a corresponding DO or DO WHILE statement

My module:

module m3
 contains
subroutine pk(iter,c4)
integer,intent(in) ::iter
integer,intent(in) ::c4
real,dimension(:),allocatable  :: b11,b22
integer :: n,i,id1,id2
character(10) :: tfile="  .mtf"
character(10) :: pfile="  .log"

Reaping unused STRUCTURE variables

Anyone know of any tricks to tease out unused STRUCTURE variables from the compiler?  I know you can use "-warn unused" to get a list of unused variables that are declared, but this doesn't seem to work with structure members.  I have a number of structures that are included via external files that are very old, and I would like to strip out all of the variables in those structures that are unused.

I'm running out of ideas; the paths that have been abandoned thus far include:

Trouble building and running openmpi-1.6.4 with intel composer 13.1

I'm having trouble building and running openmpi-1.6.4 with intel composer 13.1.  When building openmpi-1.6.4 it looks for a library called "lintlc.a" which is not in the /opt/intel/composerxe/lib/intel64 directory, which is where composer is installed.  To get around this a symbolic link was created libintlc.a -> libirc.a.  Now openmpi will build but when I try to link a code with mpif90 I get

 

LINK Command:

页面

订阅 Intel® Fortran Compiler for Linux* and Mac OS X*