Compiler loop do know why

Compiler loop do know why

Hi everyone,

I have a compiler loop and I do not why. In the oroginal code there is a do--end do. the program works.

If I insert a "definitions" at the end of the do-enddo the progran runs but does not stop. 

Do you know why? I made some error?

the do end do is:

DO IP=1,NPT

....

....

ENDDO

RHO(IP)=1000.D0

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

You showed too little a part of the code to answer, but here is one point for you to consider. After the DO loop ends, the value of IP is NPT+1. If the array RHO is dimensioned 1:NPT, the assignment statement following the ENDDO causes an array overrun, and other unpredictable side effects may follow, including failure to complete execution in a nice way.

hi,
thank for the answer. Is there any option in the compilation to find this error?
I have just posted a question in the forum about that.
thanks

You can add the runtime check for array index out of bounds in your debug build. This should catch most of the errors.

Jim Dempsey

www.quickthreadprogramming.com

hi,
sorry, but how can I do it?
thanks

-CB or -check bounds

Steve - Intel Developer Support

Hi,
thanks a lot it really helps me.
so again thanks, I have saved a lot of time.

Leave a Comment

Please sign in to add a comment. Not a member? Join today