https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111022

--- Comment #9 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
I am using this:

program teste0es0en0
  integer,parameter::p1 = kind(1e0), p2 = kind(1d0), &
       p3 = selected_real_kind(precision(1.0_p2)+1), &
       hp = selected_real_kind(precision(1.0_p3)+1), &
       p4 = merge(hp,p3,hp>0) ! in gfortran p4 /= p3, in ifort p4 == p3 
  character(*),parameter:: fmt(3) = "(A,1X,"//[" E","ES","EN"]//"0.0E0) "
  integer ifmt
  write(*,"(A,4(1X,I0))") 'real kinds',p1,p2,p3,p4
  do ifmt = 1,3
     write(*, fmt(ifmt)) 'With '//fmt(ifmt), 666.0_p1
     write(*, fmt(ifmt)) 'With '//fmt(ifmt), 666.0_p2
     write(*, fmt(ifmt)) 'With '//fmt(ifmt), 666.0_p3
     if(p3/=p4) write(*, fmt(ifmt)) 'With '//fmt(ifmt), 666.0_p4
  end do
end program teste0es0en0

And I get the following output with some test patching:

$ ./a.out 
real kinds 4 8 10 16
With (A,1X, E0.0E0)  1.E+3
With (A,1X, E0.0E0)  1.E+3
With (A,1X, E0.0E0)  1.E+3
With (A,1X, E0.0E0)  1.E+3
With (A,1X,ES0.0E0)  7.E+2
With (A,1X,ES0.0E0)  7.E+2
With (A,1X,ES0.0E0)  7.E+2
With (A,1X,ES0.0E0)  7.E+2
With (A,1X,EN0.0E0)  666.
With (A,1X,EN0.0E0)  666.
With (A,1X,EN0.0E0)  666.
With (A,1X,EN0.0E0)  666.

Reply via email to