From e9c462af108816086fa0a23bf613841138cd6043 Mon Sep 17 00:00:00 2001 From: Jerry DeLisle Date: Thu, 4 Nov 2010 00:38:17 +0000 Subject: [PATCH] backport: re PR fortran/46010 (I/O: Namelist-reading bug) 2010-11-03 Jerry DeLisle Backport from mainline: PR libgfortran/46010 * gfortran.dg/namelist_66.f90: New test. From-SVN: r166295 --- gcc/testsuite/ChangeLog | 6 ++++ gcc/testsuite/gfortran.dg/namelist_66.f90 | 40 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/namelist_66.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0ac6b5761e38..f30ea4480ba6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-11-03 Jerry DeLisle + + Backport from mainline: + PR libgfortran/46010 + * gfortran.dg/namelist_66.f90: New test. + 2010-10-22 Uros Bizjak H.J. Lu diff --git a/gcc/testsuite/gfortran.dg/namelist_66.f90 b/gcc/testsuite/gfortran.dg/namelist_66.f90 new file mode 100644 index 000000000000..912261b4dc60 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_66.f90 @@ -0,0 +1,40 @@ +! { dg-do run } +! PR46010 Failure to read these two examples of namelists +type ptracer + character(len = 2) :: sname + logical :: lini +end type ptracer +type(ptracer) , dimension(3) :: tracer +namelist/naml1/ tracer + +type qptracer + character(len = 20) :: sname = ""!: short name + character(len = 45 ) :: lname = ""!: long name + character(len = 20 ) :: sunit = "" !: unit + logical :: lini !: read in a file or not + logical :: lsav !: ouput the tracer or not +end type qptracer +type(qptracer) , dimension(3) :: qtracer +namelist/naml2/ qtracer + +open (99, file='nml.dat', status="replace") +write(99,*) "&naml1" +write(99,*) " tracer(1) = 'aa', .true." +write(99,*) " tracer(2) = 'bb', .true." +write(99,*) " tracer(3) = 'cc', .true." +write(99,*) "/" +rewind(99) +read (99, nml=naml1) +write (*, nml=naml1) +rewind(99) +write(99,*) "&naml2 ! just some stuff" +write(99,*) " qtracer(1) = 'dic ' , 'dissolved inorganic concentration ', 'mol-c/l' , .true. , .true.," +write(99,*) " qtracer(2) = 'alkalini' , 'total alkalinity concentration ', 'eq/l ' , .true. , .true.," +write(99,*) "/" +rewind(99) +read (99, nml=naml2) +write (*, nml=naml2) +rewind(99) + +close (99, status="delete") +end -- 2.47.2