https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80009
--- Comment #10 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> --- After a lot of head scratching I think I am changing my mind on this one. If one tries to assign to a real variable as in: program test_b_write_dt_mod use :: B_write_dt_mod implicit none type(B_type) :: x != B_type(20.0) real :: r r = B_type(20.0) write (unit=*, fmt="(f4.1)") B_type(20.0) !write (unit=*, fmt="(f4.1)") x end program test_b_write_dt_mod The effective item is of type B_type not real and the assignment to r is rejected. So I believe the effective type in the write statement is likewise derived type ad not real. My thinking is this PR is invalid.