49 lines
1.5 KiB
Fortran
49 lines
1.5 KiB
Fortran
|
! { dg-do run }
|
||
|
! PR30918 Failure to skip commented out NAMELIST
|
||
|
! Before the patch, this read the commented out namelist and iuse would
|
||
|
! equal 2 when done. Test case from PR.
|
||
|
program gfcbug58
|
||
|
implicit none
|
||
|
integer :: iuse = 0, ios
|
||
|
integer, parameter :: nmlunit = 10 ! Namelist unit
|
||
|
!------------------
|
||
|
! Namelist 'REPORT'
|
||
|
!------------------
|
||
|
character(len=12) :: type, use
|
||
|
integer :: max_proc
|
||
|
namelist /REPORT/ type, use, max_proc
|
||
|
!------------------
|
||
|
! Set up the test file
|
||
|
!------------------
|
||
|
open(unit=nmlunit, status="scratch")
|
||
|
write(nmlunit, '(a)') "!================"
|
||
|
write(nmlunit, '(a)') "! Namelist REPORT"
|
||
|
write(nmlunit, '(a)') "!================"
|
||
|
write(nmlunit, '(a)') "! &REPORT use = 'ignore' / ! Comment"
|
||
|
write(nmlunit, '(a)') "!"
|
||
|
write(nmlunit, '(a)') " &REPORT type = 'SYNOP'"
|
||
|
write(nmlunit, '(a)') " use = 'active'"
|
||
|
write(nmlunit, '(a)') " max_proc = 20"
|
||
|
write(nmlunit, '(a)') " /"
|
||
|
rewind(nmlunit)
|
||
|
!-------------------------------------
|
||
|
! Loop to read namelist multiple times
|
||
|
!-------------------------------------
|
||
|
do
|
||
|
!----------------------------------------
|
||
|
! Preset namelist variables with defaults
|
||
|
!----------------------------------------
|
||
|
type = ''
|
||
|
use = ''
|
||
|
max_proc = -1
|
||
|
!--------------
|
||
|
! Read namelist
|
||
|
!--------------
|
||
|
read (nmlunit, nml=REPORT, iostat=ios)
|
||
|
if (ios /= 0) exit
|
||
|
iuse = iuse + 1
|
||
|
end do
|
||
|
if (iuse /= 1) call abort()
|
||
|
|
||
|
end program gfcbug58
|