Analyzers
Talk to fellow users of Intel Analyzer tools (Intel VTune™ Profiler, Intel Advisor)
4975 Discussions

Fortran Memory not deallocated - Inspector indicates subroutine declaration

Matthew_Z_
Novice
738 Views

I am having trouble understand this error, and I figure that it must be a false positive. Using Inspector, I cleaned up a number of Memory not deallocated errors where the allocatable variables were in a module that persists through the life of the application.

However, I have one memory not deallocated error remaining, and I figure that this must be a false positive.

The error points at a Fortran subroutine declaration line, and does not point at a line where memory is being allocated with the use of the Fortran keyword "allocate". I have allocatable variables in subroutine scope, so I tried deallocating these variables at the end of the subroutine; however, the error persists. In addition to deallocating the allocatable variables at the end of the subroutine, I also tried placing the subroutine in a module so that both the variables are deallocated and the subroutine is in a module; however, the error persists.

"Error Report" dumps are attached.

Anyone have any thoughts on this?

Thanks.

0 Kudos
3 Replies
Matthew_Z_
Novice
738 Views

I should add that this error occurs in both 64 and 32 bit builds. In the 64-bit build, as in the attached file "Error without subroutine in module.txt" the  amount of memory not deallocated is almost nearly double that in the 32-bit build.

0 Kudos
Mark_D_Intel
Employee
738 Views

The stacks show the allocation is coming from '_intel_alloc_bpv'.  This function allocates memory for internal thunks.  This is a false positive that can be ignored.

There is more information in this forum post: https://software.intel.com/en-us/forums/topic/294168 and here: https://software.intel.com/en-us/blogs/2009/09/02/doctor-fortran-in-think-thank-thunk/

0 Kudos
Matthew_Z_
Novice
738 Views

Thanks, Mark.

I suppressed it per the instructions in your PM which are, for anyone interested,

Use the suppression mechanism in the GUI.

Select "Supress" from the context menu in the lower frame of the 'Summary' view.  Edit the suppression to suppress on the function '_intel_alloc_bpv' in "* (any)" module.

Thanks again.

 

0 Kudos
Reply