1214518Srpaulo! { dg-do run }
2190214Srpaulo! PR47778 Reading array of structures from namelist
3190214Srpaulo! Test case derived from the reporters test case.
4190214Srpauloprogram test_nml
5190214Srpaulotype field_descr
6190214Srpaulo  integer number
7190214Srpauloend type
8190214Srpaulotype fsetup
9190214Srpaulo  type (field_descr), dimension(3) :: vel ! 3 velocity components
10190214Srpaulo  type (field_descr), dimension(3) :: scal ! 3 scalars
11190214Srpauloend type
12190214Srpaulotype (fsetup) field_setup
13190214Srpaulonamelist /nl_setup/ field_setup
14190214Srpaulofield_setup%vel%number = 0
15190214Srpaulofield_setup%scal%number = 0
16190214Srpaulo! write(*,nml=nl_setup)
17190214Srpauloopen(10, status="scratch")
18190214Srpaulowrite(10,'(a)') "&nl_setup"
19190214Srpaulowrite(10,'(a)') " field_setup%vel(1)%number=  3,"
20190214Srpaulowrite(10,'(a)') " field_setup%vel(2)%number=  9,"
21190214Srpaulowrite(10,'(a)') " field_setup%vel(3)%number=  27,"
22190214Srpaulowrite(10,'(a)') " field_setup%scal(1)%number=  2,"
23190214Srpaulowrite(10,'(a)') " field_setup%scal(2)%number=  4,"
24190214Srpaulowrite(10,'(a)') " field_setup%scal(3)%number=  8,"
25190214Srpaulowrite(10,'(a)') "/"
26190214Srpaulorewind(10)
27190214Srpauloread(10,nml=nl_setup)
28190214Srpauloif (field_setup%vel(1)%number .ne. 3) call abort
29190214Srpauloif (field_setup%vel(2)%number .ne. 9) call abort
30190214Srpauloif (field_setup%vel(3)%number .ne. 27) call abort
31190214Srpauloif (field_setup%scal(1)%number .ne. 2) call abort
32190214Srpauloif (field_setup%scal(2)%number .ne. 4) call abort
33190214Srpauloif (field_setup%scal(3)%number .ne. 8) call abort
34190214Srpaulo!write(*,nml=nl_setup)
35190214Srpauloend program test_nml
36190214Srpaulo
37190214Srpaulo