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