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

Contained procedure undefined addreses of container scope variables in parallel code

Andrew_Smith
Valued Contributor I
513 Views
Using 12.1 update 8, I have an internal procedure issue when using OpenMP.

The contained procedure is passed as an argument to a subroutine which calls the procedure via this argument. The OpenMP threads all pass into the container and so have their own copies of the local variables in the container.

The contained procedure got undefined addresses for local variables in the scope of its container. I have only seen this happen once when I was running in X64 mode with full debug settings. Most of the time it appears to work correctly, so I would probably have a hard time reproducing it.
0 Kudos
1 Reply
Steven_L_Intel1
Employee
513 Views
Can you show an example that has the structure you're describing, even if it doesn't show the problem? How many arguments does this contained procedure have? Are any of the local variables declared threadprivate?

We have a known bug when calling a passed contained procedure that has more than three arguments on x64 only. This will be fixed in Update 9, coming out very soon. You can see a previous report of this bug here. But this bug is not intermittent so it may not be your issue.
0 Kudos
Reply