mirror of
https://github.com/autc04/Retro68.git
synced 2024-06-28 11:30:19 +00:00
48 lines
1.3 KiB
Fortran
48 lines
1.3 KiB
Fortran
! { dg-do compile }
|
|
! PR80484 Three syntax errors involving derived-type I/O
|
|
module dt_write_mod
|
|
type, public :: B_type
|
|
real :: amount
|
|
end type B_type
|
|
interface write (formatted)
|
|
procedure :: Write_b
|
|
end interface
|
|
contains
|
|
|
|
subroutine Write_b &
|
|
(amount, unit, b_edit_descriptor, v_list, iostat, iomsg)
|
|
|
|
class (B_type), intent(in) :: amount
|
|
integer, intent(in) :: unit
|
|
character (len=*), intent(in) :: b_edit_descriptor
|
|
integer, dimension(:), intent(in) :: v_list
|
|
integer, intent(out) :: iostat
|
|
character (len=*), intent(inout) :: iomsg
|
|
write (unit=unit, fmt="(f9.3)", iostat=iostat) amount%amount
|
|
|
|
end subroutine Write_b
|
|
|
|
end module dt_write_mod
|
|
|
|
program test
|
|
use dt_write_mod, only: B_type , write(formatted)
|
|
implicit none
|
|
|
|
real :: wage = 15.10
|
|
integer :: ios
|
|
character(len=99) :: iom = "OK"
|
|
|
|
write (unit=*, fmt="(DT'$$$Z.##')", iostat=ios, iomsg=iom) &
|
|
B_type(wage), B_type(wage)
|
|
print *, trim(iom)
|
|
write (unit=*, fmt="(2DT'$$$Z.##')", iostat=ios, iomsg=iom) &
|
|
B_type(wage), B_type(wage)
|
|
print *, trim(iom)
|
|
write (unit=*, fmt="(3DT'$$$Z.##')", iostat=ios, iomsg=iom) &
|
|
B_type(wage), B_type(wage)
|
|
print *, trim(iom)
|
|
write (unit=*, fmt="(DT'$$$Z.##'/)", iostat=ios, iomsg=iom) &
|
|
B_type(wage), B_type(wage)
|
|
print *, trim(iom)
|
|
end program test
|