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

--- Comment #10 from anlauf at gcc dot gnu.org ---
(In reply to Jerry DeLisle from comment #9)
> 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.

Intel does not like E0.0E0, thus running with do ifmt = 2,3 gives:

real kinds 4 8 16 16
With (A,1X,ES0.0E0) 7.+2
With (A,1X,ES0.0E0) 7.+2
With (A,1X,ES0.0E0) 7.+2
With (A,1X,EN0.0E0) 666.+0
With (A,1X,EN0.0E0) 666.+0
With (A,1X,EN0.0E0) 666.+0

Reply via email to