1!{ dg-do run }
2!{ dg-options -std=gnu }
3! Tests namelist read when more data is provided then specified by
4! array qualifier in list.
5! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>.
6      program pr24459
7      implicit none
8      integer nd, ier, i, j
9      parameter ( nd = 5 )
10      character*(8) names(nd,nd)
11      character*(8) names2(nd,nd)
12      character*(8) names3(nd,nd)
13      namelist / mynml /  names, names2, names3
14      open(unit=20,status='scratch', delim='apostrophe')
15      write (20, '(a)') "&MYNML"
16      write (20, '(a)') "NAMES = 25*'0'"
17      write (20, '(a)') "NAMES2 = 25*'0'"
18      write (20, '(a)') "NAMES3 = 25*'0'"
19      write (20, '(a)') "NAMES(2,2) = 'frogger'"
20      write (20, '(a)') "NAMES(1,1) = 'E123' 'E456' 'D789' 'P135' 'P246'"
21      write (20, '(a)') "NAMES2(1:5:2,2) = 'abcde' 'fghij' 'klmno'"
22      write (20, '(a)') "NAMES3 = 'E123' 'E456' 'D789' 'P135' 'P246' '0' 'frogger'"
23      write (20, '(a)') "/"
24      rewind(20)
25      read(20,nml=mynml, iostat=ier)
26      if (ier.ne.0) STOP 1
27      if (any(names(:,3:5).ne."0")) STOP 2
28      if (names(2,2).ne."frogger") STOP 3
29      if (names(1,1).ne."E123") STOP 4
30      if (names(2,1).ne."E456") STOP 5
31      if (names(3,1).ne."D789") STOP 6
32      if (names(4,1).ne."P135") STOP 7
33      if (names(5,1).ne."P246") STOP 8
34      if (any(names2(:,1).ne."0")) STOP 9
35      if (any(names2(:,3:5).ne."0")) STOP 10
36      if (names2(1,2).ne."abcde") STOP 11
37      if (names2(2,2).ne."0") STOP 12
38      if (names2(3,2).ne."fghij") STOP 13
39      if (names2(4,2).ne."0") STOP 14
40      if (names2(5,2).ne."klmno") STOP 15
41      if (any(names3.ne.names)) STOP 16
42      end
43