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