- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I am presently using a very simple program (oversimplified case
of routines we are using in our code) which fails systematically with
this message error:
The sources are:
!
PROGRAM Test
!
IMPLICIT NONE
!
INTEGER, PARAMETER :: Array_Size = 632525 ! 632525 ! 666
INTEGER, PARAMETER :: Buffer = 10, Skip = 100
INTEGER, ALLOCATABLE :: Array(:)
INTEGER :: Error, n, First, Last, Slide
!
!
ALLOCATE ( Array(Array_Size), STAT = Error )
!
IF ( Error .NE. 0 ) THEN
WRITE ( 6, "(//A//)" ) "Unable to allocate Array !"
STOP
END IF
!
DO n = 1, Array_Size
Array(n) = n
END DO
!
!
DO First = Buffer, ( Array_Size - Buffer ), Skip
WRITE ( UNIT = 6, FMT = "(2I10.6)" ) First, Array_Size
! DO Last = ( First + Buffer ), ( Array_Size - Buffer ), Skip
DO Last = ( Array_Size / 2 ), ( Array_Size - Buffer ), Skip
WRITE ( UNIT = 6, FMT = "(A10,3I10.6)" ) " ", First, &
& Last, Array_Size
DO Slide = Buffer, ( Array_Size - Last ), Skip
Array(Last+Slide:First+Slide:-1) = &
& Array(Last:First:-1)
END DO
END DO
END DO
!
END PROGRAM Test
This program is running without problem using gfortran
under linux and windows and using ifort under linux
Can one help me?
Thank you
Antoine
I am presently using a very simple program (oversimplified case
of routines we are using in our code) which fails systematically with
this message error:
000010 632525The code is compiled using ifort 11.1.051 using the i64 and i32 versions.
forrtl: severe (170): Program Exception - stack overflow
Image PC Routine Line Source
Console2.exe 00000001400E8AA7 Unknown Unknown Unknown
Console2.exe 0000000140001433 MAIN__ 44 Console2.f90
Console2.exe 00000001400D5C4C Unknown Unknown Unknown
Console2.exe 0000000140066AB7 Unknown Unknown Unknown
Console2.exe 00000001400669BE Unknown Unknown Unknown
kernel32.dll 0000000077D5964C Unknown Unknown Unknown
The sources are:
!
PROGRAM Test
!
IMPLICIT NONE
!
INTEGER, PARAMETER :: Array_Size = 632525 ! 632525 ! 666
INTEGER, PARAMETER :: Buffer = 10, Skip = 100
INTEGER, ALLOCATABLE :: Array(:)
INTEGER :: Error, n, First, Last, Slide
!
!
ALLOCATE ( Array(Array_Size), STAT = Error )
!
IF ( Error .NE. 0 ) THEN
WRITE ( 6, "(//A//)" ) "Unable to allocate Array !"
STOP
END IF
!
DO n = 1, Array_Size
Array(n) = n
END DO
!
!
DO First = Buffer, ( Array_Size - Buffer ), Skip
WRITE ( UNIT = 6, FMT = "(2I10.6)" ) First, Array_Size
! DO Last = ( First + Buffer ), ( Array_Size - Buffer ), Skip
DO Last = ( Array_Size / 2 ), ( Array_Size - Buffer ), Skip
WRITE ( UNIT = 6, FMT = "(A10,3I10.6)" ) " ", First, &
& Last, Array_Size
DO Slide = Buffer, ( Array_Size - Last ), Skip
Array(Last+Slide:First+Slide:-1) = &
& Array(Last:First:-1)
END DO
END DO
END DO
!
END PROGRAM Test
This program is running without problem using gfortran
under linux and windows and using ifort under linux
Can one help me?
Thank you
Antoine
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The failure relates to array temporaries created for the assignment. You can either compile with /heap-arrays or increase the stack space by compiling using /F<value>. I found /F20000000 sufficient. This isn't needed on Linux because the default shell stack limit is sufficient for theprogram to run.
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