Can Intel Fortran IMSL 32bit be used with Windows 7 64 bit?

Can Intel Fortran IMSL 32bit be used with Windows 7 64 bit?

Hi all,

Apologies if this is a simple question - we bought 32bit IMSL a couple of years ago, but now have most of our PCs running Windows 64 bit.

I'm setting up a PC for one of our researchers, and when we try testing IMSL using one of his Fortran programs, we get a fatal linker error -

"fatal error LNK1104: cannot open file ‘imsl_dll.lib’."  Since the file is there, and its directory is in the $PATH and also (under Visual Studio) in configuration properties, Linker, General, Additional Library directories, it sounds like it may be complaining about trying to use the 32bit version of that library. Is there a way to make it work, for example, by changing the compatibility settings, or does the error mean I need to fork out for Fortran IMSL 64bit as well?

Thanks in advance,

Keith Russell

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

You would not be able to mix 32-bit IMSL with 64-bit (Intel64) ifort. You should be able to get the 64-bit version of the libraries in case you want to use the Intel64 ifort. Also, the 32-bit ifort will work on 64-bit Windows.

Thanks Tim,
I probably expressed my question badly - I'm not trying to use 64-bit (intel64) ifort. I'm using Fortran Composer XE 2011, 32-bit version to match the 32-bit version of IMSL that we have license for. I know that 32-bit ifort will work on 64-bit windows, but I assume that you are also confirming that 32-bit IMSL libraries will work with 32-bit ifort on 64-bit windows. Getting that combination to work is what I am having trouble with, and looking for some help with.
I've setup similar combination (32-bit ifort with 32-bit IMSL and Visual Studio) for the user on 32-bit Windows in the past, and would be great to be able to set it up in 64-bit Windows, rather than installing 32-bit Windows on a machine that has 8GB RAM.
I'm using Visual Studio to do the program build testing.

Regards,
Keith

Hello Keith,
If you purchased the IMSL library separately from Intel® Visual Fortran Composer XE, it is not supported. The only version of IMSL that is supported by our compiler is the version that comes in Intel® Visual Fortran Composer XE with IMSL* for Windows.*

Regards,
Annalee
Intel Developer Support

Hi Annalee,
Thanks for that info - I guess that means we'll need to go back to the previous version of the Intel Fortran compiler that we have that we bought IMSL library for, if we want to use that IMSL library.
I've just tried installing that (Intel Fortran Compiler 10.1.021 IA32), but strangely enough, I am getting a very similar error (error #11035: Fatal error cannot open imsl_dll.lib).
Any further suggestions about what might be causing this?
Regards,
Keith

It would be easier to spot the cause of the linker error if you attached the build log to a post here.

When you build a project that uses IMSL, you have to specify

(i) the directory containing the IMSL routine interface modules,
(ii) the directory containing the IMSL libraries,
(iii) the IMSL library(ies) to be included in the link step,
(iv) the directory containing the IMSL DLLs, if any, to be added to the execution path.

Thanks, mecej4!

Here is what I assume is the build log -
1>------ Build started: Project: pipesoil, Configuration: Debug Win32 ------
1>Linking...
1>ipo: error #11035: Fatal error cannot open imsl_dll.lib
1>Link: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 1)
1>Link: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 1)
1>
1>Build log written to "file://C:\FORTRAN\pipesoilncclayswrlmssr\Debug\BuildLog.htm"
1>pipesoil - 3 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

As for your recommendations of things that need to be specified for that project, to be honest, I don't know Visual Studio well enough to know exactly where to look for each of the items you mention - but I include the following information specific to the pipesoil project, taken from Visual Studio -
- Fortran command line - /nologo /Zi /Od /include:"C:\program files\VNI\imsl\fnl600\IA32\include\static" /names:uppercase /module:"Debug/" /object:"Debug/" /traceback /check:bounds /check:uninit /libs:static /threads /dbglibs /c
- Fortran general, additional Include Directories C:\Program Files\VNI\imsl\fnl600\IA32\include\static
- Linker command line - /OUT:"Debug/pipesoil.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Program Files\VNI\imsl\fnl600\IA32\lib" /MANIFEST /MANIFESTFILE:"C:\FORTRAN\pipesoilnccclayswrlmssr\debug\pipesoil.exe.intermediate.manifest" /DEBUG /PDB:"Debug/pipesoil.pdb" /SUBSYSTEM:CONSOLE /STACK:1000000000 /IMPLIB:"C:\FORTRAN\pipesoilncclayswrlmssr\debug\pipesoil.lib"

I believe that
(i) the folder with IMSL routing interface modules, which are basically in pipesoil project, is C:\FORTRAN\pipesoilncclayswrlmssr
(ii) Directory containing the imsl libraries, including imsl_dll.lib, is C:\Program Files\VNI\imsl\fnl600\IA32\lib
(iii) not sure exactly which IMSL libraries are used in the code, but I can get these from the user
(iv) not quite sure if there are IMSL DLLs that are added to the execution path, but again, I'll check with user

Hi again mecej4,
I just realised the build log was right under my nose, so here it is -

Build started: Project: pipesoil, Configuration: Debug|Win32

Output

Linking...
Link /OUT:"Debug/pipesoil.exe" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\Program Files\VNI\imsl\fnl600\IA32\lib" /MANIFEST /MANIFESTFILE:"C:\FORTRAN\pipesoilncclayswrlmssr\debug\pipesoil.exe.intermediate.manifest" /DEBUG /PDB:"Debug/pipesoil.pdb" /SUBSYSTEM:CONSOLE /STACK:100000000 /IMPLIB:"C:\FORTRAN\pipesoilncclayswrlmssr\debug\pipesoil.lib" "Debug/stepdisplacement.obj" "Debug/INTERP.obj" "Debug/jobname.obj" "Debug/DBOUN.obj" "Debug/INTERPPEEQ.obj" "Debug/interp3t.obj" "Debug/DISPN.obj" "Debug/interp6t.obj" "Debug/njobname.obj" "Debug/ICOORD.obj" "Debug/ICOORDR.obj" "Debug/INTERPVOID.obj" "Debug/RECOVERYPEEQ.obj" "Debug/MOTHER.obj" "Debug/INTERPPOR.obj" "Debug/RECOVERYVOID.obj" "Debug/INTERPa0.obj" "Debug/RECOVERY.obj"
ipo: error #11035: Fatal error cannot open imsl_dll.lib
Link: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 1)
Link: error error_during_IPO_compilation: problem during multi-file optimization compilation (code 1)

pipesoil - 3 error(s), 0 warning(s)

What is missing, as shown by the build log, is Item (iii) of my first response, i.e., the addition of imsl_dll.lib to the list of files to be linked.

In Visual Studio, negotiate your way to the Linker->Input tab of the project properties, and add "imsl_dll.lib" to :Additional Dependencies". Save the configuration and rebuild.

Thanks mecej4,
Although that didn't fix the problem, it did make me realise what the issue was.
The Linker command had the wrong directory for the imsl_dll.lib file, but the mistake was right at the top level, so it should have been
/LIBPATH:"C:\Program Files (x86)\VNI\imsl\fnl600\IA32\lib". I guess Visual Studio may have retained the libpath setting from when I had tried to install IMSL as 64-bit.
As a bonus, the IMSL libraries that were bought separately from our newer Intel Fortran Composer XE compiler, does work with that later version of the compiler.

Again, thanks for the help with this!

Leave a Comment

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