The problem is that z"da74000000000000" is larger than the largest representable signed 64 bits integer. As opposed to C, Fortran doesn’t have unsigned integers, which are needed here to properly represent this literal constant.

And, to add to @PierU replay, the result you quote is well beyond the precision of real64 values (which is 15-16 decimal digits) so even if you fix the problem with the unsigned hex constant, you cannot expect the output to be identical to the last, 24-th digit.

In general, this would be correct. However, in this particular case, the floating point number is an integer value with trailing zeros in the exact binary representation, so it actually is the correct number that is being evaluated and printed. Here is a simplified version of the code that demonstrates this.

With the appropriate scaling, the integer sum can be done with default (int32) integer arithmetic. The conversion to real is exact, because the integer sum does not overflow, and then the final scaling is exact because the mantissa is unchanged and only the exponent bits are changed. I used the scale() intrinsic instead of multiplication, but the same bits are computed either way.