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
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
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.
Compiling (with ifort 13.1.1) and executing the following code
Hi,
I got the following message running
ifort (IFORT) 13.1.0 20130121in 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:
Hello,
it appears that the compiler generated assembler output (-S) uses the AT&T style syntax by default. Is there a switch to obtain the Intel variant?
Thanks,
Harald
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
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
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"
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:
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: