Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29281 Discussions

IVF Fortran XE2016 Prof with IMSL: unable to compile

bluesz1
Beginner
1,691 Views

I just bought the IVF XE2016 Professional with IMSL and set up the library (library and include directory) for IMSL/

However, I could not compile when I try to link the IMSL, 

Severity    Code    Description    Project    File    Line

Severity    Code    Description    Project    File    Line
Error        error code 23 (returned by OpenValidateX) opening pdb Debug\vc140.pdb        H:\users\myangadmin\Documents\Visual Studio 2015\Projects\Console3\Console3\Console3.f90    1


Error        error #7881: This module file was generated for a different platform or by an incompatible compiler or compiler release. It cannot be read.   [NUMERICAL_LIBRARIES]        H:\users\myangadmin\Documents\Visual Studio 2015\Projects\Console3\Console3\Console3.f90    2

 

  it seems "use numerical_libraries" is not valid in the new program any more. Am I right? 

If so, what is the new syntax? Thanks

see the following program. 

 

 

    program Console3
    use numerical_libraries
     include 'link_fnl_shared.h'
   
    implicit none

    print *, 'Hello World'

    end program Console3

0 Kudos
10 Replies
mecej4
Honored Contributor III
1,691 Views

Did you upgrade from a previous version of IFort+IMSL? Do you have more than one version of IMSL installed? Check if the IMSL-related environmental variables (FNL_DIR, etc.) and/or Visual Studio defaults are set correctly to use the 7.0.1 version of IMSL. The modules in the 7.0.1 IMSL installation have a module version 14.0 in them, but they work fine with the 16.0.0.110 compiler.

"USE NUMERICAL_LIBRARIES" should work fine for older IMSL routines, but you are supposed to use USE statements for specific routine interfaces, or to use "USE IMSL_LIBRARIES' in new code.

 

0 Kudos
bluesz1
Beginner
1,691 Views

This is not an upgrade, it is a new purchase, fresh installation on a new desktop. 

Here, I got the following 3 errors. It seems the program can not open the following file vc140.pdb, regardless of

"use numerical_libraries " or "use IMSL_libraries".

The errors are exactly the same. 

Any idea? 

Thanks

 

 

Severity    Code    Description    Project    File    Line
Error        error code 23 (returned by OpenValidateX) opening pdb Debug\vc140.pdb        H:\users\myangadmin\Documents\Visual Studio 2015\Projects\Console3\Console3\Console3.f90    1


Severity    Code    Description    Project    File    Line
Error        Compilation Aborted (code 1)        H:\users\myangadmin\Documents\Visual Studio 2015\Projects\Console3\Console3\Console3.f90    1


Severity    Code    Description    Project    File    Line
Error        error #7881: This module file was generated for a different platform or by an incompatible compiler or compiler release. It cannot be read.   [IMSL_LIBRARIES]        H:\users\myangadmin\Documents\Visual Studio 2015\Projects\Console3\Console3\Console3.f90    5

0 Kudos
Lorri_M_Intel
Employee
1,691 Views

The PDB fail is a red herring (a false lead)

What's interesting is this fail:

Error        error #7881: This module file was generated for a different platform or by an incompatible compiler or compiler release. It cannot be read.   [IMSL_LIBRARIES

This means that the compiler is finding the file "IMSL_LIBRARIES.MOD", but it is in an unexpected format.
A common reason is an incorrect architecture, that is, the 32-bit compiler finding the 64-bit mod files , or vice versa.

You said this:

I just bought the IVF XE2016 Professional with IMSL and set up the library (library and include directory) for IMSL/

What did you do to set it up?   Is there a chance that you set the INCLUDE path to be inconsistent with the compiler being used?

Are you using Visual Studio to build, or the command line?  If Visual Studio, could you post the build log for us to look at?

                     thanks -

                                     --Lorri

 

0 Kudos
bluesz1
Beginner
1,691 Views

 

I am using Microsoft Visual Studio 2015 to build it. 

But I do not know what log you are asking for. How do I get it for you? 

0 Kudos
mecej4
Honored Contributor III
1,691 Views

There is a file called "buildlog.htm" that is a by-product of the build process. Usually, after a build, you can see a link to the file in the VS pane where the build progress is displayed.

