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)
    .\q2.f03:70.4:


    where 1 is beneath the first *.

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

    AlephZero

    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.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Another simple fortran q
  1. Simple fortran error (Replies: 2)

  2. Simple fortran help (Replies: 1)

  3. Easy fortran Q? (Replies: 5)

Loading...