https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81296
Bug ID: 81296 Summary: derived type I/o problem Product: gcc Version: 7.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: ian at rhymneyconsulting dot co.uk Target Milestone: --- Created attachment 41668 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41668&action=edit source file showing error at run time I believe the following program to be standard conforming. module dtio_01_module type :: person character (len=40) :: name integer :: age contains procedure, private :: pwf generic :: write (formatted) => pwf end type person contains subroutine pwf(dtv, unit, iotype, vlist, iostat, iomsg) ! argument definitions class (person), intent (in) :: dtv integer, intent (in) :: unit character (len=*), intent (in) :: iotype integer, intent (in) :: vlist(:) integer, intent (out) :: iostat character (len=*), intent (inout) :: iomsg ! local variable character (len= 9) :: pfmt ! vlist(1) and (2) are to be used as the field widths of the two ! components of the derived type variable. First set up the format to ! be used for output. write ( pfmt, '(a,i2,a,i1,a)' ) '(a', vlist(1), ',i', vlist(2), ')' print *,pfmt ! now the basic output statement write (unit, fmt=pfmt, iostat=iostat) dtv%name, dtv%age end subroutine pwf end module dtio_01_module program ch4001 use dtio_01_module type (person) :: person_01=person('Ian Chivers',65) print *,person_01%name print *,person_01%age WRITE( 6, FMT="( DT (20,3) )" ) person_01 write (6, 10) person_01 10 format( DT(15,3) ) end program ch4001 I get the following error at run time. c:\document\fortran\fourth_edition\examples>gfortran ch4001.f90 c:\document\fortran\fourth_edition\examples>a.exe Ian Chivers 65 (a20,i3) Ian Chivers 65 At line 58 of file ch4001.f90 (unit = 6, file = 'stdout') Fortran runtime error: Missing DTIO procedure or intrinsic type passed for item 1 in formatted transfer ( DT(15,3) ) ^ Error termination. Backtrace: Could not print backtrace: libbacktrace could not find executable to open #0 0xffffffff #1 0xffffffff #2 0xffffffff #3 0xffffffff #4 0xffffffff #5 0xffffffff #6 0xffffffff #7 0xffffffff #8 0xffffffff #9 0xffffffff #10 0xffffffff #11 0xffffffff #12 0xffffffff #13 0xffffffff