@@ -434,7 +434,6 @@ subroutine unformattedReadProc1(dtv,unit,iostat,iomsg)
434
434
integer ,intent (out ) :: iostat
435
435
character (* ),intent (inout ) :: iomsg
436
436
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
437
- print * ,v_list
438
437
end subroutine
439
438
! ERROR: Derived type 't' already has defined input/output procedure 'READUNFORMATTED'
440
439
subroutine unformattedReadProc (dtv ,unit ,iostat ,iomsg )
@@ -443,7 +442,6 @@ subroutine unformattedReadProc(dtv,unit,iostat,iomsg)
443
442
integer ,intent (out ) :: iostat
444
443
character (* ),intent (inout ) :: iomsg
445
444
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
446
- print * ,v_list
447
445
end subroutine
448
446
end module
449
447
@@ -469,15 +467,13 @@ subroutine unformattedReadProc(dtv,unit,iostat,iomsg)
469
467
integer ,intent (out ) :: iostat
470
468
character (* ),intent (inout ) :: iomsg
471
469
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
472
- print * ,v_list
473
470
end subroutine
474
471
subroutine unformattedWriteProc (dtv ,unit ,iostat ,iomsg )
475
472
class(t),intent (in ) :: dtv
476
473
integer ,intent (in ) :: unit
477
474
integer ,intent (out ) :: iostat
478
475
character (* ),intent (inout ) :: iomsg
479
476
write (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
480
- print * ,v_list
481
477
end subroutine
482
478
end module
483
479
@@ -502,7 +498,6 @@ subroutine unformattedReadProc(dtv,unit,iostat,iomsg)
502
498
integer ,intent (out ) :: iostat
503
499
character (* ),intent (inout ) :: iomsg
504
500
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
505
- print * ,v_list
506
501
end subroutine
507
502
! ERROR: Derived type 't' already has defined input/output procedure 'READUNFORMATTED'
508
503
subroutine unformattedReadProc1 (dtv ,unit ,iostat ,iomsg )
@@ -511,7 +506,6 @@ subroutine unformattedReadProc1(dtv,unit,iostat,iomsg)
511
506
integer ,intent (out ) :: iostat
512
507
character (* ),intent (inout ) :: iomsg
513
508
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
514
- print * ,v_list
515
509
end subroutine
516
510
end module
517
511
@@ -536,15 +530,13 @@ subroutine unformattedReadProc(dtv,unit,iostat,iomsg)
536
530
integer ,intent (out ) :: iostat
537
531
character (* ),intent (inout ) :: iomsg
538
532
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
539
- print * ,v_list
540
533
end subroutine
541
534
subroutine unformattedReadProc1 (dtv ,unit ,iostat ,iomsg )
542
535
class(t(3 )),intent (inout ) :: dtv
543
536
integer ,intent (in ) :: unit
544
537
integer ,intent (out ) :: iostat
545
538
character (* ),intent (inout ) :: iomsg
546
539
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
547
- print * ,v_list
548
540
end subroutine
549
541
end module
550
542
@@ -569,15 +561,13 @@ subroutine unformattedReadProc(dtv,unit,iostat,iomsg)
569
561
integer ,intent (out ) :: iostat
570
562
character (* ),intent (inout ) :: iomsg
571
563
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
572
- print * ,v_list
573
564
end subroutine
574
565
subroutine unformattedReadProc1 (dtv ,unit ,iostat ,iomsg )
575
566
class(t(3 )),intent (inout ) :: dtv
576
567
integer ,intent (in ) :: unit
577
568
integer ,intent (out ) :: iostat
578
569
character (* ),intent (inout ) :: iomsg
579
570
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
580
- print * ,v_list
581
571
end subroutine
582
572
end module
583
573
@@ -602,7 +592,6 @@ subroutine unformattedReadProc(dtv,unit,iostat,iomsg)
602
592
integer ,intent (out ) :: iostat
603
593
character (* ),intent (inout ) :: iomsg
604
594
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
605
- print * ,v_list
606
595
end subroutine
607
596
! ERROR: Derived type 't' already has defined input/output procedure 'READUNFORMATTED'
608
597
subroutine unformattedReadProc1 (dtv ,unit ,iostat ,iomsg )
@@ -611,6 +600,38 @@ subroutine unformattedReadProc1(dtv,unit,iostat,iomsg)
611
600
integer ,intent (out ) :: iostat
612
601
character (* ),intent (inout ) :: iomsg
613
602
read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
614
- print * ,v_list
615
603
end subroutine
616
604
end module
605
+
606
+ module m25a
607
+ ! Test against false error when two defined I/O procedures exist
608
+ ! for the same type but are not both visible in the same scope.
609
+ type t
610
+ integer c
611
+ end type
612
+ interface read (unformatted)
613
+ module procedure unformattedReadProc1
614
+ end interface
615
+ contains
616
+ subroutine unformattedReadProc1 (dtv ,unit ,iostat ,iomsg )
617
+ class(t),intent (inout ) :: dtv
618
+ integer ,intent (in ) :: unit
619
+ integer ,intent (out ) :: iostat
620
+ character (* ),intent (inout ) :: iomsg
621
+ read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
622
+ end subroutine
623
+ end module
624
+ subroutine m25b
625
+ use m25a, only: t
626
+ interface read (unformatted)
627
+ procedure unformattedReadProc2
628
+ end interface
629
+ contains
630
+ subroutine unformattedReadProc2 (dtv ,unit ,iostat ,iomsg )
631
+ class(t),intent (inout ) :: dtv
632
+ integer ,intent (in ) :: unit
633
+ integer ,intent (out ) :: iostat
634
+ character (* ),intent (inout ) :: iomsg
635
+ read (unit,iotype,iostat= iostat,iomsg= iomsg) dtv% c
636
+ end subroutine
637
+ end subroutine
0 commit comments