Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

IMSL cannot be used

Tan_R_
Beginner
1,676 Views

I am trying to convert my Compaq Visual Fortran project into Intel Visual Fortran 10.1.

A program within the project used imsl and with CVF it works fine.

I recently use IMSL library for IVF 9.1 as it's the one compatible with IVF, but I got this compiling error:

Error: Error in opening the Library module file.   [IMSL]

Does anybody know how to resolve this ?

Thanks, Robert

0 Kudos
12 Replies
mecej4
Honored Contributor III
1,676 Views

Please state the exact versions of the compiler and IMSL that you are using, and whether you are targeting Windows-32 or Windows-64.

The error message indicates that the module file IMSL.MOD was not found using %INCLUDE% or through settings in the IDE for include/module files, or that the module file was not compatible with your compiler.

See this article for useful information:

http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-for-windows-using-intel-mkl-with-imsl-fortran-numerical-library

0 Kudos
Tan_R_
Beginner
1,676 Views

Now i use imsl 6.0 and Intel.Visual.Fortran.Composer.XE.2011.5.221(VS2010+IVF11+win7-64),some codes as follow:

   subroutine Fill2 

  include 'link_fnl_static.h'

  use  imsl

 but I got this compiling error:

 error 1 :error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [IMSL]

error  2: error #6764: A unary defined OPERATOR definition is missing or incorrect.   [.I.] (.i. is a function in imsl,i use it in cvf is fine,why i cannot use in this? )

Can you give me a favor?

Thaks,Robert

0 Kudos
DavidWhite
Valued Contributor II
1,676 Views

The second error is due to the first one.

The IMSL module is not being found.  You need to set the project include path correctly so this can be found.  Search the documentation for IMSL, you will find the settings you need.  From VS, the page is entitles "Using the IMSL Libraries from the Integrated Development Environment"

David

0 Kudos
Tan_R_
Beginner
1,676 Views

David White wrote:

The second error is due to the first one.

The IMSL module is not being found.  You need to set the project include path correctly so this can be found.  Search the documentation for IMSL, you will find the settings you need.  From VS, the page is entitles "Using the IMSL Libraries from the Integrated Development Environment"

David

I set the project include path ,but errors still. See details from Attachments.

0 Kudos
mecej4
Honored Contributor III
1,676 Views

In your Fortran source file, change

     use imsl

to

     use imsl_libraries
(edit: this is probably not what you want; please see Steve Lionel's post below).

The version of IMSL that came with some editions of CVF provided a module file called imsl.mod, whereas current versions of IMSL provide a module file called imsl_libraries.mod.

I noticed from the screenshot that the list of directories specified in Visual Studio for locating include and module files contains both the X64 and IA32 directories. That amounts to asking for trouble in advance.

0 Kudos
Tan_R_
Beginner
1,676 Views

mecej4 wrote:

In your Fortran source file, change

     use imsl

to

     use imsl_libraries

The version of IMSL that came with some editions of CVF provided a module file called imsl.mod, whereas current versions of IMSL provide a module file called imsl_libraries.mod.

I noticed from the screenshot that the list of directories specified in Visual Studio for locating include and module files contains both the X64 and IA32 directories. That amounts to asking for trouble in advance.

Thanks,I changed     use imsl   to     use imsl_libraries  ,the error is missing,but new error exists.It show as follow:

1>C:\Users\Tcl\Documents\Visual Studio 2010\Projects\Console2\Fill_Matrix_new2.f90(30): internal error: Please visit 'http://www.intel.com/software/products/support' for assistance.

1> temp_rad=0.1*vwaveLength 1>^

1>[ Aborting due to internal error. ]

I don't use imsl_libraries  ,any other method could realize the same function?

Thanks again,Robert.

0 Kudos
Steven_L_Intel1
Employee
1,676 Views

Actually, the proper replacement for USE IMSL is USE NUMERICAL_LIBRARIES.  IMSL_LIBRARIES pulls in all of the "Fortran 90" interfaces, which is not compatible with the old code.

0 Kudos
mecej4
Honored Contributor III
1,676 Views

Actually, the proper replacement for USE IMSL is USE NUMERICAL_LIBRARIES.

Thanks, Steve. I replied without knowing which IMSL routines are called from the OP's sources.

A quick fix, then, would be to make a copy of numerical_libraries.mod and call it imsl.mod without changing the OP's sources, at all. Would that cause new problems that I do not foresee?

0 Kudos
Steven_L_Intel1
Employee
1,676 Views

Or create in his own project, a source file containing:

[fortran]
module imsl
use numerical_libraries
end module imsl
[/fortran]

0 Kudos
Tan_R_
Beginner
1,676 Views

Hi,

I change as your suggestion,

<code>

   subroutine Fill2

use  imsl_libraries  

include 'link_fnl_static.h'

 !DEC$ OBJCOMMENT LIB:'libiomp5md.lib'

use numerical_libraries

<code>

but the errors are :

error #6764: A unary defined OPERATOR definition is missing or incorrect.    C:\Users\Tcl\documents\visual studio 2010\Projects\Console2\Fill2.f90 247 

error #6764: A unary defined OPERATOR definition is missing or incorrect.    C:\Users\Tcl\documents\visual studio 2010\Projects\Console2\Fill2.f90 372 

In line 247and 372,the codes are the same.<code>     iT(:,:) = .i. T(:,:)     <code>

So this way don't has  1>[ Aborting due to internal error. ],but it cannot realize the function.

Could you help me ?

Thanks,Robert.

0 Kudos
Steven_L_Intel1
Employee
1,676 Views

Oh, so you are using the linear operators. Don't include both IMSL_LIBRARIES and NUMERICAL_LIBRARIES. Since you're using the linear operators, try replacing the USE lines with:

USE LINEAR_OPERATORS

and see what happens.  If you use other IMSL routines, that may cause other errors.  Also, replace:

 !DEC$ OBJCOMMENT LIB:'libiomp5md.lib'

with:

!DEC$ OBJCOMMENT LIB:"libguide40.lib"

because you're using such an old version.

Would you please attach a small program that shows the error?  It doesn't matter if the program doesn't do anything useful.

0 Kudos
Tan_R_
Beginner
1,676 Views

Thanks to everyone,now my project can run;

but the result is not right,I guess the reason is the definition of data types.

I may post the reslut error in Forum.

Thanks again,Robert.

0 Kudos
Reply