1! { dg-do run } 2! PR39304 write of 0.0 with F0.3 gives ** 3! PR47567 Small absolute values. 4! Test case developed from case provided by reporter. 5 REAL :: x 6 CHARACTER(80) :: str 7 x = 0.0 8 write (str,'(f0.0)') x 9 if (str.ne."0.") call abort 10 write (str,'(f0.1)') x 11 if (str.ne.".0") call abort 12 write (str,'(f0.2)') x 13 if (str.ne.".00") call abort 14 write (str,'(f0.3)') x 15 if (str.ne.".000") call abort 16 write (str,'(f0.4)') x 17 if (str.ne.".0000") call abort 18 write (str,'(F0.0)') 0.0 19 if (str.ne."0.") call abort 20 write (str,'(F0.0)') 0.001 21 if (str.ne."0.") call abort 22 write (str,'(F0.0)') 0.01 23 if (str.ne."0.") call abort 24 write (str,'(F0.0)') 0.1 25 if (str.ne."0.") call abort 26 write (str,'(F1.0)') -0.0 27 if (str.ne."*") call abort 28 write (str,'(F1.0)') 0.001 29 if (str.ne."*") call abort 30 write (str,'(F1.0)') 0.01 31 if (str.ne."*") call abort 32 write (str,'(F1.0)') 0.1 33 if (str.ne."*") call abort 34 write (str,'(F2.0)') -0.001 35 if (str.ne."**") call abort 36 write (str,'(F2.0)') -0.01 37 if (str.ne."**") call abort 38 write (str,'(F2.0)') -0.1 39 if (str.ne."**") call abort 40 write (str,'(F0.2)') 0.0 41 if (str.ne.".00") call abort 42 write (str,'(F0.0)') -0.0 43 if (str.ne."-0.") call abort 44 write (str,'(F0.1)') -0.0 45 if (str.ne."-.0") call abort 46 write (str,'(F0.2)') -0.0 47 if (str.ne."-.00") call abort 48 write (str,'(F0.3)') -0.0 49 if (str.ne."-.000") call abort 50 write (str,'(F3.0)') -0.0 51 if (str.ne."-0.") call abort 52 write (str,'(F2.0)') -0.0 53 if (str.ne."**") call abort 54 write (str,'(F1.0)') -0.0 55 if (str.ne."*") call abort 56 write (str,'(F0.1)') -0.0 57 if (str.ne."-.0") call abort 58 write (str,'(F3.1)') -0.0 59 if (str.ne."-.0") call abort 60 write (str,'(F2.1)') -0.0 61 if (str.ne."**") call abort 62 write (str,'(F1.1)') -0.0 63 if (str.ne."*") call abort 64 END 65