- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am VERY confused. Brought over a code from CVF. Made necessary changes to get the code to function in F90. Code compiles with no errors nor warnings, rebuilt incrementally checking routines all along. When executing a case in the INTEL FORTRAN it returns essentially the SAME EXACT answer as was achieved in the CVF. That code was debugged thousands of times and is working logically correctly.
When I went to do a debug session in the INTEL FORTRAN, it behaved WEIRD, jumping around in subroutines AND ,MORE IMPORTANTLY, SHOWING VARIABLES AS UNDEFINED WHEN THEY ARE EXPLICITLY DECLARED AT THE TOP OF THE SUBJECT SUBROUTINE.
AND, THEY HAVE BEEN CALCULATED.
And, values that are being passed in are SOMETIMES showing no value as UNDECLARED when they are 100 % declared.
WHAT IS WRONG WITH THIS PLATFORM....OR MY UNDERSTANDING OR OPERATION OF IT?
PLEASE HELP.
THANKS.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Did you build with optimisation? That totally screws up debugging.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What do you mean by "I went to do a debug session in the INTEL FORTRAN"? Are you using Visual Studio (VS) for this which is a separate application, an IDE, from Microsoft? If so, then the chances are the integration of Intel Fortran with VS is amiss in your configuration and you will need to do some 'repair' of your installations. Look under FAQs:
and go through articles such as:
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Very likely that this was a build with optimization, as Andrew suggests. I very much doubt it has to do with the installation.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Declaration and definition are different. In the following program, at Line 5, the integer variable i is undefined. The value of the expression containing it is also undefined, and when the value is assigned to the variable j, j becomes undefined. Both variables are declared as INTEGER at the beginning of the program, but that does not constitute definition.
program xyz implicit none integer :: i,j ! j = i+2 print *,i,j end program
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
All, just after writing post decided to re-enable "check stack frame" and enable "check array bounds" which automatically disables optimization even if set to "enable". Had to run out for errand BUT colleague tried it after discussing on the phone and it worked for him, he was having the same issue. Yes, apparently, OPTIMIZATION does "screw up things" when it comes to debugging. Probably only use for RELEASE version. Oh, and by the way, the difference between there and their is known as is the difference between "declaration" and "defined". :)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
"check stack frame" does disable optimization, "check array bounds" does not.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page