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

internal compiler error

mrentropy
Beginner
873 Views

Hi,

I have some code that breaks your compiler. Since I get the message below, I thought you might want to know:

--- begin terminal input/output ---

$ ifort -c -DMAIN PA.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.

compilation aborted for PA.F90 (code 3)

$ ifort --version
ifort (IFORT) 11.1 20090630
Copyright (C) 1985-2009 Intel Corporation. All rights reserved.

$ uname -a
Linux sarastro 2.6.28-13-generic #45-Ubuntu SMP Tue Jun 30 22:12:12 UTC 2009 x86_64 GNU/Linux

$

--- end terminal input/output ----

I sent a message to Intel Software Network Support and they just emailed me back a form letter letting me know how to get support (!?!?!?)...... Perhaps somebody can tell me how to create a Software Problem Report?

Thanks,

Peter

0 Kudos
3 Replies
Ron_Green
Moderator
873 Views

Hi,

I have some code that breaks your compiler. Since I get the message below, I thought you might want to know:

--- begin terminal input/output ---

$ ifort -c -DMAIN PA.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.

compilation aborted for PA.F90 (code 3)

$ ifort --version
ifort (IFORT) 11.1 20090630
Copyright (C) 1985-2009 Intel Corporation. All rights reserved.

$ uname -a
Linux sarastro 2.6.28-13-generic #45-Ubuntu SMP Tue Jun 30 22:12:12 UTC 2009 x86_64 GNU/Linux

$

--- end terminal input/output ----

I sent a message to Intel Software Network Support and they just emailed me back a form letter letting me know how to get support (!?!?!?)...... Perhaps somebody can tell me how to create a Software Problem Report?

Thanks,

Peter


support: two ways;

1) http://premier.intel.com and enter a bug report.

2) Post the code here using this technique: http://software.intel.com/en-us/forums/showannouncement.php?a=78

by default everyone can see and download the code. OR you can make a Private Response to me with the code attached. Either way I can get a bug report going and post the bug report ID here.

ron
0 Kudos
mrentropy
Beginner
873 Views

support: two ways;

1) http://premier.intel.com and enter a bug report.

2) Post the code here using this technique: http://software.intel.com/en-us/forums/showannouncement.php?a=78

by default everyone can see and download the code. OR you can make a Private Response to me with the code attached. Either way I can get a bug report going and post the bug report ID here.

ron
[plain]
[/plain]
[plain]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! compile with -i8 -r8 flags
!
! To compile stand-alone executable for testing purposes, use flag -DMAIN
!
! This is a subset of functionality of PA.py - only those things I need
!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

module PA_mod
  implicit none
  private
  type, public :: PA_class
     real, dimension(:), allocatable, public :: points
     private
     integer(4)        :: mmode = -1
     character(len=16) :: ssymmetry = 'planar' ! only: 'planar' or 'cylindrical'
     real(8)           :: mmax_voltage = 100000.0_8
     integer(4)        :: nnx=3,               & ! can't use "nx" b/c conflicts with procedure..
                          nny=3,               &
                          nnz=1
     logical           :: mmirror   = .false., &
                          mmirror_x = .false., &
                          mmirror_y = .false., &
                          mmirror_z = .false.
     character(len=16) :: ffield_type = 'electrostatic'
     integer           :: nng = 100
     logical           :: ffast_adjustable = .false., &
                          eenable_points   = .true.
     character(len=128) :: ffile = ''
   contains
     procedure :: init => PA_init ! must call explicitly
     procedure :: max_voltage => PA_max_voltage
     procedure :: nx    => PA_nx
     procedure :: ny    => PA_ny
     procedure :: nz    => PA_nz
     procedure :: error => PA_error
  end type PA_class

contains

  function PA_init(this, infile) result (success)
    implicit none
    class(PA_class) :: this
    character(len=*) :: infile
    integer :: success
    integer :: reader
    integer :: N
    !use, intrinsic :: ISO_C_BINDING
    !  integer(C_LONG) :: mode
    type :: header_type ! using this, can read in full header at once
       integer(4) :: hmode
       integer(4) :: hsymmetry
       real(8)    :: hvmax
       integer(4) :: hnx
       integer(4) :: hny
       integer(4) :: hnz
       integer(4) :: hmirror
    end type header_type
    integer :: stat1, stat2, stat3
    type (header_type) :: header
    character(len=80) :: msg
    !
    open (unit=8,file=infile,access='STREAM',form='BINARY',action='READ', &
         iostat=stat1, status='OLD')
    if (stat1 == 0) then
       read (8) header
       this % mmode = header % hmode
       this % nnx  = header % hnx
       this % nny  = header % hny
       this % nnz  = header % hnz
       if (header % hsymmetry .eq. 0) then
          this % ssymmetry = 'planar'
       else
          this % ssymmetry = 'cylindrical'
       end if
       N = this%nnx * this%nny * this%nnz
       allocate(this%points(0:N-1), STAT=stat2, ERRMSG=msg)
       read(8) this%points
       this % mmax_voltage = header % hvmax
       !r = int(maxval(this%points)- 2* header%hvmax)
       success= 0
    else
       print *, "Failure opening file."
       success= -1
    end if
    !
  end function PA_init

  function PA_max_voltage(this, max_voltage) result (vmax)
    class(PA_class) :: this
    real, intent(in), optional :: max_voltage
    real :: vmax
    if(.not. present(max_voltage) ) then
       vmax = this%max_voltage
       return
    else
       call PA_error(this, "Function not yet implemented by yours truly.")
    end if
  end function PA_max_voltage

  function PA_nx(this, nxin) result (mnx)
    class(PA_class) :: this
    integer, intent(in), optional :: nxin
    integer :: mnx
    if( .not. present (nxin) ) then
       mnx = this%nnx
       return
    else
       call PA_error(this, "Function not yet implemented by yours truly.")
    end if
  end function PA_nx

  function PA_ny(this, nyin) result (mny)
    class(PA_class) :: this
    integer, intent(in), optional :: nyin
    integer :: mny
    if( .not. present (nyin) ) then
       mny = this%nny
       return
    else
       call PA_error(this, "Function not yet implemented by yours truly.")
    end if
  end function PA_ny

  function PA_nz(this, nzin) result (mnz)
    class(PA_class) :: this
    integer, intent(in), optional :: nzin
    integer :: mnz
    if( .not. present (nzin) ) then
       mnz = this%nnz
       return
    else
       call PA_error(this, "Function not yet implemented by yours truly.")
    end if
  end function PA_nz

  subroutine PA_error(this, text)
    class(PA_class) :: this
    character(len=*) :: text
    write (0,*) text  ! unit 0 = stderr (5=stdin,6=stdout)
  end subroutine PA_error

end module PA_mod

#ifdef MAIN
program main
  use PA_mod
  type(PA_class) :: pa
  integer :: i
  i = pa%nx(5)
  print *, i
end program main
#endif
[/plain]

0 Kudos
mrentropy
Beginner
873 Views
P.S. Ron, I couldn't get the instructions you linked to to come up - we have a slow internet connection here. So I hope I did that right.

Anyway I can't guarantee that that's functional code - it was something I was just hobbling together from other bits of code and it's very exerimental and of course never compiled. But, it did make the compiler SIGSEGV.

I think the hiccup is happening at the file open at line 65. All those other functions down below are irrelevant of course, but that's the file in its entirety in any case.

Best wishes,
Peter

0 Kudos
Reply