]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
backport: re PR fortran/46010 (I/O: Namelist-reading bug)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 4 Nov 2010 00:38:17 +0000 (00:38 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 4 Nov 2010 00:38:17 +0000 (00:38 +0000)
2010-11-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

Backport from mainline:
PR libgfortran/46010
* gfortran.dg/namelist_66.f90: New test.

From-SVN: r166295

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/namelist_66.f90 [new file with mode: 0644]

index 0ac6b5761e38a059125c0603aa29d1867309e9bc..f30ea4480ba60321f0e42a3a5d32f14dcd1b47f8 100644 (file)
@@ -1,3 +1,9 @@
+2010-11-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       Backport from mainline:
+       PR libgfortran/46010
+       * gfortran.dg/namelist_66.f90: New test.
+
 2010-10-22  Uros Bizjak  <ubizjak@gmail.com>
            H.J. Lu  <hongjiu.lu@intel.com>
 
diff --git a/gcc/testsuite/gfortran.dg/namelist_66.f90 b/gcc/testsuite/gfortran.dg/namelist_66.f90
new file mode 100644 (file)
index 0000000..912261b
--- /dev/null
@@ -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