Hi Johnny,<div><br></div><div>Thank you for your help! </div><div><br></div><div>If the Intel compiler does floating point speculation by default, does this mean that I can turn off the fpe0 and the compiler could still throw floating overflow exception if the branch  that will be executed has an floating point overflow? Actually, my program can run correctly if I don&#39;t turn on the fpe0.</div>
<div><br><br><div class="gmail_quote">On Mon, Mar 21, 2011 at 11:33 AM, Johnny Chang <span dir="ltr">&lt;<a href="mailto:Johnny.Chang@nasa.gov">Johnny.Chang@nasa.gov</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Jemma,<br>
<br>
The floating overflow is most likely a &quot;false positive.&quot;  The Intel compiler<br>
does floating point speculation by default.  What this means is that if you<br>
have an if-then-else-endif block, the compiler can issue instructions for<br>
both branches to be executed *before* the if condition has been evaluated.<br>
After the if condition has been resolved, then the floating point operations<br>
in one of the branches is thrown away.<br>
<br>
For example,<br>
<br>
    if (cos(x) .ne. 0.0) then<br>
       y = 1.0/cos(x)<br>
    else<br>
       y = cos(x)<br>
    endif<br>
<br>
When you turn on -fpe0 for your Fortran program, it turns off floating point<br>
speculation for the Fortran program, but not for the ncarg libraries!!  So,<br>
the divide by zero in the example above, which most likely is also present<br>
in the ncarg library, will cause your program to stop even though it would not be used in the actual execution path of the program.<br>
<br>
The solution is to build a version of ncarg with -fpe0 or -fp-speculation=safe for debugging purposes.  If you are interested in tracking down the actual<br>
line in the ncarg source that&#39;s causing the problem, then rebuild ncarg with<br>
the -traceback -g options (in addition to the other optimization options).<br>
Then your stack trace below will give you the line number in the ncarg source<br>
that&#39;s causing the floating overflow.<br>
<br>
Johnny<div><div></div><div class="h5"><br>
<br>
<br>
On 3/20/11 4:44 PM, Jemma Wu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
I have built and installed ncarg.v5.2.1 under OpenSUSE 11 with Intel compilers.<br>
Now I have a problem with calling Periml (Gridal package) in my fortran program.<br>
The program can be compiled and run (appears correctly) if I don&#39;t add the float<br>
point exception flag (fpe0). However, if I add the fpe0 flag and compile and run<br>
it, then it will stop with a floating overflow. I debugged it and found it is<br>
with the Periml call.<br>
<br>
I then found an example (tgrida) in ncarg with Periml and tested it with adding<br>
the fpe0 option, and it also have the float overflow problem. My compilation<br>
options are as follows.<br>
<br>
ifort –fpe0 -traceback -O0 -o tgrida tgrida.f -L/usr/local/ncarg_build/lib<br>
-lncarg -lncarg_gks -lncarg_c -lX11 -lXext,<br>
<br>
and the running results are<br>
<br>
~/model/ncl_ncarg-5.2.1&gt; ./tgrida<br>
forrtl: error (72): floating overflow<br>
Image              PC                Routine            Line        Source<br>
tgrida             00000000004FCDFB  Unknown               Unknown  Unknown<br>
tgrida             000000000040688E  Unknown               Unknown  Unknown<br>
tgrida             0000000000406330  Unknown               Unknown  Unknown<br>
tgrida             00000000004054FC  grida_                     85  tgrida.f<br>
tgrida             0000000000405339  MAIN__                     22  tgrida.f<br>
tgrida             000000000040529C  Unknown               Unknown  Unknown<br>
libc.so.6          00007F539004AB7D  Unknown               Unknown  Unknown<br>
tgrida             0000000000405199  Unknown               Unknown  Unknown<br>
Aborted<br>
<br>
<br>
Does anyone know what&#39;s wrong?<br>
<br>
Any comments would be appreciated.<br>
<br>
--<br>
Regards,<br>
Jemma<br>
<br>
</blockquote>
<br>
<br></div></div><font color="#888888">
-- <br>
Johnny Chang<br>
650-604-4356<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Regards,<div>Jemma</div><br>
</div>