1577 DOUBLE PRECISION ZERO, HALF, ONE
1578 parameter( zero = 0.0d0, half = 0.5d0, one = 1.0d0 )
1580 DOUBLE PRECISION EPS, THRESH
1581 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA,
1583 LOGICAL FATAL, REWI, TRACE
1586 DOUBLE PRECISION A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1587 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
1588 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
1589 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
1590 $ YY( NMAX*INCMAX ), Z( NMAX )
1591 INTEGER IDIM( NIDIM ), INC( NINC )
1593 DOUBLE PRECISION ALPHA, ALS, ERR, ERRMAX, TRANSL
1594 INTEGER I, IA, IM, IN, INCX, INCXS, INCY, INCYS, IX,
1595 $ IY, J, LAA, LDA, LDAS, LX, LY, M, MS, N, NARGS,
1597 LOGICAL NULL, RESET, SAME
1599 DOUBLE PRECISION W( 1 )
1607 INTRINSIC abs, max, min
1609 INTEGER INFOT, NOUTC
1612 COMMON /infoc/infot, noutc, ok
1621 DO 120 in = 1, nidim
1627 $ m = max( n - nd, 0 )
1629 $ m = min( n + nd, nmax )
1639 null = n.LE.0.OR.m.LE.0
1648 CALL dmake(
'ge',
' ',
' ', 1, m, x, 1, xx, abs( incx ),
1649 $ 0, m - 1, reset, transl )
1652 xx( 1 + abs( incx )*( m/2 - 1 ) ) = zero
1662 CALL dmake(
'ge',
' ',
' ', 1, n, y, 1, yy,
1663 $ abs( incy ), 0, n - 1, reset, transl )
1666 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
1675 CALL dmake( sname( 8: 9 ),
' ',
' ', m, n, a, nmax,
1676 $ aa, lda, m - 1, n - 1, reset, transl )
1701 $
WRITE( ntra, fmt = 9994 )nc, sname, m, n,
1702 $ alpha, incx, incy, lda
1705 CALL cdger( iorder, m, n, alpha, xx, incx, yy,
1711 WRITE( nout, fmt = 9993 )
1718 isame( 1 ) = ms.EQ.m
1719 isame( 2 ) = ns.EQ.n
1720 isame( 3 ) = als.EQ.alpha
1721 isame( 4 ) =
lde( xs, xx, lx )
1722 isame( 5 ) = incxs.EQ.incx
1723 isame( 6 ) =
lde( ys, yy, ly )
1724 isame( 7 ) = incys.EQ.incy
1726 isame( 8 ) =
lde( as, aa, laa )
1728 isame( 8 ) =
lderes(
'ge',
' ', m, n, as, aa,
1731 isame( 9 ) = ldas.EQ.lda
1737 same = same.AND.isame( i )
1738 IF( .NOT.isame( i ) )
1739 $
WRITE( nout, fmt = 9998 )i
1756 z( i ) = x( m - i + 1 )
1763 w( 1 ) = y( n - j + 1 )
1765 CALL dmvch(
'N', m, 1, alpha, z, nmax, w, 1,
1766 $ one, a( 1, j ), 1, yt, g,
1767 $ aa( 1 + ( j - 1 )*lda ), eps,
1768 $ err, fatal, nout, .true. )
1769 errmax = max( errmax, err )
1791 IF( errmax.LT.thresh )
THEN
1792 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10000 )sname, nc
1793 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10001 )sname, nc
1795 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10002 )sname, nc, errmax
1796 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10003 )sname, nc, errmax
1801 WRITE( nout, fmt = 9995 )j
1804 WRITE( nout, fmt = 9996 )sname
1805 WRITE( nout, fmt = 9994 )nc, sname, m, n, alpha, incx, incy, lda
1810 10003
FORMAT(
' ', a12,
' COMPLETED THE ROW-MAJOR COMPUTATIONAL ',
1811 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1812 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1813 10002
FORMAT(
' ', a12,
' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
1814 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1815 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1816 10001
FORMAT(
' ', a12,
' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
1817 $
' (', i6,
' CALL',
'S)' )
1818 10000
FORMAT(
' ', a12,
' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
1819 $
' (', i6,
' CALL',
'S)' )
1820 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1821 $
'ANGED INCORRECTLY *******' )
1822 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1823 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1824 $
' - SUSPECT *******' )
1825 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
1826 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1827 9994
FORMAT( 1x, i6,
': ',a12,
'(', 2( i3,
',' ), f4.1,
', X,', i2,
1828 $
', Y,', i2,
', A,', i3,
') .' )
1829 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',