Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Another simple fortran q

  1. Sep 26, 2012 #1
    I want to find a bound for around magnitude 10**270 which is within bounds of double precision but I get

    DOUBLE PRECISION :: bound = 10**270

    Error: Arithmetic overflow at (1)

    where 1 is beneath the first *.

    I am sure it is something simple I am overlooking....
  2. jcsd
  3. Sep 26, 2012 #2


    User Avatar
    Science Advisor
    Homework Helper

    Since 10 and 270 are both integers, 10**270 is evaluated as an integer expression, and then the result is converted to double precision to assign it to the variable. You got the overflow because 10**270 can't be represetned as an integer value.

    You could write 10.0d0 ** 270, or better, just 10.0d270.

    Note you must use a "d" exponent (not "e") in a constant to make it double precision. 10.0 ** 270 will still give an overflow, because 10.0 is a single precision constant and the maximum value that can be represented in single precision is about 1038.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook