- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I try do compile (Intel Compiler 11.1.038 Intel64) in the Visual Studio 2008 a small program that use IMSL libraries and the following message appears:
fortcom: Fatal: There has been an internal compiler error (C0000094)
I cant compile/link it. I use the 'INCLUDE link_fnl_static.h' and USE IMSL_Libraries statements though.
Someone can help me ?
fortcom: Fatal: There has been an internal compiler error (C0000094)
I cant compile/link it. I use the 'INCLUDE link_fnl_static.h' and USE IMSL_Libraries statements though.
Someone can help me ?
1 Solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Remove (or comment out)the "USE IMSL_LIBRARIES" statement and add a reference to libiomp5md.lib as shown.
Here's a snippet of the top of your program *after* changes.
INCLUDE 'link_fnl_static.h'
PROGRAM AUTVAL_RA
!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'
!USE IMSL_LIBRARIES
I can reproduce the internal error only with the Intel64 compiler. I don't believe the USE statement is necessary. I'm checking w/IMSL experts.
Link Copied
12 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Unfortunately your program has exposed an internal compiler. I doubt its related to simply including the IMSL header. Since you are already using the latest 11.1 update, about all we can try to do is find a work around.
If you're comfortable posting the source file that suffered this error to this public forum, then we can investigate and perhaps offer a work around. Alternatively, you may submit a private issue to Intel Premier (here) for further assistance.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Kevin Davis (Intel)
Unfortunately your program has exposed an internal compiler. I doubt its related to simply including the IMSL header. Since you are already using the latest 11.1 update, about all we can try to do is find a work around.
If you're comfortable posting the source file that suffered this error to this public forum, then we can investigate and perhaps offer a work around. Alternatively, you may submit a private issue to Intel Premier (here) for further assistance.
Thanks Kevin.
The problem is that I can compile/run any other program that does not use IMSL routines.
I have no problems to send you my program. Please find it attached. It uses a input file that is also attached.
Just to inform you, my PC use Windows Vista 64 OS.
Thanks.
Joo Lima
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Remove (or comment out)the "USE IMSL_LIBRARIES" statement and add a reference to libiomp5md.lib as shown.
Here's a snippet of the top of your program *after* changes.
INCLUDE 'link_fnl_static.h'
PROGRAM AUTVAL_RA
!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'
!USE IMSL_LIBRARIES
I can reproduce the internal error only with the Intel64 compiler. I don't believe the USE statement is necessary. I'm checking w/IMSL experts.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Kevin Davis (Intel)
Remove (or comment out)the "USE IMSL_LIBRARIES" statement and add a reference to libiomp5md.lib as shown.
Here's a snippet of the top of your program *after* changes.
INCLUDE 'link_fnl_static.h'
PROGRAM AUTVAL_RA
!DEC$ OBJCOMMENT LIB:'libiomp5md.lib'
!USE IMSL_LIBRARIES
I can reproduce the internal error only with the Intel64 compiler. I don't believe the USE statement is necessary. I'm checking w/IMSL experts.
I've also found that I can't compile under Intel64 (11.1.038) if I'm using the IMSL libraries. ia32 works OK as does 11.0.072 (both 32 and 64 bit).
The IMSL libraries I'm using are version 11.1.035.
The error I get is:
1>D:JohnDocumentsProjectsCommonsrcMyStats_IMSL.f90(21): 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]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the additional report. The USE that I commented on earlier I expect is valid. The IMSL shipped with 11.1 is reportedly the same as the 11.0 version so it appears there is a module issue (perhaps incompatibility) on Intel64 only here.
We apologize for this. We'll get to the bottom of it.
(Internal tracking id: DPD200138749)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - JohnR
I've also found that I can't compile under Intel64 (11.1.038) if I'm using the IMSL libraries. ia32 works OK as does 11.0.072 (both 32 and 64 bit).
The IMSL libraries I'm using are version 11.1.035.
The error I get is:
1>D:JohnDocumentsProjectsCommonsrcMyStats_IMSL.f90(21): 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]
John, your case might be an architecture mismatch between the compiler and actual IMSL package used.
Can you confirm that the name of the IMSL download file you obtained for Intel64 was: w_cprofimsl_p_11.1.035_intel64.exe and *not* w_cprofimsl_p_11.1.035_ia64.exe?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can reproduce the internal compiler error and we'll investigate. Issue ID is DPD200138749.
You can get the program to compile by doing two things:
1. Replace USE IMSL_LIBRARIES with USE ZBREN_INT. IMSL_LIBRARIES is a "catch-all" module that uses all of the hundreds of individual interface modules. It is better to use only those interface modules you need. The compiler should not die, but this is an easy workaround and will compile faster too. The USE is required if one is calling the "Fortran 90" interface to the IMSL routine.
2. This is not required, but I recommend it - replace "D_ZBREN" with "ZBREN". It is a common misunderstanding that one should call the datatype-specific name of the routine. The module declares ZBREN as generic and using the generic name is highly recommended. Whatever you do, DON'T call the "Fortran 77" name DZBREN. A caveat, though - make sure you add the USE ZBREN_INT or else a call to ZBREN will resolve to the older name!
You can get the program to compile by doing two things:
1. Replace USE IMSL_LIBRARIES with USE ZBREN_INT. IMSL_LIBRARIES is a "catch-all" module that uses all of the hundreds of individual interface modules. It is better to use only those interface modules you need. The compiler should not die, but this is an easy workaround and will compile faster too. The USE is required if one is calling the "Fortran 90" interface to the IMSL routine.
2. This is not required, but I recommend it - replace "D_ZBREN" with "ZBREN". It is a common misunderstanding that one should call the datatype-specific name of the routine. The module declares ZBREN as generic and using the generic name is highly recommended. Whatever you do, DON'T call the "Fortran 77" name DZBREN. A caveat, though - make sure you add the USE ZBREN_INT or else a call to ZBREN will resolve to the older name!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Kevin Davis (Intel)
John, your case might be an architecture mismatch between the compiler and actual IMSL package used.
Can you confirm that the name of the IMSL download file you obtained for Intel64 was: w_cprofimsl_p_11.1.035_intel64.exe and *not* w_cprofimsl_p_11.1.035_ia64.exe?
Hi Kevin, Steve
Yes, I can confirm that I downloaded and installed w_cprofimsl_p_11.1.035_intel64.exe. I have no problems compiling and linking this version of IMSL with 11.0.72 (Intel 64), but cannot compile with 11.1.038 due to the module error.
I have managed to get a successful build under Intel64, and this is what I had to do:
- It seemed that some of my source files were including the ia32 IMSL directories. This is strange as the project include does not and this is not the case under VS2005 (11.0.72). In any case, removing these file includes and replacing the generic USE IMSL_LIBRARIES with the proper module name works. Using IMSL_LIBARARIES reports internal compiler error (C0000094).
- The compiler then reported errors on my assigment interfaces. Again, unexpected since these have been in my code since the version 9 compilers. I had to point to lower level routines and remove PURE from many of the them. I will have to look into this.
- I'm getting an error with formatted output that I'm still looking into -see Problem with format
I have both VS2005 (11.0.072) and VS2008 (11.1.035) installed on my Server 2003 (64) machine. VS2008 seems flaky - for eg
- trying to use Ctrl-F (find) or Crtl-Shift-F (finf in files) will crash the IDE every time. Ctrl-I is fine.
- when viewing Project Properties, I will sometimes get only Fortran properties (and nothing else) and sometimes get the full list
- the resource compiler did not install and I had to move the appropriate files from VS2005 into place
- inline help no longer works
- I previously reported that I couldn't compile individual files by right-clicking - this is there (I think my eyesight is going!)
- Found it very difficult to get a command line build going. nmake didn't install (moved files over) and am still tracking down some build errors (some of these may have been resolved by the discussion in this thread) - will persevere.
Regards
John
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Steve Lionel (Intel)
I can reproduce the internal compiler error and we'll investigate. Issue ID is DPD200138749.
You can get the program to compile by doing two things:
1. Replace USE IMSL_LIBRARIES with USE ZBREN_INT. IMSL_LIBRARIES is a "catch-all" module that uses all of the hundreds of individual interface modules. It is better to use only those interface modules you need. The compiler should not die, but this is an easy workaround and will compile faster too. The USE is required if one is calling the "Fortran 90" interface to the IMSL routine.
2. This is not required, but I recommend it - replace "D_ZBREN" with "ZBREN". It is a common misunderstanding that one should call the datatype-specific name of the routine. The module declares ZBREN as generic and using the generic name is highly recommended. Whatever you do, DON'T call the "Fortran 77" name DZBREN. A caveat, though - make sure you add the USE ZBREN_INT or else a call to ZBREN will resolve to the older name!
You can get the program to compile by doing two things:
1. Replace USE IMSL_LIBRARIES with USE ZBREN_INT. IMSL_LIBRARIES is a "catch-all" module that uses all of the hundreds of individual interface modules. It is better to use only those interface modules you need. The compiler should not die, but this is an easy workaround and will compile faster too. The USE is required if one is calling the "Fortran 90" interface to the IMSL routine.
2. This is not required, but I recommend it - replace "D_ZBREN" with "ZBREN". It is a common misunderstanding that one should call the datatype-specific name of the routine. The module declares ZBREN as generic and using the generic name is highly recommended. Whatever you do, DON'T call the "Fortran 77" name DZBREN. A caveat, though - make sure you add the USE ZBREN_INT or else a call to ZBREN will resolve to the older name!
Thanks Steve,
Thanks Kevin,
Thanks JohnR,
Ive done the replacements Steve recommended. And Ill use them from now on.The program works/compiles in X64 environment. However, if I try to compile it as Win32 another error occurence appears. Then, Iveused the instruction recommendedbyKevin (to insert the statement: !DEC$ OBJCOMMENT LIB:'libiomp5md.lib'). Now, the program works fine in both environment (Win32 and X64) !!!!.However,I cant realize why shouldsomeone insert this statement !
Thanks a lot !
Joo Lima
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm puzzled as to why you didn't need it on x64! Here's what's happening. The IMSL libraries use OpenMP internally, which creates a dependence on the OpenMP library, libiomp5md. For the DLL library case, that dependency is built in to the IMSL DLL, but for static libraries, you need to pull in libiomp5md.lib. VNI recommends that IMSL-using programs compile with /Qopenmp, which will do this, but this has additional side effects such as making all local arrays automatic. Therefore, we tend to recommend just adding the mention of libiomp5md.lib. VNI has declined to add this to the include file.
- 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
Steve,
thanks a lot for your updated IMSL 6 FNL module files for INTEL 11.1.xxx for x86-64 platform.
Great job, which save me a lot of time!!!
Thanks again, Michal

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