IMSL cannot be used

IMSL cannot be used

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

13 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

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...

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

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

Quote:

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.

Allegati: 

AllegatoDimensione
Download 1.png29.12 KB

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.

Quote:

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.

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.

Steve - Intel Developer Support

Quote:

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?

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

module imsl
use numerical_libraries
end module imsl

Steve - Intel Developer Support

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.   [I] C:\Users\Tcl\documents\visual studio 2010\Projects\Console2\Fill2.f90 247 

error #6764: A unary defined OPERATOR definition is missing or incorrect.   [I] 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.

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.

Steve - Intel Developer Support

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.

Lascia un commento

Eseguire l'accesso per aggiungere un commento. Non siete membri? Iscriviti oggi