Quantcast
Channel: Intel® Software - Intel® Visual Fortran Compiler for Windows*
Viewing all articles
Browse latest Browse all 5691

Do loop do i=m+1,n executes even when m+1>n

$
0
0

I am an experienced Fortran developer for 20+ years developing chemical engineering software for the energy industry. I have been using Intel Fotran (v 10.1.024) since 2008 as it was adopted by the AspenTech chemical engineering software as part of its simulator. However, my legacy programs that had been compiled successfully with several compilers including CVF (6.6C), experience many unexplained errors in Intel Fortran. My questions to the forum are:

1. Is there a list of settings available where Intel Fortran is completely compatible with legacy CVF code? One such setting is the option /iface:cvf and that eliminates many of the error messages but not all.

2. There are a number of cases where there are run-time errors that should not occur. For example, I have the following piece of code (written in simplified format to illustrate the point):

integer(4) :: i, m, n
real(8) :: t, x(3)
m = 3
n = 3
t = 0.0
do i = m+1,n
if (x(i) > 0.0) then
t = t + 1.0
end if
end do

In the above code, the do loop should not execute since m+1 is greater than n (4>3). However, Intel fortran executes the body of the loop resulting in an error since an attempt is made to access the fourth element of x. The locals window confirms that i=4 when the break point was encountered within the loop while executing the if statement. Again, other do-loops with a similar structure work fine.

3. Will it help to have a newer version of the compiler?

This is baffling and frustrating. Please help. I have avoided these problems by sticking to my legacy version of Compaq Fortran for several years but the new Windows 7 computer and AspenPlus are no longer compatible with CVF.

Best,

Avinash

Dr. Avinash R. Sirdeshpande

Director, Process Design and Modeling,
GreatPoint Energy
Chicago


Viewing all articles
Browse latest Browse all 5691

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>