Have you gone through the steps detailed on the page https://software.intel.com/en-us/articles/installing-and-using-the-imsl-libraries under the heading "Configuring for Use from Microsoft Visual Studio"?

0 Kudos
bluesz1
Beginner
1,691 Views

 

 I configured IMSL with Microsfot Visual Studio for earlier version. I assume there are no other changes. 

Here is the buildlog.htm

 

Build Log
   
 

Build started: Project: Console3, Configuration: Debug|Win32

Output
   
Deleting intermediate files and output files for project 'Console3', configuration 'Debug|Win32'.
Compiling with Intel(R) Visual Fortran Compiler 16.0 [IA-32]...
ifort /nologo /debug:full /Od /warn:interfaces /module:"Debug\\" /object:"Debug\\" /Fd"Debug\vc140.pdb" /traceback /check:bounds /check:stack /libs:dll /threads /dbglibs /c /Qlocation,link,"D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin" "H:\users\myangadmin\Documents\Visual Studio 2015\Projects\Console3\Console3\Console3.f90"
H:\users\myangadmin\Documents\Visual Studio 2015\Projects\Console3\Console3\Console3.f90(2): error #7881: This module file was generated for a different platform or by an incompatible compiler or compiler release. It cannot be read.   [NUMERICAL_LIBRARIES]
    use numerical_libraries
--------^
error code 23 (returned by OpenValidateX) opening pdb Debug\vc140.pdb
compilation aborted for H:\users\myangadmin\Documents\Visual Studio 2015\Projects\Console3\Console3\Console3.f90 (code 1)


Console3 - 3 error(s), 0 warning(s)

 

0 Kudos
Martyn_C_Intel
Employee
1,691 Views

As Lorri says. I can reproduce a message just like that if, under tools/options/Intel Compilers and Tools/Visual Fortran / Includes, I put

C:\Program Files (x86)\VNI\imsl\fnl701\Intel64\include\dll  instead of  C:\Program Files (x86)\VNI\imsl\fnl701\IA32\include\dll

(I was using VS2012).

 

0 Kudos
bluesz1
Beginner
1,691 Views

 

For the options of include and library folder, I include both IA32 and Intel64

I got no problem for the older version of IVF, now I have to delete Intel64 from the both folders.

I also checked : it works fine whether I use "use numerical_libraries"  or "use IMSL_libraries". 

It seems to me that even now, the default executable program is still 32 bit, right? Is there big difference between 32 bit and 64 bit in computation performance?  Since now, the 64 bit OS is prevalent, why does Intel still stick to 32? 

Again, thank you all for your help!

 

 

 

include folder

C:\Program Files (x86)\VNI\imsl\fnl701\Intel64\include\dll

C:\Program Files (x86)\VNI\imsl\fnl701\IA32\include\dll

 

library folder

C:\Program Files (x86)\VNI\imsl\fnl701\Intel64\lib

C:\Program Files (x86)\VNI\imsl\fnl701\IA32\lib

0 Kudos
mecej4
Honored Contributor III
1,691 Views

bluesz wrote:
For the options of include and library folder, I include both IA32 and Intel64

If you listed both include folders as directories to be searched (for include files and module files), especially if you listed the wrong one first followed by the correct one, that would explain all the problems that you described in this thread. Specify the IA32 directory in the Win32- or 32-bit console project. Similarly specify only the Intel64 directory in the x64 project.

It seems to me that even now, the default executable program is still 32 bit, right? Is there big difference between 32 bit and 64 bit in computation performance?  Since now, the 64 bit OS is prevalent, why does Intel still stick to 32?

The default is set to IA32 because that configuration works on 32-bit and 64-bit Windows. You can change your default configuration to X64 if you wish.

There is not much performance difference in terms of running time. X64 programs can sometimes be slower because there are more bytes to flow through the memory and caches than in the 32-bit version. However, 64-bit programs allow you to work with larger data sets with access to more memory, beyond the limits in 32-bit Windows.

0 Kudos
Martyn_C_Intel
Employee
1,691 Views

Intel64 programs have access to twice as many registers as IA-32 programs, and this can make some difference to performance.

0 Kudos
Reply