- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What is the syntax to view variables within a subroutine declared with the SAVE attribute?
(Program compiled with OpenMP)
subroutine FOO
real, save :: Array(100)
A=0.0
... (break here)
end subroutine FOO
Using the following does not work
Array
FOO::Array
::Array
FOO_mp_FOO::Array
Using call stack to migrate focus upwards
Jim
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you can come up with a small but complete self-contained example showing a problem, please submit it to Intel Premier Support.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
The variable is declared as
real, save, allocatable :: OutputData(:)
Compilation is made with Debug and /Od
OutputData is allocated andused within the subroutine.
The subroutine is compiled with OpenMP enabled but is not inside the scope of !$OMP PARALLEL...
OutputData appears in the Locals window but reports as "Cannot view register variable"
As usual, it won't fail when making a small example :~(
The subroutine does declare a few unreferenced local variables (left overs) these too show up as "Cannot view register variable".
The name shows up in the Locals window therefore the variable name portion of the debug information is emitted, however, the lack of address information provides some indication that the code responsible for marking the symbol as being referenced (and at which location) has problems.
Does your compiler have an undocumented diagnostic option that would identify the debugger output process receiving a reference to a variable not declared (i.e. the token name or number on reference does not match that of a declared variable)?
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What version of the compiler?
Can you build the application but with OpenMP disabled for this one subroutine? If so, can you view the variable then?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
x32 V10.0.27 Without OpenMP shows array :)
x32 V10.0.27 With OpenMP shows "Cannot view register variable"
x64 V10.0.27 Without OpenMP shows array :)
x64 V10.0.27 With OpenMP shows "Cannot view register variable"
Haven't tried V10.1.013 (downloaded but not installed)
So it appears to be an OpenMP related thing common to both x32 and x64 versions of V10.0.027.
I am a little hesitant to upgrade since it occasionaly breaks code and it takes a while to find the problems and contrive a work around. Other than for this quirk the application is working fine for now using V10.0.027. I will experiment with V10.1.013 on the x32 computer.
.027 does have some problems but my code has work arounds installed. A few loops that were vectorized incorrectly so vectorization for those sections had to be turned off. There were a few other quirks which have been identified and worked around. With ~750 source files a new problem could pop-up just about anywhere.
Jim Dempsey
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I chose to uninstall and install.
V10.1.013 can view the saved variables. (at least on the x32 system)
The application did not crash and the results seemed consistent with earlier version of the compiler. So I think I will upgrade the compiler on the x64 system.
Jim Dempsey

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