| ! { dg-do run } |
| ! Program to test reading in a list of integer values into REAL variables. |
| ! The comma separator was not handled correctly. |
| ! |
| program fg |
| |
| character(len=80) buff |
| logical debug |
| |
| debug = .FALSE. |
| a = 0 |
| b = 0 |
| c = 0 |
| d = 0 |
| write (buff,'(a)') '10,20,30,40' |
| read(buff,*) a, b, c, d |
| |
| if (debug) then |
| print*,buff |
| print*,a, b, c, d |
| end if |
| |
| if (abs(10. - a) > 1e-5) STOP 1 |
| if (abs(20. - b) > 1e-5) STOP 2 |
| if (abs(30. - c) > 1e-5) STOP 3 |
| if (abs(40. - d) > 1e-5) STOP 4 |
| |
| a = 0 |
| b = 0 |
| c = 0 |
| d = 0 |
| write (buff,'(a)') '10.,20.,30.,40.' |
| read(buff,*) a, b, c, d |
| |
| if (abs(10. - a) > 1e-5) STOP 5 |
| if (abs(20. - b) > 1e-5) STOP 6 |
| if (abs(30. - c) > 1e-5) STOP 7 |
| if (abs(40. - d) > 1e-5) STOP 8 |
| |
| if (debug) then |
| print*,buff |
| print*,a, b, c, d |
| end if |
| |
| a = 0 |
| b = 0 |
| c = 0 |
| d = 0 |
| write (buff,'(a)') '10.0,20.0,30.0,40.0' |
| read(buff,*) a, b, c, d |
| |
| if (abs(10. - a) > 1e-5) STOP 9 |
| if (abs(20. - b) > 1e-5) STOP 10 |
| if (abs(30. - c) > 1e-5) STOP 11 |
| if (abs(40. - d) > 1e-5) STOP 12 |
| |
| if (debug) then |
| print*,buff |
| print*,a, b, c, d |
| end if |
| |
| |
| a = 0 |
| b = -99 |
| c = 0 |
| d = 0 |
| write (buff,'(a)') '10.0,,30.0,40.0' |
| read(buff,*) a, b, c, d |
| |
| if (abs(10. - a) > 1e-5) STOP 13 |
| if (abs(-99. - b) > 1e-5) STOP 14 |
| if (abs(30. - c) > 1e-5) STOP 15 |
| if (abs(40. - d) > 1e-5) STOP 16 |
| |
| if (debug) then |
| print*,buff |
| print*,a, b, c, d |
| end if |
| |
| |
| call abc |
| |
| end program |
| |
| subroutine abc |
| |
| character(len=80) buff |
| |
| a = 0 |
| b = 0 |
| c = 0 |
| d = 0 |
| write (buff,'(a)') '10,-20,30,-40' |
| read(buff,*) a, b, c, d |
| |
| if (abs(10. - a) > 1e-5) STOP 17 |
| if (abs(-20. - b) > 1e-5) STOP 18 |
| if (abs(30. - c) > 1e-5) STOP 19 |
| if (abs(-40. - d) > 1e-5) STOP 20 |
| |
| end subroutine abc |