1 ! { dg-do run { target fd_truncate } }
2 ! This tests the fix for PR22010, where namelists were not being written to
3 ! and read back from modules. It checks that namelists from modules that are
4 ! selected by an ONLY declaration work correctly, even when the variables in
5 ! the namelist are not host associated. Note that renaming a namelist by USE
6 ! association is not allowed by the standard and this is trapped in module.c.
8 ! Contributed by Paul Thomas pault@gcc.gnu.org
11 character*4 :: aa
, aaa
14 namelist /nml1
/ aa
, ii
, rr
15 namelist /nml2
/ aaa
, iii
, rrr
17 logical function foo()
18 foo
= (aaa
.ne
."pqrs").or
.(iii
.ne
.2).or
.(rrr
.ne
.3.5)
21 program namelist_use_only
22 use global
, only
: nml1
, aa
, ii
, rr
23 use global
, only
: nml2
, rrrr
=>rrr
, foo
24 open (10, status
="scratch")
25 write (10,'(a)') "&NML1 aa='lmno' ii=1 rr=2.5 /"
26 write (10,'(a)') "&NML2 aaa='pqrs' iii=2 rrr=3.5 /"
28 read (10,nml
=nml1
,iostat
=i
)
29 if ((i
.ne
.0).or
.(aa
.ne
."lmno").or
.(ii
.ne
.1).or
.(rr
.ne
.2.5)) call abort ()
31 read (10,nml
=nml2
,iostat
=i
)
32 if ((i
.ne
.0).or
.(rrrr
.ne
.3.5).or
.foo()) call abort ()
34 end program namelist_use_only
36 ! { dg-final { cleanup-modules "global" } }