| ! { dg-do run } |
| ! PR39304 write of 0.0 with F0.3 gives ** |
| ! PR47567 Small absolute values. |
| ! Test case developed from case provided by reporter. |
| REAL :: x |
| CHARACTER(80) :: str |
| x = 0.0 |
| write (str,'(f0.0)') x |
| if (str.ne."0.") call abort |
| write (str,'(f0.1)') x |
| if (str.ne.".0") call abort |
| write (str,'(f0.2)') x |
| if (str.ne.".00") call abort |
| write (str,'(f0.3)') x |
| if (str.ne.".000") call abort |
| write (str,'(f0.4)') x |
| if (str.ne.".0000") call abort |
| write (str,'(F0.0)') 0.0 |
| if (str.ne."0.") call abort |
| write (str,'(F0.0)') 0.001 |
| if (str.ne."0.") call abort |
| write (str,'(F0.0)') 0.01 |
| if (str.ne."0.") call abort |
| write (str,'(F0.0)') 0.1 |
| if (str.ne."0.") call abort |
| write (str,'(F1.0)') -0.0 |
| if (str.ne."*") call abort |
| write (str,'(F1.0)') 0.001 |
| if (str.ne."*") call abort |
| write (str,'(F1.0)') 0.01 |
| if (str.ne."*") call abort |
| write (str,'(F1.0)') 0.1 |
| if (str.ne."*") call abort |
| write (str,'(F2.0)') -0.001 |
| if (str.ne."**") call abort |
| write (str,'(F2.0)') -0.01 |
| if (str.ne."**") call abort |
| write (str,'(F2.0)') -0.1 |
| if (str.ne."**") call abort |
| write (str,'(F0.2)') 0.0 |
| if (str.ne.".00") call abort |
| write (str,'(F0.0)') -0.0 |
| if (str.ne."-0.") call abort |
| write (str,'(F0.1)') -0.0 |
| if (str.ne."-.0") call abort |
| write (str,'(F0.2)') -0.0 |
| if (str.ne."-.00") call abort |
| write (str,'(F0.3)') -0.0 |
| if (str.ne."-.000") call abort |
| write (str,'(F3.0)') -0.0 |
| if (str.ne."-0.") call abort |
| write (str,'(F2.0)') -0.0 |
| if (str.ne."**") call abort |
| write (str,'(F1.0)') -0.0 |
| if (str.ne."*") call abort |
| write (str,'(F0.1)') -0.0 |
| if (str.ne."-.0") call abort |
| write (str,'(F3.1)') -0.0 |
| if (str.ne."-.0") call abort |
| write (str,'(F2.1)') -0.0 |
| if (str.ne."**") call abort |
| write (str,'(F1.1)') -0.0 |
| if (str.ne."*") call abort |
| END |