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

array bounds checking?

Ralph_Nelson
Novice
350 Views

I have a code that builds and runs as long as I have array bounds checking turned on.  Compiler options are as follows:
/nologo /O3 /Qunroll:4 /Qparallel /assume:buffered_io /I"F:\Macro3d\Intel\Intel_5-7-2013\Include Files" /assume:nocc_omp /free /warn:declarations /warn:noalignments /Qopt-report:3 /module:"x64\Release\\" /object:"x64\Release\\" /check:bounds /libs:static /threads /c

If I turn the array check off, the answers are bad.  I didn't think the check did anything to the compiled code other than check out of bounds array usage.  My results seem to indicate otherwise.  Don't see any info from the code related to the issue.

Suggestions?  Thanks for any assistance.

-ralph

0 Kudos
1 Reply
IanH
Honored Contributor III
350 Views

The presence and execution of the machine instructions associated with array bounds checking will change the layout of your program in memory, and may change the contents of uninitialised things on the stack, etc.  I see you are doing an auto-parallel release build - so it might also interfere with optimisation.

Perhaps fire up a debug build with /check:all and see what happens.

If you know the "answers are bad" (sometimes "unacceptably different" is a better description if there's any sort of iteration involved) you can always try and dump intermediate results from your code to see where the badness originates from.

0 Kudos
Reply