- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, We have installed Intel parallel studio XE 2015 for Fortran and the IMSL library. However when trying to compile code that contains the USE IMSL statement the compiler produces the following error Error 211 error #7002: Error in opening the compiled module file. Check INCLUDE paths. [IMSL] S:\opan\df105\model\HBdG\GDFS\gds_air\main\framos_sub\attenuation_rain.f 70 The IMSL library is installed in C:\Program Files (x86)\VNI\imsl\ How do I add the correct path to include path? i assume the path should be extended by C:\Program Files (x86)\VNI\imsl\fnl701\Intel64\lib or C:\Program Files (x86)\VNI\imsl\fnl701\IA32\lib depending on 32 or 64 bit executables. Any help is much appreciated. Regards Chera Bekker
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please review Installing and Configuring the IMSL Libraries and see if the information provided helps. It was not clear in your case if you are using the command-line compiler interface or compiling under Visual Studio.
Let us know if that helps resolve the error or not.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I’m definitely outside my knowledge base not being an IMSL user or having access to it. The one detail I’m wondering about in your compiler options is /iface:cvf.
From other posts and the Fortran User Guide, under Using the IMSL Libraries from the Integrated Development Environment (Windows* OS), in item #3 it says the calling convention must be Default. It appears in your project this setting is toggled to CVF.
What if you restore the USE statement and toggle the calling convention to Default. Does that succeed?
I know we have other forum experts with IMSL knowledge/access so I'm hoping I can lean on them for their help here.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
At least try restoring the USE statement; that might be enough if your application needs the /iface:cvf.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1. The version of IMSL that is distributed by Intel (and the versions distributed by Roguewave for use with Intel Fortran) is not compatible with /iface:cvf. If you have to use other libraries in addition to IMSL that use STDCALL calling convention, you will have considerable difficulty getting things to work in projects that use those libraries as well as the new (non-STDCALL) IMSL libraries. One possibility in that case is to use the old IMSL 4.0 libraries with /iface:cvf, but failure is still quite likely.
2. Replace "USE IMSL" by "USE IMSL_LIBRARIES" or "USE NUMERICAL_LIBRARIES", as appropriate (please read the first chapter of the IMSL documentation to decide which of these two is appropriate). Note that removing USE statements as a means of avoiding compile-time errors is a losing proposition. All that happens as a result is that compile-time errors are converted to run-time errors that are much harder to diagnose and fix, or may even go unnoticed and produce erroneous results/output. Kevin and Lorri have given you good advice regarding restoring USE statements.
3. To use IMSL from Visual studio projects, see https://software.intel.com/en-us/articles/installing-and-using-the-imsl-libraries .
4. To build from the command line, use the /Qimsl compiler option, or use the %FFLAGS% and %LINK_FNL% environment variables. For details, see the local IMSL documentation or http://docs.roguewave.com/imsl/fortran/7.1/pdf/imslfnl7-1_gettingstarted-windows.pdf .
One more comment, from a different perspective. The routine LINRG is for explicitly obtaining the inverse of a matrix. From the information that you gave, it is not clear if it is necessary to do that. It is well-known that if the inverse is intended for use in solving a system of linear equations, the inverse should not be computed and stored. More generally, there are several matrix based algorithms in which matrices are not stored explictly but as a sequence of transformations. For example, in the Q-R factorization, the orthogonal matrix Q is stored as the product of a sequence of Householder reflections.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have not stated how you compiled the source files, in particular what options you used, but I suspect that what you need to add is the /Qopenmp option. If you had used the %FFLAGS% environment variable as a compiler option, as recommended in the IMSL documentation, that would have added /Qopenmp to the compiler options list.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Regarding %FFLAGS%, etc., please read the file <install_dir>\imsl\fnl701\IA32\notes\QuickStart.txt, or pages 22, .. in the link that I gave in #6, item 3.
The warning from VS relates to your having an extra '_' before ".exe" in the output EXE file path-name. Correct it in the appropriate property tab of Visual Studio, or you will experience the confusion that results from having two EXE files with almost the same name.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

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