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

Intel Fortran compilers

Dean_W_1
Beginner
788 Views
A few questions about Intel Fortran composer XE 2013: Does this platform compile fortran 77? What is the difference between Visual Fortran Composer and Fortran Composer? What is the best version of Intel Visual Studio for Fortran Composer, 2010 or 2012? How many machines can I load Fortran Composer XE 2013 onto? Thanks, Dean
0 Kudos
5 Replies
Steven_L_Intel1
Employee
788 Views

Yes, our compiler fully supports Fortran 77, as well as Fortran 90, 95, most of 2003 and significant parts of Fortran 2008. We also support FORTRAN IV (aka FORTRAN 66).

Intel Visual Fortran Composer XE is the name of our Fortran compiler and performance library product for Windows. On Linux and OS X we don't use the "Visual" word.

There is no practical difference between VS2010 and VS2012 as far as Intel Visual Fortran is concerned, so pick whichever one best meets your needs based on non-Fortran use. The Fortran product includes a Fortran development environment based on VS2010, so if you're only doing Fortran you don't have to buy anything else.

If you purchase a "single-user license" for Intel Visual Fortran Composer XE, you can load it onto as many computers as you want as long as you are the only user of the product on those computers. For more information see Intel® Software Development Products End User License Agreement

0 Kudos
Gee__L_
Beginner
788 Views

Hello Mr.Steve,please I need your help.

In one of your previous answers to a question posted by someone on this forum,you stated that Fortran 77,with others(stated) work on current intel visual Fortran compilers.My question therefore is:

I have a code that I am to re-write from Fortran 77 using INTEL Visual Fortran 13.0.Please,what is the procedure to getting this done?I mean,what are the steps to getting this converted from the Fortran 77 to Visual Studio 2012 and Intel VF 13.O Compilers platforms?

Any good suggestion on this procedure will be highly appreciated,.

Gee Law.

0 Kudos
Steven_L_Intel1
Employee
788 Views

You don't have to rewrite it, if it's really FORTRAN 77. It should just work.Just make sure that the source file name ends in .f or .for, not .f90.

0 Kudos
John_Campbell
New Contributor II
788 Views

Gee Law,

Most implementations of Fortran 77 included extensions to the standard. These typically included the file interface, variable types and data structures. While INTEL Visual Fortran 13.0 supports the Fortran 77 standard, it does not support most fortran programs written in 70's that also included non-standard "extensions" to make them work more effectively. You will need to look for these non-standard uses.

I converted many programs between different compilers, but have forgotten a lot of this. Some of the more significant related to:
* pre F77 did not have character variables, but used ENCODE/DECODE and Holorith to store characters in integers or reals. Converting these can often be too difficult to achieve, especially where integer arrays were used for a mixture of character and integer values. Their mixed use can be spread throughout the code.
* Fortran 90 provided generic functions ( might even be in F77). This greatly improved mixed mode calculations for variables of different Kind. Adopting generic functions is a recommended change, especially with an editor that can do selective global changes throughout the source code. While generic functions support some mixed mode, mixed mode arguments to subroutines is more difficult, especially using real constants as subroutine arguments. This needs to be checked carefully.
* OPEN statements were often very non-standard. It is often better to convert these to the standard. Binary READ and WRITE also allowed many non-standard extensions than can be difficult to reporduce.

I have found a list (attached) of key areas I had to check, when converting from CDC 60 bit single precision reals (which stored A10 characters) to 64-bit double precision REAL*8 variables.
Generic functions were a big help for this aspect of conversions. Based on this experience, I have never used DOUBLE PRECISION, but always used REAL*8 to describe the type and precision of variables. Receiving code from an unknown compiler, which uses REAL, you never knew what precision was required.

The other key bit of advice is to minimise the changes you make, and try to make them a structured change. Every change typed is a potential source of error in the modified code, which has to be checked. You need a reference data set and output to confirm the operation of the new code.

John

 

0 Kudos
Steven_L_Intel1
Employee
788 Views

Intel Fortran supports ENCODE/DECODE and Hollerith. I would venture to say that Intel Fortran supports more common extensions from the 70s than pretty much any other current Fortran compiler. This is why I say - just try it, it may work. If you get errors, show us the source line and the error message and we can make recommendations.

0 Kudos
Reply