Installing and using the IMSL* Libraries


This article explains how to install, configure and use the IMSL* Fortran Numerical Library, as provided with Intel® Parallel Studio XE Composer Edition for Fortran Windows with Rogue Wave* IMSL 7, or as the add-on product Rogue Wave IMSL* Fortran Libraries for Windows. It is not applicable to versions of IMSL obtained from other sources.

This article supplements the on-disk documentation provided at Building Applications > Using Libraries > Using the IMSL* Mathematical and Statistics Libraries. Please refer to that text for more detail on using IMSL.


The IMSL* libraries are supplied as a separate download from the Intel Software Development Products Registration Center. If your license is for "Intel Visual Fortran Composer XE with Rogue Wave IMSL", you will find the IMSL installer listed under "Related Files". If you have purchased IMSL as an add-on for other Intel products containing Intel Visual Fortran, Rogue Wave IMSL* Fortran Libraries for Windows, the installer will be available in the Intel Registration Center page for the add-on. There is one download which supplies libraries for both IA-32 and Intel® 64 architecture targets.. The file name is of the form:

  • - for building applications that run on the IA-32 or Intel® 64 architectures

You must install Intel Parallel Studio XE before installing the IMSL libraries. 

Configuring for Use from the Command Line

Intel Visual Fortran  automatically establishes the environment for using IMSL when a command prompt session is started through the provided shortcuts: Start > All Programs > Intel Parallel Studio XE 2016 > Compiler and Performance Libraries > Command Prompt with Intel Compiler 16.0 

Configuring for Use from Microsoft Visual Studio*

It is necessary to add the paths for the IMSL INCLUDE and library files to Visual Studio.

  • Open Microsoft Visual Studio
  • Select Tools > Options
  • Under Options, select Intel Compilers and Tools >  Visual Fortran > Compilers
  • Select the Target Platform for which you want to make changes. The default of "Win32" is for the IA-32 architecture target. Select "x64" for the Intel® 64 architecture target.
  • Make sure that the desired compiler version is selected.
  • At the right of Libraries., click the "..." button.
  • Add to the end of the list,
    $(FNL_DIR)\IA32\lib (for IA-32 architecture target, or)
    $(FNL_DIR)\Intel64\lib (for Intel 64 architecture target)
  • Click OK.
  • At the right of Includes, click the "..." button.
  • Add to the end of the list,
    $(FNL_DIR)\IA32\include\dll (for IA-32 architecture target, or)
    $(FNL_DIR)\Intel64\include\dll ( for Intel 64 architecture target)
  • Click OK
  • Repeat for the other target architecture if desired
  • Click OK to save the changes.

Building Applications

You must specify the set of IMSL libraries you want to use.  The easiest way to do this is to add one or two lines to a convenient source file in your application, such as the main program.  The library sets are described in detail in the compiler documentation, but most users will want one of the following:

For DLL linking to the IMSL libraries (recommended):

INCLUDE 'link_fnl_shared.h'

For static linking to the IMSL libraries:

INCLUDE 'link_fnl_static.h'
!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'

IMSL 7 has made changes from IMSL 6 in the set of include files used for selecting sets of libraries:

  • link_fnl_static.h and link_fnl_shared.h now make use of Intel® MKL by default. Use these instead of link_fnl_static_hpc.h or link_fnl_shared_hpc.h which are no longer provided
  • If you do not want IMSL to make use of Intel® MKL, include link_fnl_static_imsl.h or link_fnl_shared_imsl.h

Common Problems

Problem: When compiling, you receive an error similar to:

error #5102: Cannot open include file 'link_fnl_static.h'
error #7002: Error in opening the compiled module file. Check INCLUDE paths.

Follow the steps in the sections above for configuring for use from the command line or from Microsoft Visual Studio.

When linking, you receive errors similar to:

imsls_err.lib(e1pos.obj) : error LNK2001: unresolved external symbol ___kmpc_threadprivate_cached

Add the line:

!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'

to one of your Fortran sources. An alternative is to enable OpenMP processing (/Qopenmp), but this may have unwanted side effects if you are not using OpenMP in your application.


If you need assistance using the product, please visit our User Forum or see this support page for further options.


For more complete information about compiler optimizations, see our Optimization Notice.


elenar's picture

License agreement clarification.
I would like to buy Intel Visual Fortran + IMSL.
May I install it on my desktop and on my laptop?
Intel Visual Fortran user license permit this double installation, what about IMSL?
I've found only this license agreement but refer to an older Visual Fortran Version

anonymous's picture

I have a problem on using the IMSL subroutine as a Frotran dll with excel VBA. I tried to solve a set of differential equations. When I wrote my own differential equation solver in Fortran and built the dll. Everything worked fine.
However, when I included the IMSL ODE solver in the dll and linked with VBA to create a VBA function. The custom built VBA function only worked one time in excel. Whenever I tried to use the same VBA function the second time in the same excel workbook, excel would shut down automatically.
Can anyone provide some comments or suggestions on this problem?


Matt, you probably did not want the IA-64 IMSL - that's for use when building applications to run on Intel Itanium processors. If you are building for "x64 Windows", you want the "Intel 64" variant and should uninstall the IA-64 IMSL.

If you need more help, please post in the user forum.

anonymous's picture


I followed the instructions for this page. Nevertheless, while attempting to a routine from the IMSL library, the I hace the following compiling error:

This module file was generated for a different platform or by an incompatible compiler or compiler release. It cannot be read.

I'm running this with the VF 2005 using the 10.1.030 compiler and the IMSL IA64.

I would appreciate help. Thanks,

christ, we're helping you through the user forum. We'll continue the conversation there.

Christ F.'s picture

On may laptop, which is still runnig version 10 of the compiler together with Compaq VF and Visual Studio Express I had no problem running the IMSL Validate program. On my office machine which is running version 11 of IMSL and Intel Fortran as well as CVF, Visual Studio.Net 2003 and VC++ the compiler gets confused and when I try to compilie Validate it says: warning #10268 Microsoft compiler version 6 or earlier is not supported.

On both machines, no interpretation of your instructions above results in 'link_fnl_static.h' being read when I try to use the IDE.



Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.