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)