http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48682
Summary: Incorrect field justification with Gw.d edit descriptor Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: j...@gcc.gnu.org Consider: program gformat real(8) :: r integer :: ii do ii = -8, 25 r = 10._8**ii / 3.0_8 print '(A,G13.6,A,G0.6,A,G0,A)', ":::", r, ":::", r, ":::", r, ":::" end do end program gformat This program prints: ::: 0.333333E-08:::.333333E-008:::.33333333333333334E-008::: ::: 0.333333E-07:::.333333E-007:::.33333333333333334E-007::: ::: 0.333333E-06:::.333333E-006:::.33333333333333330E-006::: ::: 0.333333E-05:::.333333E-005:::.33333333333333337E-005::: ::: 0.333333E-04:::.333333E-004:::.33333333333333335E-004::: ::: 0.333333E-03:::.333333E-003:::.33333333333333332E-003::: ::: 0.333333E-02:::.333333E-002:::.33333333333333335E-002::: ::: 0.333333E-01:::.333333E-001:::.33333333333333333E-001::: ::: 0.333333 :::.333333:::.33333333333333331::: ::: 3.33333 :::3.33333:::3.3333333333333335::: ::: 33.3333 :::33.3333:::33.333333333333336::: ::: 333.333 :::333.333:::333.33333333333331::: ::: 3333.33 :::3333.33:::3333.3333333333335::: ::: 33333.3 :::33333.3:::33333.333333333336::: ::: 333333. :::333333.:::333333.33333333331::: ::: 0.333333E+07:::.333333E+007:::3333333.3333333335::: ::: 0.333333E+08:::.333333E+008:::33333333.333333332::: ::: 0.333333E+09:::.333333E+009:::333333333.33333331::: ::: 0.333333E+10:::.333333E+010:::3333333333.3333335::: ::: 0.333333E+11:::.333333E+011:::33333333333.333332::: ::: 0.333333E+12:::.333333E+012:::333333333333.33331::: ::: 0.333333E+13:::.333333E+013:::3333333333333.3335::: ::: 0.333333E+14:::.333333E+014:::33333333333333.332::: ::: 0.333333E+15:::.333333E+015:::333333333333333.31::: ::: 0.333333E+16:::.333333E+016:::3333333333333333.5::: ::: 0.333333E+17:::.333333E+017:::33333333333333332.::: ::: 0.333333E+18:::.333333E+018:::.33333333333333331E+018::: ::: 0.333333E+19:::.333333E+019:::.33333333333333335E+019::: ::: 0.333333E+20:::.333333E+020:::.33333333333333332E+020::: ::: 0.333333E+21:::.333333E+021:::.33333333333333331E+021::: ::: 0.333333E+22:::.333333E+022:::.33333333333333335E+022::: ::: 0.333333E+23:::.333333E+023:::.33333333333333332E+023::: ::: 0.333333E+24:::.333333E+024:::.33333333333333333E+024::: ::: 0.333333E+25:::.333333E+025:::.33333333333333338E+025::: However F2008 (N1830.pdf) 10.7.2.1 says " On output, the representation is right justified in the field. If the number of characters produced by the editing is smaller than the field width, leading blanks are inserted in the field. " That is, when Gw.d uses F format, the field is not right justified. For comparison the second and third columns using the G0.d and G0 edit descriptors are correctly right justified (and the field width is the minimum one, as also required for the G0 and G0.d descriptors).