| ! { dg-do run } |
| ! { dg-options "-std=f2003 " } |
| ! PR65596 Namelist reads too far. |
| integer ,parameter :: CL=80 |
| integer ,parameter :: AL=4 |
| |
| character(CL) :: mode |
| character(CL) :: cats(AL) |
| character(CL) :: dogs(AL) |
| character(CL) :: rslt(AL) |
| integer :: ierr, k |
| |
| namelist / theList / cats, dogs, mode |
| |
| open(27,status="scratch") |
| |
| write(27,'(A)') "&theList" |
| write(27,'(A)') " mode = 'on'" |
| write(27,'(A)') " dogs = 'Rover'," |
| write(27,'(A)') " 'Spot'" |
| write(27,'(A)') " cats = 'Fluffy'," |
| write(27,'(A)') " 'Hairball'" |
| write(27,'(A)') "/" |
| rewind(27) |
| |
| mode = 'off' |
| cats(:) = '________' |
| dogs(:) = '________' |
| |
| read (27, nml=theList, iostat=ierr) |
| |
| if (ierr .ne. 0) STOP 1 |
| |
| rslt = ['Rover ','Spot ','________','________'] |
| if (any(dogs.ne.rslt)) STOP 2 |
| |
| rslt = ['Fluffy ','Hairball','________','________'] |
| if (any(cats.ne.rslt)) STOP 3 |
| |
| close(27) |
| |
| contains |
| |
| subroutine abort() |
| close(27) |
| stop 500 |
| end subroutine abort |
| |
| end |