https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48852
--- Comment #11 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- IFORT does this: --------------------------------- (1.000000,0.0000000E+00) (-1.0000000E-25,0.0000000E+00) (-1.0000000E-25,0.0000000E+00) (1.000000,0.0000000E+00) (-3.4999999E-24,-3.4999999E-24) (-4.2000000E-24,-1.2700000E-23) (1.000000,0.0000000E+00) (-1.0000000E-25,0.0000000E+00) --------------------------------- The program I am using is this: print *, "---------------------------------" print *, (1.0,0.0),(-1.0e-25,0.0) print *, (-1.0e-25,0.0),(1.0,0.0) print *, (-35.0e-25,-35.0e-25),(-42.0e-25,-127.0e-25) print *, (1.0,0.0),(-1.0e-25,0.0) print *, "---------------------------------" end I think Case A in Comment 10 looks best.