diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-23 20:19:06 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-23 20:19:06 +0000 |
commit | dea399b9ca84ed668aa3da7477dacd04e0192fa5 (patch) | |
tree | e4235e098426338fd3e0a267c1a8652af558814c /gcc/testsuite/gfortran.dg/namelist_55.f90 | |
parent | 3d956c0659ce15647c319f5e5988034f9e157095 (diff) | |
download | gcc-dea399b9ca84ed668aa3da7477dacd04e0192fa5.tar.gz |
2008-10-23 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r141325
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@141329 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gfortran.dg/namelist_55.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/namelist_55.f90 | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/namelist_55.f90 b/gcc/testsuite/gfortran.dg/namelist_55.f90 new file mode 100644 index 00000000000..20c7a219cd6 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/namelist_55.f90 @@ -0,0 +1,50 @@ +! { dg-do run } +! PR37707 Namelist read of array of derived type incorrect +! Test case from PR, prepared by Jerry DeLisle <jvdelisle@gcc.gnu.org> +TYPE geometry + INTEGER :: nlon,nlat,nlev,projection + INTEGER :: center,subcenter,process + REAL :: west,south,east,north + REAL :: dlon,dlat + REAL :: polat,polon + REAL :: lonc,latc + REAL :: projlat,projlat2,projlon + CHARACTER(LEN=1) :: arakawa ='#' + INTEGER :: truncx,truncy ! Spectral truncation + INTEGER :: cie ! Flag fort CI (0), CIE gridpoint (1) + ! or CIE spectral (-1) + INTEGER :: nlat_i,nlon_i ! I length in Y and X direction + INTEGER :: nlat_e ,nlon_e ! E length in Y and X direction + LOGICAL :: do_geo = .true. +END TYPE geometry + +TYPE shortkey + INTEGER :: PPP ! 2. Parameter + INTEGER :: NNN ! 12. Gridpoint or spectral field 0 = gridpoint, 1 = spectral + INTEGER :: INTPM + CHARACTER(LEN=16) :: name +END TYPE shortkey +INTEGER, PARAMETER :: maxl = 200 ! Maximum number of levels to be read from namelist +INTEGER, PARAMETER :: max_atmkey = 10 ! Maximum number of extra fields in the + +REAL :: ahalf(maxl),bhalf(maxl) +TYPE (geometry) :: outgeo ; SAVE outgeo ! Output geometry + +TYPE (shortkey) :: atmkey(max_atmkey) ; SAVE atmkey +TYPE (shortkey) :: mlevkey(max_atmkey) ; SAVE mlevkey + +character*600 :: l = " &NAMINTERP atmkey%ppp = 076,058,062,079, atmkey%nnn = 000,000,000,000, & + & atmkey%name ='LIQUID_WATER','SOLID_WATER','SNOW','RAIN', OUTGEO%NLEV=10, & + & AHALF=0.,1.,2.,3.,4.,5.,6.,7.,8.,9., BHALF=0.,1.,2.,3.,4.,5.,6.,7.,8.,9., /" + +namelist /naminterp/outgeo,ahalf,bhalf,atmkey +print *, outgeo%nlev +read(l,nml=naminterp) +if (outgeo%nlev /= 10) call abort +if (any(ahalf(1:10) .ne. [0.,1.,2.,3.,4.,5.,6.,7.,8.,9.])) call abort +if (any(bhalf(1:10) .ne. [0.,1.,2.,3.,4.,5.,6.,7.,8.,9.])) call abort +if (any(atmkey(1:4)%ppp .ne. [076,058,062,079])) call abort +if (any(atmkey(1:4)%nnn .ne. [0,0,0,0])) call abort +if (any(atmkey(1:4)%name .ne. ['LIQUID_WATER','SOLID_WATER ','SNOW ',& + &'RAIN '])) call abort +end |