1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
module write_16_test
type :: MyType
end type MyType
interface write(formatted)
procedure :: output
end interface write(formatted)
contains
subroutine output(obj,unit,iotype,v_list,iostat,iomsg)
class(MyType), intent(in) :: obj
integer, intent(in) :: unit
character(*), intent(in) :: iotype
integer, intent(in) :: v_list(:)
integer, intent(out) :: iostat
character(*), intent(inout) :: iomsg
iostat = 0
write(unit,'(A)') 'MyType instance'
end subroutine output
end module write_16_test
program write_16
use write_16_test
type(MyType) :: x
integer :: u
character(len=100) :: line
open(newunit=u, file="write_16.txt", status="replace")
write(u,*) x
close(u)
open(newunit=u, file="write_16.txt", status="old")
read(u,'(A)') line
close(u)
if (trim(adjustl(line)) /= "MyType instance") then
error stop "Unexpected output from write(formatted)"
end if
end program write_16
|