Re: Overflow errror--what could cause this?



On Jun 27, 1:59 pm, Clay Blankenship <clay.blankens...@xxxxxxxxx>
wrote:
I am running a very large program--an implementation of the Land
Information System--on a Linux cluster (1 processor) using Intel
Fortran 90. I am getting an overflow error with the following
message.

7200.000 3.0411966E+07 6.5823113E+10
7200.000 3.0402494E+07 6.5785352E+10
7200.000 3.0392248E+07 6.5744241E+10
7200.000 3.0386762E+07 6.5722331E+10
7200.000 2.1660269E+10 1.7544675E+12
forrtl: error (72): floating overflow
Image PC Routine Line
Source LIS-0(mpi:18942@b 00000000012F3960
sheels_main_ 722 sheels_main.F90 LIS-0(mpi:18942@b
000000000041BED8 Unknown Unknown Unknown LIS-0(mpi:
18942@b 0000000000BB7A12 lsm_module_mp_lis 392
lsm_module.F90 LIS-0(mpi:18942@b 0000000001226AAB
retrospective_run 185 retrospective_runMod.F90 LIS-0(mpi:
18942@b 000000000041D391 Unknown Unknown Unknown
LIS-0(mpi:18942@b 0000000000B94EA3 MAIN__ 71
lisdrv.F90
LIS-0(mpi:18942@b 00000000004058F2 Unknown Unknown
Unknown
libc.so.6 0000002A961B8AAA Unknown Unknown
Unknown
LIS-0(mpi:18942@b 000000000040582A Unknown Unknown
Unknown

The exact line where it dies can be something as simple as setting one
variable equal to another. I have rewritten the code several
functionally identical ways and I have gotten the crash on all of the
following lines:

(1) temp_dt=min(diffterm,drainterm)

(2) temp_dt=diffterm

(3) if (darcydt.gt.diffterm) then

All of these variables are locally declared REALs.

If the situation is as you describe, none of those statements
could cause an overflow exception. The only statements that
could cause an overflow exception are the assignments, and if
the two sides of the assignment have the same types, even
that possibility is eliminated, barring a compiler error
or compiling for an x87. I would need much stronger evidence
to suspect a compiler error. The x87 case can be ruled out
by using the option -fp_port.

The last output line before the error, above, shows the value of
darcydt, diffterm, and drainterm just before the crash. These are
large but legitimate numbers. This program goes through this section
of code thousands of times before it dies (always at the same place).

I know there is not enough information here to diagnose what is wrong,
but I am at a loss as to where to look. Is it possible that something
is going wrong elsewhere but causing the diagnostic here?

If the compiler is generating x87 code, that is a strong
possibility.

Bob Corbett
.



Relevant Pages

  • Re: Preprocessor Table Overflow - Error C3048
    ... compiler error "Preprocessor Table Overflow" #C3048. ... The preprocessor removes all the ';' semicolons and presents a single long line. ... "If you rob Peter to pay Paul you can depend on the support of Paul." ...
    (comp.lang.clipper)
  • Preprocessor Table Overflow - Error C3048
    ... I am trying to resurrect an older 5.2 application. ... compiler error "Preprocessor Table Overflow" #C3048. ...
    (comp.lang.clipper)
  • Integer underflow bug?
    ... I get the compiler error "Overflow in conversion or arithmetic operation". ...
    (borland.public.delphi.language.basm)
  • Overflow errror--what could cause this?
    ... I am getting an overflow error with the following ... The exact line where it dies can be something as simple as setting one ... darcydt, diffterm, and drainterm just before the crash. ... I know there is not enough information here to diagnose what is wrong, ...
    (comp.lang.fortran)