CDECL interface versus CVF interface for Equation Solvers

CDECL interface versus CVF interface for Equation Solvers


I linked the MKL to my CVF 6.6 project and linked and executed the attached examples from the BLAS and LAPACk libraries. This took lots of trials to know what libraries are required.
However, when I tried to test the examples in the sparse solver directory (pardiso_sym, dss_sym) I faced a very strange problem. The examples compile correctly, but when executed the execution crashes and I have to exit the program. The libraries I used then were the default libraries (libguide40.lib mkl_solver.lib) and the default library for the CVF interface (mkl_s.lib).
After a while with no luck of executing any of the sparse solvers examples I desperatley tried to use the CDECL interface instead (mkl_c.lib, which should be used with Intel Fortran as mentioned in the documentation). It amazingly compiled and executed correctly.

So what is the problem? I now need to use one of the BLAS level3 routines also in my project; mkl_dcsrsymv. This requires to add the library with the CVF interface (mkl_s.lib). Now I can't utilize any of the BLAS routines because they require the CVF interface , while to use the sparse solver routines I have to include the CDECL interface. Including both libraries fails because of repitition of function names.

Any ideas?
M Attal

7 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I wonder what does it mean that no body replied to my question, even the intel experts who are supposed to help users like me!
I posed this question to solve my problem as well as to give helpful feedback to the intel development. At least that's what I thought.

I would highly appreciate it if some one answered even by saying that I need to rephrase my question or clarify any ambiguities.

M Attal


We gotanreplay from our export:

Unfortunately, it's not possible to mix mkl_c.lib and mkl_s.lib in an application. If PARDISO is necessary, you can only linkwith mkl_c.lib.

There's a workaround to use BLAS routines. Youcanput Fortran compiler directives in the code, like:

!DEC$ attributes C :: dgemm


call dgemm(...)

Then the code could be compiled in CVF call convention, but be linked to mkl_c.lib.




Thank you for your reply.
So what is the problem in the first place with the mkl_s.lib file with the sparse solvers?
I mean wasn't this file created specially for Compaq fortran interface to communicate with all the MKL library? The run-time error that crashes the solver in CVF, is it a bug in the mkl_s library creation that the intel programmers are working on? Or is it an unsolved one so that one has to use the work around you mentioned?

I will try to use the compiler directives and I will post my feedback on that experience.

M Attal

Hello, I need you help. I am programming in Visual C# and gfortran, but the error is:

An unhandled exception of type 'System.EntryPointNotFoundException' occurred in ConsoleApplication1.exe
Additional information: No se puede encontrar el punto de entrada denominado 'subroutineFortran' en el archivo DLL 'FortranCallBack.dll'.

Thank you.

>>...Additional information: No se puede encontrar el punto de entrada denominado 'subroutineFortran' en el
>>archivo DLL 'FortranCallBack.dll'....

What does it mean in English?

Erica C: Your question is off-topic in this forum. which is about Intel's MKL library, whereas your question is about using C# with Gfortran.

Leave a Comment

Please sign in to add a comment. Not a member? Join today