The following code (where input.dat is a file that does not
contain a debugging namelist entry) goes wrong:
MODULE debug
LOGICAL debug_area
NAMELIST/debugging/debug_area
END MODULE debug
PROGRAM ding
USE debug
IMPLICIT NONE
INTEGER :: ios
OPEN(unit=10, status='unknown', file='input.dat')
READ(unit=10, nml=debugging, iostat=ios)
PRINT*, 'nml=debugging',ios
END PROGRAM ding
$ gfortran -o namelistding namelistding.f90 && ./namelistding
nml=debugging 2
The following works properly:
PROGRAM ding
IMPLICIT NONE
LOGICAL debug_area
NAMELIST/debugging/debug_area
INTEGER :: ios
OPEN(unit=10, status='unknown', file='input.dat')
READ(unit=10, nml=debugging, iostat=ios)
PRINT*, 'nml=debugging',ios
END PROGRAM ding
$ gfortran -o namelistding namelistding.f90 && ./namelistding
nml=debugging -1
More interesting, the following also works:
MODULE debug
LOGICAL debug_area
NAMELIST/debugging/debug_area
END MODULE debug
PROGRAM ding
USE debug
IMPLICIT NONE
NAMELIST/debugging/debug_area
INTEGER :: ios
OPEN(unit=10, status='unknown', file='input.dat')
READ(unit=10, nml=debugging, iostat=ios)
PRINT*, 'nml=debugging',ios
END PROGRAM ding
$ gfortran -o namelistding namelistding.f90 && ./namelistding
nml=debugging -1
--
Summary: Namelists defined in modules not handled properly
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc-bugzilla at chatsubo dot lagged dot za dot net
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22010