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.

mixing CVF and IVF

martymike
Novice
464 Views

I know I've read a bit about this in various posts, but I wonder if you have a comprehensive document about issuesconcerning mixing programs compiled with the two compilers.

We have ported our large engineering application from CVF to IVF (9.1 at the moment). However, there is one library (a dynamically loaded DLL) that we use that is currently compiled with CVF that is not under our direct control. We are hopeful that it will be converted as well, but, if it is not, I'm wondering what to expect.

We've set up our builds to use /iface:cvf (because of all the C source that we have that assumed that), so that won't be an issue. I'm aware that the two run-times do not share I/O control blocks, but that won't be a problem in this case, either. I'm not aware of any other problems.

A particular concern is that we pass unassociated pointers to routines in this library, which we expect to be returned allocated, and then expect to deallocate ourselves.

0 Kudos
1 Reply
Steven_L_Intel1
Employee
464 Views
No, this won't work. If you weren't passing assumed-shape/allocatable arrays, you might get away with it, but things will break horribly if you try to mix things that way.

In general, we simply say "don't mix IVF and CVF". Mixing at the .obj/.lib level simply doesn't work at all. A DLL hides MOST of the incompatibilities, but you can't share I/O or pass assumed-shape arrays.

I've been trying to think of a way to work around this, with some sort of jacket routines that "convert" things, but it's a lot of work and messy and would require some changes to your existing code.
0 Kudos
Reply