Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

f95 pointers vs. Cray pointers

gfthomas8
Novice
726 Views
IFC discourages use of Cray or integer pointers in favor of F95 pointers. Also, it doesn't support integer pointers in modules.

I make extensive use of integer pointers (p and q, say)in CVF files and modules in loading DLL's
eg, p=LoadLibrary('MyDLL.dll'C),
and in accessing their exports
eg, q=GetProcAddress(p,'MyExport'C).

How should I do the equivalent with F95 pointers?
Are integer pointers included in f2k?

Thank you for the help,
Gerry T.


0 Kudos
5 Replies
Steven_L_Intel1
Employee
726 Views
You can't duplicate this functionality with F95 pointers. F2K does add procedure pointers, but not in the way you'd like to use them. It does not have integer pointers.

You will see the restrictions on integer pointers relaxed in a future update to IFC, and of course, gone completely with the "combined" product when that arrives.

Steve
0 Kudos
gfthomas8
Novice
726 Views
Thank you for the clarification and for the reassurance here and in PortingCVF1.pdf that IVF will have all of CVF's capabilities and some. Any chance that IVF will have porting wizards for converting all types of CVF apps to corresponding IVF apps? It is indeed regrettable that Microsoft has stymied mixed-language development within the .NET Framework.

My trial use of ifc has finished and I've uninstalled it. I note that it caused CVF not to recognize dfwin, dfcom, etc. as 'valid DEC modules'. Now that ifc is gone, CVF is back to normal. The upgrade deal seems more than fair so long as IVF appears within the subscription year.

Ciao,
Gerry T.
0 Kudos
Steven_L_Intel1
Employee
726 Views
We are working on a workspace migration tool, but this is just for the differences in the IDE, not the compiler. You shouldn't need to touch your sources.

If you install Intel Fortran and want to use CVF as well, you need to make sure that the INCLUDE paths aren't mixed. Intel Fortran will install its INCLUDE paths ahead of CVF's, and since they have some of the same-named modules, confusion will ensue.

Steve
0 Kudos
durisinm
Novice
726 Views
Steve,

Can you explain in more detail what you meant when you wrote "make sure that the INCLUDE paths aren't mixed"? How does one do that?

Mike
0 Kudos
Steven_L_Intel1
Employee
726 Views
If you're building from the command line, both compilers use the INCLUDE environment variable to define a list of places to look for INCLUDE files and MODULEs. In Developer Studio, there is a single list (under Tools..Options..Directories..Include Files) that is used. Since both CVF and Intel Fortran define some modules of the same names, you want to make sure that CVF doesn't see the Intel modules and vice-versa.

This will mean being careful NOT to enable the Intel Fortran "plugin" for Visual Studio 6 if you are using CVF, as it WILL take over, no matter what you tell it. From the command line, don't define INCLUDE system wide and use the particular compiler's .BAT file to define the environment variables.

Steve
0 Kudos
Reply