Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

ifort Internal compiler error: internal abort

Ulusoy__Inga
Beginner
923 Views

Hi, 

I am compiling an in-house fortran code, and with intel fortran (versions 14.0.2 and 16.0.3) I get an error message

4010026_1184

analysis.f90(105): catastrophic error: **Internal compiler error: internal abort** Please report this error along with the circumstances in which it occurred in a Softw
are Problem Report.  Note: File and line given may not be explicit cause of this error.
compilation aborted for analysis.f90 (code 1)


The compiler options invoked are 

CC      = ifort
CLINK   = mpif90
HDF5=$(HDF5HOME)
CFLAGS  = -O3 -c -g -p -traceback -openmp  -I$(HDF5)/include -pg -assume byterecl -gen-interfaces
LINK_FLAGS = -O3 -traceback -openmp -mkl -Wl,-rpath, -lfftw3 $(HDF5)/lib/libhdf5_fortran.a $(HDF5)/lib/libhdf5.a -lz -lrt -lm -pg


With optimization -O1 and no optimization, and with gfortran, this error does not occur.

It seems that there are specific lines in the subroutine that cause the issue:

! this routine does the analysis of the data
subroutine analysis(hel,rho,Ao,phio,phino,rhon,val)
 use params
 use globalvars
 use inputvars
 use omp_lib
 use moreadin
 use hdf5
 implicit none
 complex(dp) :: val(13), rho(2*nrorb,2*nrorb)
 complex(dp) :: tempval1
 complex(dp) :: hel(nrorb,nrorb,5+nrensp)
 complex(dp) :: Ao(nrindep*nrspf)
 complex(dp) :: phio(nrprime,nrorb)
 complex(dp) :: csum2, summa
 complex(dp) :: phino(nrprimn,nrspf)
 complex(dp) :: rhon(nrspf,nrspf)
 complex(dp) :: overlap3, co, scme2, scme3(nrprimn)
 complex(dp) :: enmat(nrindep,nrindep,nrprimn)
 integer :: is, i1s, deltaspin, i1r, vorz
 integer :: nrdiff, ms, ps, qs, ns, alpha, i, j, l, idet, jdet
 integer :: l1r, l1s, ie, iarr(nel), larr(nel), ix



  do i=1,13
   val(i) = c0
 enddo


! norm
     do is=1,nrspf
       val(1) = val(1) + rhon(is,is)
     enddo
  csum2 = c0

   do is=1,2*nrorb
     csum2 = csum2 + rho(is,is)
   enddo
   val(1) = val(1)*csum2


Specifically, the last line is causing the compilation abort. When it is commented out, the compilation works just fine.

Any ideas?

0 Kudos
1 Solution
mecej4
Honored Contributor III
923 Views

Inga, your bug report is incomplete, as is the code of the subroutine. To fix the ICE, they will need code that can be run through the compiler to cause the ICE.

Without the sources for all the modules USEd in your code, the .mod files will be missing, and the compiler will issue error messages for the USE statements. Likewise, it will note that the subroutine has no END statement. The compiler pass that generated the ICE may not even be run. If the ICE cannot be reproduced, there is nothing to do.

The line number shown in the ICE message is 105. The source that you provided contains only 36 lines.

You will be asked to file a bug report at https://supporttickets.intel.com/?lang=en-US

View solution in original post

0 Kudos
2 Replies
Juergen_R_R
Valued Contributor I
923 Views

An internal compiler error is by definition always a compiler bug. However, this is on rather old versions. Did you try this with ifort 17 oor 18?

0 Kudos
mecej4
Honored Contributor III
924 Views

Inga, your bug report is incomplete, as is the code of the subroutine. To fix the ICE, they will need code that can be run through the compiler to cause the ICE.

Without the sources for all the modules USEd in your code, the .mod files will be missing, and the compiler will issue error messages for the USE statements. Likewise, it will note that the subroutine has no END statement. The compiler pass that generated the ICE may not even be run. If the ICE cannot be reproduced, there is nothing to do.

The line number shown in the ICE message is 105. The source that you provided contains only 36 lines.

You will be asked to file a bug report at https://supporttickets.intel.com/?lang=en-US

0 Kudos
Reply