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

yet another "forrt1: sever <170>: Program Exception - stack overflow"

deeppow
Beginner
375 Views
Code has been running on smaller problem and just increased size by factor 20, "a real problem." Code uses openMP and Fortran version 10.0.025 under Win XP64 with 4G memory

Have used /heap-arrays under Fortran > Optimization > Heap Arrays and set it to 99999, I'm not sure what to set it too but increasing doesn't seem to help.

I've expanded the stack size under Linker> System > Stack Reserve Size to 999999999 that is as large as it will let me go.

Thanks for any suggestions.
0 Kudos
7 Replies
Steven_L_Intel1
Employee
375 Views
Set Heap Arrays to 0. The stack is limited to 1GB (I think). However, you're using an old version - can you try it with 10.1.021?
0 Kudos
deeppow
Beginner
375 Views
Ya, I saw you recommendation of 0 in previous thread and tried it. Just retried it, no go. You do mean zero as opposed to blank. I used the zero.

Is there an easy way to get back to 10.1.21? All I did was download the new version exe file from Intel and did an install without paying much attention. I still have w_fc_p_10.1.021_intel64.exe stored away so could reinstall --- I assume.
0 Kudos
deeppow
Beginner
374 Views
Same result with 10.1.21
0 Kudos
Les_Neilson
Valued Contributor II
375 Views

Off the top of my head. I wonder if your array usage is causing a lot of copy-in/copy-out problems ?

Do you get a stack trace showing where the problem occurred and if so could you show the code for thatroutine ?

Les

0 Kudos
deeppow
Beginner
375 Views
Well sorta, I flipped the compiler run-time option /traceback and get the following:
forrtl: severe (170): Program Exception - stack overflow
Image PC Routine Line Source
bubbles_v22.exe 0000000140143C37 Unknown Unknown Unknown
bubbles_v22.exe 000000014001954E Unknown Unknown Unknown
bubbles_v22.exe 000000014000E4C6 MAIN__ 1045 bubbles_v21.f
bubbles_v22.exe 0000000140105DB8 Unknown Unknown Unknown
bubbles_v22.exe 00000001400CAB55 Unknown Unknown Unknown
kernel32.dll 0000000077D5964C Unknown Unknown Unknown

The only thing I understand is the reference to the line in main routine (executable). That is with a simple loop as follows:
do ik=1,stdel
hf_bb(idel(ik))=-alfa(idel(ik))*(tsat-th(idel(ik),maxcz))
enddo
where line 1045 is the hf_bb calc.

Is there a way to gen more info from the traceback? Better options?
0 Kudos
Steven_L_Intel1
Employee
375 Views
What are the declarations of each of the identifiers in this statement?

There isn't a way to get additional information. Usually I would run the program in the debugger and look at what it's doing at the point of the problem.
0 Kudos
deeppow
Beginner
375 Views
Steve and Les, thanks so much for your comments and suggestions.

Couldn't find the problem with the debugger, may have been me and not the capability.

I ended up finding and solving the problem the old way of using write-statements and bisection. Revised the problem routine by allocating arrays that had been static local arrays. What can I say, its an old code.
0 Kudos
Reply