@@ -342,7 +342,7 @@ subroutine formattedReadProc(dtv, unit, iotype, vlist, iostat, iomsg)
342
342
end subroutine
343
343
end module m15
344
344
345
- module m16
345
+ module m16a
346
346
type,public :: t
347
347
integer c
348
348
contains
@@ -355,15 +355,58 @@ subroutine formattedReadProc(dtv, unit, iotype, vlist, iostat, iomsg)
355
355
class(t), intent (inout ) :: dtv
356
356
integer , intent (in ) :: unit
357
357
character (len=* ), intent (in ) :: iotype
358
- ! ERROR: Dummy argument 'vlist' of a defined input/output procedure must be assumed shape
358
+ ! ERROR: Dummy argument 'vlist' of a defined input/output procedure must be assumed shape vector
359
359
integer , intent (in ) :: vlist(5 )
360
360
integer , intent (out ) :: iostat
361
361
character (len=* ), intent (inout ) :: iomsg
362
+ iostat = 343
363
+ stop ' fail'
364
+ end subroutine
365
+ end module m16a
362
366
367
+ module m16b
368
+ type,public :: t
369
+ integer c
370
+ contains
371
+ procedure , pass :: tbp= >formattedReadProc
372
+ generic :: read (formatted) = > tbp
373
+ end type
374
+ private
375
+ contains
376
+ subroutine formattedReadProc (dtv , unit , iotype , vlist , iostat , iomsg )
377
+ class(t), intent (inout ) :: dtv
378
+ integer , intent (in ) :: unit
379
+ character (len=* ), intent (in ) :: iotype
380
+ ! ERROR: Dummy argument 'vlist' of a defined input/output procedure must be assumed shape vector
381
+ integer , intent (in ) :: vlist(:,:)
382
+ integer , intent (out ) :: iostat
383
+ character (len=* ), intent (inout ) :: iomsg
384
+ iostat = 343
385
+ stop ' fail'
386
+ end subroutine
387
+ end module m16b
388
+
389
+ module m16c
390
+ type,public :: t
391
+ integer c
392
+ contains
393
+ procedure , pass :: tbp= >formattedReadProc
394
+ generic :: read (formatted) = > tbp
395
+ end type
396
+ private
397
+ contains
398
+ subroutine formattedReadProc (dtv , unit , iotype , vlist , iostat , iomsg )
399
+ class(t), intent (inout ) :: dtv
400
+ integer , intent (in ) :: unit
401
+ character (len=* ), intent (in ) :: iotype
402
+ ! ERROR: Dummy argument 'vlist' may not be assumed-rank
403
+ integer , intent (in ) :: vlist(..)
404
+ integer , intent (out ) :: iostat
405
+ character (len=* ), intent (inout ) :: iomsg
363
406
iostat = 343
364
407
stop ' fail'
365
408
end subroutine
366
- end module m16
409
+ end module m16c
367
410
368
411
module m17
369
412
! Test the same defined input/output procedure specified as a generic
0 commit comments