I really thought we had these figured out... $ cat shift-variations.f90 program main integer(kind=1) :: d1 integer(kind=2) :: d2 integer(kind=4) :: d4 integer(kind=8) :: d8 integer(kind=1), dimension(2) :: s1 integer(kind=2), dimension(2) :: s2 integer(kind=4), dimension(2) :: s4 integer(kind=8), dimension(2) :: s8 real, dimension(2,2) :: r data r /1.0, 2.0, 3.0, 4.0/ s1 = (/1, 1/) s2 = (/1, 1/) s4 = (/1, 1/) s8 = (/1, 1/) d1 = 1 d2 = 1 d4 = 1 d8 = 1 print *,eoshift(r,shift=s1,dim=d1) print *,eoshift(r,shift=s2,dim=d2) print *,eoshift(r,shift=s4,dim=d4) print *,eoshift(r,shift=s8,dim=d8) print *,cshift(r,shift=s1,dim=d1) print *,cshift(r,shift=s2,dim=d2) print *,cshift(r,shift=s4,dim=d4) print *,cshift(r,shift=s8,dim=d8) end program main $ gfortran shift-variations.f90 $ ./a.out 0.0000000 3.98764005E-34 1.26116862E-44 0.0000000 -2.73992191E-05 -2.85282731E-05 0.0000000 4.08616923E-38 2.0000000 0.0000000 4.0000000 0.0000000 2.0000000 0.0000000 4.0000000 0.0000000 Fortran runtime error: Argument 'DIM' is out of range in call to 'CSHIFT' $ gfortran -v Using built-in specs. Target: i686-pc-linux-gnu Configured with: ../../gcc/trunk/configure --prefix=/home/ig25 --enable-languages=c,fortran Thread model: posix gcc version 4.3.0 20071216 (experimental) (GCC)
-- Summary: cshift, eoshift, kind=1 and kind=2 arguments... Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tkoenig at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34540