1!{ dg-do run { target fd_truncate } }
2!{ dg-options "-std=legacy" }
3!
4! Tests filling arrays from a namelist read when object list is not complete.
5! Developed from a test case provided by Christoph Jacob.
6! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>.
7program pr24794
8
9   implicit none
10   integer, parameter :: maxop=15, iunit=7
11   character*8 namea(maxop), nameb(maxop)
12   integer i, ier
13
14   namelist/ccsopr/ namea,nameb
15   namea=""
16   nameb=""
17   open (12, status="scratch", delim="apostrophe")
18   write (12, '(a)') "&ccsopr"
19   write (12, '(a)') "    namea='spi01h','spi02o','spi03h','spi04o','spi05h',"
20   write (12, '(a)') "          'spi07o','spi08h','spi09h',"
21   write (12, '(a)') "    nameb='spi01h','spi03h','spi05h','spi06h','spi08h',"
22   write (12, '(a)') "&end"
23
24   rewind (12)
25   read (12, nml=ccsopr, iostat=ier)
26   if (ier.ne.0) call abort()
27
28   rewind (12)
29   write(12,nml=ccsopr)
30
31   rewind (12)
32   read (12, nml=ccsopr, iostat=ier)
33   if (ier.ne.0) call abort()
34
35   if (namea(2).ne."spi02o  ") call abort()
36   if (namea(9).ne."        ") call abort()
37   if (namea(15).ne."        ") call abort()
38   if (nameb(1).ne."spi01h  ") call abort()
39   if (nameb(6).ne."        ") call abort()
40   if (nameb(15).ne."        ") call abort()
41
42   close (12)
43end program pr24794
44