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

Compiler loop do know why

diedro
Beginner
1,337 Views

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

0 Kudos
6 Replies
mecej4
Honored Contributor III
1,337 Views
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.
0 Kudos
diedro
Beginner
1,337 Views
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
0 Kudos
jimdempseyatthecove
Honored Contributor III
1,337 Views
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
0 Kudos
diedro
Beginner
1,337 Views
hi, sorry, but how can I do it? thanks
0 Kudos
Steven_L_Intel1
Employee
1,337 Views
-CB or -check bounds
0 Kudos
diedro
Beginner
1,337 Views
Hi, thanks a lot it really helps me. so again thanks, I have saved a lot of time.
0 Kudos
Reply