1! { dg-do run { target fd_truncate } }
2! { dg-add-options ieee }
3!
4! PR fortran/34427
5!
6! Check that namelists and the real values Inf, NaN, Infinity
7! properly coexist.
8!
9 PROGRAM TEST
10  IMPLICIT NONE
11  real , DIMENSION(11) ::foo
12  integer :: infinity
13  NAMELIST /nl/ foo
14  NAMELIST /nl/ infinity
15  foo = -1.0
16  infinity = -1
17
18  open (10, status="scratch")
19! Works:
20  write (10,*) " &nl foo = 5, 5, 5, nan, infinity, infinity "
21  write (10,*)
22  write (10,*) "      = 1, /"
23  rewind (10)
24  READ (10, NML = nl)
25  close (10)
26
27  if(infinity /= 1) STOP 1
28  if(any(foo(1:3) /= [5.0, 5.0, 5.0]) .or. .not.isnan(foo(4)) &
29     .or. foo(5) <= huge(foo) .or. any(foo(6:11) /= -1.0)) &
30    STOP 2
31! Works too:
32  foo = -1.0
33  infinity = -1
34
35  open (10, status="scratch")
36  rewind (10)
37  write (10,'(a)') "&nl foo = 5, 5, 5, nan, infinity, infinity"
38  write (10,'(a)') "=1,/"
39  rewind (10)
40  READ (10, NML = nl)
41  CLOSE (10)
42
43  if(infinity /= 1) STOP 3
44  if(any(foo(1:3) /= [5.0, 5.0, 5.0]) .or. .not.isnan(foo(4)) &
45     .or. foo(5) <= huge(foo) .or. any(foo(6:11) /= -1.0)) &
46    STOP 4
47 END PROGRAM TEST
48