1! { dg-do run } 2! Program to test reading in a list of integer values into REAL variables. 3! The comma separator was not handled correctly. 4! 5program fg 6 7 character(len=80) buff 8 logical debug 9 10 debug = .FALSE. 11 a = 0 12 b = 0 13 c = 0 14 d = 0 15 write (buff,'(a)') '10,20,30,40' 16 read(buff,*) a, b, c, d 17 18 if (debug) then 19 print*,buff 20 print*,a, b, c, d 21 end if 22 23 if (abs(10. - a) > 1e-5) call abort 24 if (abs(20. - b) > 1e-5) call abort 25 if (abs(30. - c) > 1e-5) call abort 26 if (abs(40. - d) > 1e-5) call abort 27 28 a = 0 29 b = 0 30 c = 0 31 d = 0 32 write (buff,'(a)') '10.,20.,30.,40.' 33 read(buff,*) a, b, c, d 34 35 if (abs(10. - a) > 1e-5) call abort 36 if (abs(20. - b) > 1e-5) call abort 37 if (abs(30. - c) > 1e-5) call abort 38 if (abs(40. - d) > 1e-5) call abort 39 40 if (debug) then 41 print*,buff 42 print*,a, b, c, d 43 end if 44 45 a = 0 46 b = 0 47 c = 0 48 d = 0 49 write (buff,'(a)') '10.0,20.0,30.0,40.0' 50 read(buff,*) a, b, c, d 51 52 if (abs(10. - a) > 1e-5) call abort 53 if (abs(20. - b) > 1e-5) call abort 54 if (abs(30. - c) > 1e-5) call abort 55 if (abs(40. - d) > 1e-5) call abort 56 57 if (debug) then 58 print*,buff 59 print*,a, b, c, d 60 end if 61 62 63 a = 0 64 b = -99 65 c = 0 66 d = 0 67 write (buff,'(a)') '10.0,,30.0,40.0' 68 read(buff,*) a, b, c, d 69 70 if (abs(10. - a) > 1e-5) call abort 71 if (abs(-99. - b) > 1e-5) call abort 72 if (abs(30. - c) > 1e-5) call abort 73 if (abs(40. - d) > 1e-5) call abort 74 75 if (debug) then 76 print*,buff 77 print*,a, b, c, d 78 end if 79 80 81 call abc 82 83end program 84 85subroutine abc 86 87 character(len=80) buff 88 89 a = 0 90 b = 0 91 c = 0 92 d = 0 93 write (buff,'(a)') '10,-20,30,-40' 94 read(buff,*) a, b, c, d 95 96 if (abs(10. - a) > 1e-5) call abort 97 if (abs(-20. - b) > 1e-5) call abort 98 if (abs(30. - c) > 1e-5) call abort 99 if (abs(-40. - d) > 1e-5) call abort 100 101end subroutine abc 102