Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
New Contributor I
207 Views

Procedure entry point error when calling Fortran library functions from C++

I have a Fortran library that is beibg called from a C++ main program. It generally works fine except that when certain subroutines are included in the Fortran library, the following error message shows up while executing the C++ program:

Test.exe - Entry Point Not Found

The procedure entry point for_realloc_lhs could not be located in the dynamic link library libifcoremdd.dll.

_____________________________________________

Note that the subroutine that was added to the Fortran library is not being called or referenced by the C++ program. The mere presence of that subroutine in the library causes the above error to occur.

Any help would be greatly appreciated.

0 Kudos
9 Replies
Highlighted
Black Belt Retired Employee
207 Views

You have in PATH an older Intel Fortran run-time library DLL. That entry point was added in version 17. Make sure you don't have old copies of libifcoremdd.dll in your path or that you're running from an environment for an older compiler version.

0 Kudos
Highlighted
New Contributor I
207 Views

Thanks for your timely help. I did a search on my computer and there are 6 files named libifcoremdd.dll at the following locations. How do I modify/check the path? I upgrade my version of the Intel Fortran Compiler every year and unfortunately the installation/update is not completely clean.

C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\ia32_win\compiler
C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64_win\compiler
C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2017.0.109\windows\redist\ia32_win\compiler
C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2017.0.109\windows\redist\intel64_win\compiler
C:\Program Files\ANSYS Inc\v172\aisol\bin\winx64
C:\Windows\SysWOW64

0 Kudos
Highlighted
Black Belt Retired Employee
207 Views

Take out the one in the ANSYS folder and see if that fixes the problem. It should not be there. I would not expect one in SysWOW64 either.

0 Kudos
Highlighted
New Contributor I
207 Views

Thanks, Steve. Problem has been fixed. Deleting the file in the SysWOW64 folder fixed the problem. The problem persisted when I only removed the ANSYS folder file.

The SysWOW64 folder has other libifXXX files (libifcoremd,dll, libifcorert.dll, libifcorertd,dll, libifportmd.dll) and libioXXX + libmmdXXX files. All have the same timestamp. Are these legitimate as well?

0 Kudos
Highlighted
Black Belt Retired Employee
207 Views

No - none of the Intel Fortran DLLs belong there. The other locations you found are correct.

0 Kudos
Highlighted
Beginner
207 Views

Dear Steve,

I am facing similar errors when I try to run the released version of my code in Fortran in other computers. Both, the debug and released version are able to run on my computer without any error. However, when I try to share the executable as released version, the people are getting errors as the image below: The procedure entry point__svml_fmodf4 could not be located in the dynamic link library svml_dispmd.dll.  Also, other people get an error related to some libraries that are missing (libifcoremd.dll, libifportmd.dll, libmmd.dll, svml_dispmd.dll) how could I solve this error? is it a configuration aspect? 

I have  Microsoft Visual Studio Enterprise 2015 and my compiler is Intel® Parallel Studio XE 2016 Composer Edition for Fortran. I have Windows 10 Home. 

error_0.png

0 Kudos
Highlighted
Black Belt Retired Employee
207 Views

You need to install the Intel compiler redistributables. See https://software.intel.com/en-us/articles/intelr-composer-redistributable-libraries-by-version. Install the latest version.

0 Kudos
Highlighted
Beginner
207 Views

Hello. I also encountered the same problem. I have installed the redistributable packages, but this problem still exists when run the exe file. How can I fix it? Thanks.

123.png

0 Kudos
Highlighted
Black Belt
207 Views

You have installed the redistributables package that targets Itanium (IA64). It is very unlikely that you have a system with an Itanium processor. What you want instead is the package for Intel64 (called 'em64t' earlier and 'intel64' now) or IA32 if you have a 32-bit OS. 

You will need to uninstall the Itanium package and install the appropriate package for your processor/OS.

0 Kudos