Steve, With your patch I get for the following code: program gfcbug36 implicit none real, parameter :: one = 1.0 real :: a = one print *, fraction(1.0), exponent(1.0), scale(fraction(1.0), exponent(1.0)) print *, fraction(a), exponent(a), scale(fraction(a), exponent(a)) end program gfcbug36 0.5000000 1 1.000000 0.000000 0 0.000000 Any idea? Dominique