- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have a project that uses MKL pardiso which builds and runs great on a system with visual studio 2010 and XE 2013.
I have managed to build the program on a new development machine with visual studio 2019 and XE 2020, but a test case fails saying Intel MKL ERROR: Parameter 4 was incorrect on entry to DLASCL. This message is written to the console window. The calls to this routine are in LAPACK.
I'm hoping that the problem is due to something different about using MKL in XE 2020 versus XE 2013. Is that possible?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'd suggest you ask in the MKL forum.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, Steve. I will do that. I'm finding that the very first call to the pardiso subroutine produces a different result in XE2020 compared to XE2013. When I started using pardiso 5 years ago I got a Pardiso Example project, probably from mecej4. I will try to build that in XE2020 and compare.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Brian, here is how to use the old Intel ODE libraries with Intel Fortran 19.1.
1. Find a PC on which you have an older version of Visual C installed, or install such an old version on your current PC. I cannot give you an official answer on this, but I happen to have Visual Studio 10 installed and this works. Other version of roughly the same vintage may work, but you have to try and be prepared to fail.
2. Once you have VS10 installed, open an IFort 19.1 command prompt. Move to a working directory, and place a copy of the Intel ODE Fortran example file there. Compile as follows:
- For 32-bit, the command is ifort /MD iode_example_f.f d:\math\numanal\ode\intel_ode\lib\ia32\libiode_ia32.lib d:\lang\VS10\VC\lib\msvcrt.lib
- For 64-bit, the command is ifort /MD iode_example_f.f d:\MATH\NumAnal\ODE\intel_ode\lib\intel64\libiode_intel64.lib d:\lang\VS10\VC\lib\amd64\msvcrt.lib
You will, of course, have to put the correct paths for intel_ode and VS10 for your machine. I have used the directories that I have on my PC.
If you do not have the corresponding MSVCRxxx.DLLs for the old VS version already installed, you will have to obtain the corresponding VCRedist package and install it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you, mecej4. But I may already have solved my problem with the ODE solver. I don't know for sure because although the program builds ok, it is not yet running successfully because pardiso is not working right.
I got my program to compile and build by adding legacy_stdio_definitions.lib to the list of additional dependencies.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Brian Murphy wrote:I got my program to compile and build by adding legacy_stdio_definitions.lib to the list of additional dependencies.
That's useful to know, as an alternative to the method that I suggested. However, using legacy_stdio_definitions.lib may not always be sufficient, as we can read at https://docs.microsoft.com/en-us/cpp/porting/overview-of-potential-upgrade-issues-visual-cpp?view=vs-2019 .

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page