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

Porting CVF to IVF tutorial

avinashs
New Contributor I
1,118 Views

I had pointed out the need to move away from the /iface:cvf setting in my projects. In my archives, I found the attached tutorial authored by @Steve Lionel from somewhere around 2005-2007 that was bundled along with some of first Intel Fortran packages and one that I found to be quite useful. This was the basis for making the switch to IVF from legacy CVF projects. Is there a newer version of this article available in the context of the latest compiler? If so, I would appreciate a copy.

0 Kudos
1 Solution
Steve_Lionel
Honored Contributor III
1,116 Views

Interesting - I don't recall this being turned into a PDF. In any event, a somewhat newer version is at https://software.intel.com/en-us/articles/migrating-from-compaq-visual-fortran

 

View solution in original post

0 Kudos
7 Replies
Steve_Lionel
Honored Contributor III
1,117 Views

Interesting - I don't recall this being turned into a PDF. In any event, a somewhat newer version is at https://software.intel.com/en-us/articles/migrating-from-compaq-visual-fortran

 

0 Kudos
CHobbs1
New Contributor I
610 Views

Dear Steve;

 

In my quest to compile some CVF code that has calls using the dfopngl module, I tried to find the migrating_from_compaq_visual-fortran doc on the page you point to and failed.  Can you still find it there?

 

A direct question to you: should I be able to compile and use some code that uses dfopngl module in the moderm (2024)  intel fortran compiler without change?  If so, what are the compiler switches needed to make it happen?

 

Please let me know.  Thank you.

 

Sincerely,

 

Chris

0 Kudos
avinashs
New Contributor I
1,116 Views

Steve Lionel (Ret.) wrote:

Interesting - I don't recall this being turned into a PDF. In any event, a somewhat newer version is at https://software.intel.com/en-us/articles/migrating-from-compaq-visual-f...

 

Thanks. I notice a new section called "Behavior Differences" explaining the /warn:nointerfaces option that I was having a problem with and recently posted another thread on the same.

0 Kudos
Steve_Lionel
Honored Contributor III
580 Views

Hi Chris,

Intel Fortran still provides module dfopngl. I would think in most cases you should not need to do anything special. I just tried one of the sample projects (Rings), built it with ifx, and had no issues. You could change the module name to ifopngl if you wanted.

Sadly, Intel has removed many old but still relevant and useful articles, just because they weren't edited to keep up with the ever-changing product names. Fortunately, the Internet Archive Wayback Machine saved a copy of the migration article, which you can find here.

CHobbs1
New Contributor I
570 Views

Hello, Steve!  Great to hear from you.  I went into the doc and changed all Use DFOPNGL to Use IFOPNGL and the code got really far into compiling.  The one thing that surprises me is that there is a Call to a subroutine (gluBuild2DMIpmaps) that the compiler insists is a function.  Could the usage from the CFV days have changed that much that a subroutine gets changed to a function?  Easy change, I just wondered.  My other big challenge is how to set up Visual Studio 2022 Intel OneAPI switches to work properly with OpenGL.  I saw in your older CVF to IVF doc a reference to DFOPNGLT IFOPNGLT for the data types used with OpenGL.  The old code I am working on does not have any reference to the that module.  So, I kinda wonder how it knows the OpenGL data types.

Anyhow, if you've any advice on making VS2022 work with intel's compiler and OpenGL I would be very glad to hear it.  Thank you.

0 Kudos
Steve_Lionel
Honored Contributor III
540 Views

gluBuild2DMIpmaps is a function, not a subroutine. gluBuild2DMipmaps function (Glu.h) - Win32 apps | Microsoft Learn

IFOPNGL uses IFOPNGLT, so you rarely need to reference the latter.

I don't see that any special configuration of Visual Studio is needed. You will need to structure your application as a "Windows Application" project, especially now that Microsoft removed the GLUT procedures, which means creating your own windows. You can look at the OpenGL samples in the samples bundle to see how this is done. (I did the conversion of these samples from GLUT to explicit window creation.)

0 Kudos
CHobbs1
New Contributor I
515 Views

Much appreciated, Steve.  Whatever was done back when this code ran with CVF had gluBuild2DMipmaps as a subroutine.  Maybe OpenGL version 1.2 or some weirdness was going on to get the alpha channel color.  It's looking a bit beyond me to recode the pieces that are not working in the current version of the compiler.  Thank you for the advice.  

0 Kudos
Reply