The following program gives the wrong answers when the 
MOD arguments have kind = 10 and one is an array.  It
works when the kind is 4 or 8.

      program FA2083

! fails on Windows XP
! gcc version 4.4.0 20080312 (experimental) [trunk revision 133139]

      implicit none
      integer j1,k
      parameter (k=10)              !fails
!      parameter (k=8)              !works
!      parameter (k=4)              !works
      REAL(k) QDA1(10)
      REAL(k) QDA(10), qval

      print *, 'kind = ',k

      qda = (/ 1,2,3,4,5,6,7,8,9,10 /)

      QDA1 = MOD ( 1.1_k*( QDA(1) -5.0_k), P=( QDA -2.5_k))

      DO J1 = 1,10
      QVAL = MOD(1.1_k*(QDA(1)-5.0_k),P=(QDA(J1)-2.5_k))
      print '(i3, 3f10.2)', j1, qda1(j1), qval, qval-qda1(j1)
      ENDDO

      END

c:\gfortran:gfortran fa2083.f

c:\gfortran:a
 kind =           10
  1     -1.40     -1.40      0.00
  2     -0.40     -0.40      0.00
  3     -0.40     -0.40      0.00
  4     -0.40     -1.40     -1.00
  5     -0.40     -1.90     -1.50
  6     -0.40     -0.90     -0.50
  7     -0.40     -4.40     -4.00
  8     -0.40     -4.40     -4.00
  9     -0.40     -4.40     -4.00
 10     -0.40     -4.40     -4.00

c:\gfortran:gfortran fa2083.f

c:\gfortran:a
 kind =            8
  1     -1.40     -1.40      0.00
  2     -0.40     -0.40      0.00
  3     -0.40     -0.40      0.00
  4     -1.40     -1.40      0.00
  5     -1.90     -1.90      0.00
  6     -0.90     -0.90      0.00
  7     -4.40     -4.40      0.00
  8     -4.40     -4.40      0.00
  9     -4.40     -4.40      0.00
 10     -4.40     -4.40      0.00

c:\gfortran:gfortran fa2083.f

c:\gfortran:a
 kind =            4
  1     -1.40     -1.40      0.00
  2     -0.40     -0.40      0.00
  3     -0.40     -0.40      0.00
  4     -1.40     -1.40      0.00
  5     -1.90     -1.90      0.00
  6     -0.90     -0.90      0.00
  7     -4.40     -4.40      0.00
  8     -4.40     -4.40      0.00
  9     -4.40     -4.40      0.00
 10     -4.40     -4.40      0.00


-- 
           Summary: wrong result for MOD with kind=10 for some array
                    argument values
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dick dot hendrickson at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35944

Reply via email to