943
  944
  945
  946
  947
  948
  949
  950
  951
  952      INTEGER          NOUT
  953      DOUBLE PRECISION ZERO
  954      parameter(nout=6, zero=0.0d0)
  955
  956      DOUBLE PRECISION SFAC
  957      INTEGER          LEN
  958
  959      DOUBLE PRECISION SCOMP(LEN), SSIZE(LEN), STRUE(LEN)
  960
  961      INTEGER          ICASE, INCX, INCY, N
  962      LOGICAL          PASS
  963
  964      DOUBLE PRECISION SD
  965      INTEGER          I
  966
  967      DOUBLE PRECISION SDIFF
  969
  970      INTRINSIC        abs
  971
  972      COMMON           /combla/icase, n, incx, incy, pass
  973
  974
  975      DO 40 i = 1, len
  976         sd = scomp(i) - strue(i)
  977         IF (abs(sfac*sd) .LE. abs(ssize(i))*epsilon(zero))
  978     +       GO TO 40
  979
  980
  981
  982         IF ( .NOT. pass) GO TO 20
  983
  984         pass = .false.
  985         WRITE (nout,99999)
  986         WRITE (nout,99998)
  987   20    WRITE (nout,99997) icase, n, incx, incy, i, scomp(i),
  988     +     strue(i), sd, ssize(i)
  989   40 CONTINUE
  990      RETURN
  991
  99299999 FORMAT ('                                       FAIL')
  99399998 FORMAT (/' CASE  N INCX INCY  I                            ',
  994     +       ' COMP(I)                             TRUE(I)  DIFFERENCE',
  995     +       '     SIZE(I)',/1x)
  99699997 FORMAT (1x,i4,i3,2i5,i3,2d36.8,2d12.4)
  997
  998
  999
real function sdiff(sa, sb)