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

Undefined symbol for_dealloc_all_nopdtlen in linux environment execution

BrunoAmaral
Novice
495 Views

Hello there,

i'm using intel fortran XE 2017 compiler for an application and this issue came up few weeks ago:

  • Using the application for windows, no problem occurs and everything goes fine;
  • Using the application for linux, an undefined symbol error showed up and the execution was aborted.

According to the log of the application, there is no definition for the function for_dealloc_all_nopdtlen, which i believe to be an intrinsic function from Fortran. I don't know what happened, since this error has never occurred before. There are some suspicions about a recently coded Fortran module that uses intrinsic functions like mod, lbound and ubound. Ever since the module was integrated to the code, this error appeared, but i cannot yet understand the relation between this and the insertion of the module. Would appreciate if somebody could give a clue of what might be happening. In the image below, the error message can be seen (sddp is the application's executable).

LogMessageIFORT.png

Labels (1)
0 Kudos
1 Solution
BrunoAmaral
Novice
414 Views

Hi, Mr. Lionel, thanks. Your reply gave me and my colleagues some insights about the problem. It turns out that some time ago, we update the intel fortran compiler, but did not update the libraries for it. The problem is now solved, apparently, and the application runs properly.

View solution in original post

2 Replies
Steve_Lionel
Black Belt Retired Employee
476 Views

I haven't seen that particular message, though Linux is not something I use a lot, but I do know that LD_LIBRARY_PATH has to point to the shared objects (.so) that are at least as new as the newest compiler version used in the build. This can show up if you link in an object or library built with a newer compiler.

The particular symbol here has nothing to do with LBOUND, etc. I think it is a call made at the end of a procedure where there are local allocatable variables. A newer compiler version may have introduced a variant of this routine that is missing from the .so visible at the time you run the application.

BrunoAmaral
Novice
415 Views

Hi, Mr. Lionel, thanks. Your reply gave me and my colleagues some insights about the problem. It turns out that some time ago, we update the intel fortran compiler, but did not update the libraries for it. The problem is now solved, apparently, and the application runs properly.

Reply