- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Trying to compile the following code with Intel Fortran Composer 17.0.0 results in a catastrophic internal compiler error.
module nrtype
use iso_fortran_env
implicit none
integer, parameter :: itp = int8 ! Define quarter precision integer(1 bytes).
integer, parameter :: ihp = int16! Define half precision integer(2 bytes).
integer, parameter :: isp = int32! Define single precision integer(4 bytes).
integer, parameter :: idp = int64! Define double precision integer(8 bytes)
integer, parameter :: rsp = real32 ! Define single precision real ( 4 bytes). 7.22 decimal digits
integer, parameter :: rdp = real64 ! Define double precision real ( 8 bytes). 14.95 decimal digits
integer, parameter :: rqp = real128 ! Define quad precision real (16 bytes). 34.02 decimal digits
end module nrtype
module modMesh
use nrtype
implicit none
type DOFType(nEQs)
integer(isp), len :: nEQs
real(rdp) :: x
real(rdp), dimension(nEQs) :: u, f, r
real(rdp), dimension(nEQs,nEQs) :: fluxJac
end type DOFType
type cellType(nDOFs, nEQs)
integer(isp), len :: nDOFs
integer(isp), len :: nEQs
integer(isp), dimension(2) :: idFace
integer(isp), dimension(2) :: idNb
type( DOFType(nEQs) ), dimension(nDOFs) :: DOF
end type cellType
type faceType(nDOFs, nEQs)
integer(isp), len :: nDOFs
integer(isp), len :: nEQs
real(rdp) :: x
integer(isp), dimension(2) :: idNb
type( cellType(nDOFs, nEQs) ), pointer :: nbL, nbR
end type faceType
type meshType(nCells, nGhosts, nDOFs, nEQs)
integer(isp), len :: nCells
integer(isp), len :: nGhosts
integer(isp), len :: nDOFs
integer(isp), len :: nEQs
integer(isp) :: nFaces
type( faceType(nDOFs, nEQs) ), dimension(1-nGhosts:nCells+nGhosts) :: faceList
type( cellType(nDOFs, nEQs) ), dimension(1-nGhosts:nCells+nGhosts) :: cellList
end type meshType
type( meshType(nCells=:, nGhosts=:, nDOFs=:, nEQs=:) ), target, allocatable :: mesh
end module modMesh
program test
use nrtype
use modMesh
allocate ( meshType(5,5,1,1) :: mesh )
mesh%cellList(-4)%DOF(1)%u(1) = 1.0
end program test
Replacing lines 50 and 51 for
type( faceType(nDOFs, nEQs) ), dimension(-nGhosts:nCells+nGhosts) :: faceList
type( cellType(nDOFs, nEQs) ), dimension(-nGhosts:nCells+nGhosts) :: cellList
prevents the compiler error but causes a segfault during execution.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What compiler options are you using? I haven't been able to make it fail yet.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I was compiling without any flag but you are right it stopped crashing here also, i don't know what could have changed. But still i get segfaults for both versions of the code.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can reproduce the segfault and have escalated it as issue DPD200414994. If you manage to see the internal compiler error again, please let us know the details.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page