- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am considering whether to upgrade from CVF to the Intel Fortran but want to make sure that it does not preclude me using old CVF-based code.
Several sites suggest that "The Intel Fortran Compiler for Windows is substantially source-compatible with Compaq Visual Fortran (CVF), versions 5.0 to 6.6" - my understanding was all fortran language extensions from CVF were to be ported to the new Intel compiler. The one I am particularlyinterested in is passing internal procedures as arguments to other procedures.
But in general,what are the incompatibilities between the compilers? I used both console and fortran windows applications under CVF.
The other question was regarding use of IMSL - an earlier message in this forum suggested the older IMSL library bundled with the CVF Pro could not be used by Intel Fortran 8. That seems strange to me-I would've thought it could be used like any other static library?
thanks,
Dmitri
Link Copied
8 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Intel Visual Fortran has all of the language features of CVF, including passing internal procedures. The differences come into play if you depend on default calling mechanisms for mixed-language programs, but you can deal with that in various ways.
The issue with CVF's IMSL is that it makes calls to the CVF run-time library, and the Intel library has routines of the same names but are incompatible. We tell you that you must recompile all Fortran sources and cannot reuse static libraries. You may be able to fudge it if you don't mind loss of some IMSL functionality and linker errors. The IMSL 5.0 available with Intel Visual Fortran has a lot of improvements.
You will see in the "sticky" topics in this forum a post about a porting document - find the latest one I posted there and read it. An updated version will be on the Intel web site in a few weeks.
The issue with CVF's IMSL is that it makes calls to the CVF run-time library, and the Intel library has routines of the same names but are incompatible. We tell you that you must recompile all Fortran sources and cannot reuse static libraries. You may be able to fudge it if you don't mind loss of some IMSL functionality and linker errors. The IMSL 5.0 available with Intel Visual Fortran has a lot of improvements.
You will see in the "sticky" topics in this forum a post about a porting document - find the latest one I posted there and read it. An updated version will be on the Intel web site in a few weeks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In my opinion :
The compatibility the compilers is now good for my projects.
The preprocessor (fpp) does appear to behave differently (it does not seem to strip white space like CVF, or use include paths in the same way) but these can be coded around to get source that works in CVF and IVF
The IDE on the other hand has some critical problems, which mean that some projects can not be used in IVF. Specifically , large projects explode the virtual memory to an unusable amount (I have half loaded a dsw and I'm up from 100MB to in excess of 1GB). Force loading of objects in mixed language projects (i.e c and fortran) is not portable to IVF. Both of these issues have been reported to Premier support (the virtual memory problem in february !) and I have yet to receive a work around.
It is also a painto work on DVF and IVF at the same time i.e. there is no auto convert option. So if you have 100 project sin a workspace you must convert each by hand. This can be also be tedious when wanting to use older versions of code from a repository.
Tony
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Tony,
We're aware of the memory usage issue and it is being worked on. There is a project conversion tool, but it requires user interaction.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Another issue is compatibility with Visual Studio 2005.
We would like to migrate to the latest version of development tools as soon as they are released and seem to be reliable. This particularly applies to Visual Studio but it would also apply to our Fortran compiler provided there is no conflict.
In addition, upgrading to IVF from CVF would enable us to debug both managed and unmanaged parts of our code in a single session. It would also allow us to develop in a single IDE rather than two different IDEs. But until we are confident that IVF will be ready when new upgrades of Visual Studio are ready, we probably won't upgrade.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We are working on integration for VS2005. It is, of course, very different internally from VS2002/2003 and requires redoing almost everything we have. Given our experience with Microsoft, we would not want to predict when MS would actually release VS2005. It is a certainty that today's IVF would not integrate with VS2005, but we do intend to have support for it at or about the time VS2005 is released.
We cannot, however, ship support for a beta or "preview" version of VS2005 - MS rules don't allow it.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm glad to hear that you do intend to have support for VS2005 at or about the time it is released.
I will add "Upgrade to IVF" to our plans.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Also remember that IVF does not have the com server wizard. So producing all the elaborate com server shell files is to be done manually.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Where we need to interoperate Net code and legacy Fortran, we use the P/Invoke capability of .Net. Where we need to interoperate .Net code and a COM object, we use the COM Interop capabilityof .Net. We never need to interoperate directly between Fortran and a COM object.
So as it happens we don't need the COM Wizard.
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