- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I tried to compile a program with IMSL routines. The error message is "error #7002" Error in opening the compiled module file. Check INCLUDE paths." According to "Using the IMSL Libraries from the Integrated Development Environment (Windows* OS)", I added: $(FNL_DIR)\IA32\include\dll, Should I specify $(FNL_DIR) in the environment variable ? How to specify this ? Or Should I replace $(FNL_DIR) with something else. I installed the IMSL and Intel Fortran using all default folders. Thank you.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You appeared to follow the instructions correctly, though sometimes I have seen customers mis-type the string in the directories list. Can you attach a screenshot of the Includes directory list? Are you building for Win32 or x64?
Also, do this: Press Start, and search for "cmd.exe". When cmd.exe is displayed, click on it to run it. Type:
set fnl_dir
what is displayed?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I got the screenshots you sent as a message - it would better to keep this in the forum.
You didn't include the full text of the error message. What is the name of the module it was looking for?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve, Thank you. Here is the complete error message and part of my source code with IMSL call.
C:\0_Fortran\Balance\Balance.for(2): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [DLSBRR_INT]
Part of my source code is listed below:
use DLSBRR_int
INCLUDE 'link_fnl_static.h'
C
IMPLICIT DOUBLE PRECISION(A-H,O-Z)
C
PARAMETER(MAXS=200,MAXP=500,MAXQ=500,MAXSQ=4*MAXS*MAXQ)
PARAMETER(MAXP2=2*MAXP,MAXQ2=2*MAXQ)
C
COMPLEX*16 X0(MAXQ),X(MAXQ),HIJ, HIJK(MAXQ,MAXP,MAXS)
DIMENSION H(MAXSQ,MAXP2),UV(MAXP2),XY(MAXSQ),RES(MAXSQ)
C............
C
IH = MAXSQ
M = 2 * NSQ
N = 2 * NP
TOL= 0.0D0 ! 1.0E-08 -- Note ZERO uses all the columns -- important
C
CALL DLSBRR(M,N,H,IH,XY,TOL,UV,RES,KBASIS)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If anyone can show me how to compile and run the sample codes provided from the IMSL package, that will be great. I could not even compile the sample codes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks - that's very helpful.
There is no module DLSBRR_int. If you were using the "Fortran 90" interface you would instead want "USE LSBRR_INT", but you're calling the "Fortran 77" interface instead so you don't want to use LSBRR_INT. Please read the IMSL documentation carefully.
You could instead add:
USE NUMERICAL_LIBRARIES
This will pull in definitions of the "Fortran 77" interfaces and make sure you're calling them with the correct arguments.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Which sample do you need help with? Note that the examples provided don't have the INCLUDE line and it's expected that you'll use %LINK_FNL_STATIC% on the command line.
I'll also suggest that you include 'link_fnl_shared.h' instead.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There is no module with the name DLSBRR_INT, but there is one named LSBRR_INT. However, since your code calls the Fortran 77 entry point "DLSBRR", using the module does nothing for you, so you may simply delete the USE statement. Alternatively, write "Use LSBRR_INT" and call the module procedure with the name LSBRR.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve, Thank you very much. DLSBRR is the double precision of LSBRR. I followed the IMSL manual Chapter 1, page 465-466 before and it did not work. I followed your suggestions: USE NUMERICAL_LIBRARIES and INCLUDE 'link_fnl_static.h' . The program compiled and ran OK. Thank you very much. I am learning slowly.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, DLSBRR Is the double precision version of the "Fortran 77" interface to LSBRR. You don't use the _INT modules if you are using the Fortran 77 interfaces. If the documentation says USE LSBRR_INT, you shouldn't try changing the module name just because you are calling DLSBRR.
In new code, I'd recommend calling the "Fortran 90" interface routines which would then require the documented USE line.

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