1509 COMPLEX*16 ZERO, HALF, ONE
1510 parameter( zero = ( 0.0d0, 0.0d0 ),
1511 $ half = ( 0.5d0, 0.0d0 ),
1512 $ one = ( 1.0d0, 0.0d0 ) )
1513 DOUBLE PRECISION RZERO
1514 parameter( rzero = 0.0d0 )
1516 DOUBLE PRECISION EPS, THRESH
1517 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1518 LOGICAL FATAL, REWI, TRACE
1521 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1522 $ AS( NMAX*NMAX ), X( NMAX ), XS( NMAX*INCMAX ),
1523 $ XX( NMAX*INCMAX ), Y( NMAX ),
1524 $ YS( NMAX*INCMAX ), YT( NMAX ),
1525 $ YY( NMAX*INCMAX ), Z( NMAX )
1526 DOUBLE PRECISION G( NMAX )
1527 INTEGER IDIM( NIDIM ), INC( NINC )
1529 COMPLEX*16 ALPHA, ALS, TRANSL
1530 DOUBLE PRECISION ERR, ERRMAX
1531 INTEGER I, IA, IM, IN, INCX, INCXS, INCY, INCYS, IX,
1532 $ IY, J, LAA, LDA, LDAS, LX, LY, M, MS, N, NARGS,
1534 LOGICAL CONJ, NULL, RESET, SAME
1544 INTRINSIC abs, dconjg, max, min
1546 INTEGER INFOT, NOUTC
1549 COMMON /infoc/infot, noutc, ok, lerr
1551 conj = sname( 5: 5 ).EQ.
'C'
1559 DO 120 in = 1, nidim
1565 $ m = max( n - nd, 0 )
1567 $ m = min( n + nd, nmax )
1577 null = n.LE.0.OR.m.LE.0
1586 CALL zmake(
'GE',
' ',
' ', 1, m, x, 1, xx, abs( incx ),
1587 $ 0, m - 1, reset, transl )
1590 xx( 1 + abs( incx )*( m/2 - 1 ) ) = zero
1600 CALL zmake(
'GE',
' ',
' ', 1, n, y, 1, yy,
1601 $ abs( incy ), 0, n - 1, reset, transl )
1604 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
1613 CALL zmake( sname( 2: 3 ),
' ',
' ', m, n, a, nmax,
1614 $ aa, lda, m - 1, n - 1, reset, transl )
1639 $
WRITE( ntra, fmt = 9994 )nc, sname, m, n,
1640 $ alpha, incx, incy, lda
1644 CALL zgerc( m, n, alpha, xx, incx, yy, incy, aa,
1649 CALL zgeru( m, n, alpha, xx, incx, yy, incy, aa,
1656 WRITE( nout, fmt = 9993 )
1663 isame( 1 ) = ms.EQ.m
1664 isame( 2 ) = ns.EQ.n
1665 isame( 3 ) = als.EQ.alpha
1666 isame( 4 ) =
lze( xs, xx, lx )
1667 isame( 5 ) = incxs.EQ.incx
1668 isame( 6 ) =
lze( ys, yy, ly )
1669 isame( 7 ) = incys.EQ.incy
1671 isame( 8 ) =
lze( as, aa, laa )
1673 isame( 8 ) =
lzeres(
'GE',
' ', m, n, as, aa,
1676 isame( 9 ) = ldas.EQ.lda
1682 same = same.AND.isame( i )
1683 IF( .NOT.isame( i ) )
1684 $
WRITE( nout, fmt = 9998 )i
1701 z( i ) = x( m - i + 1 )
1708 w( 1 ) = y( n - j + 1 )
1711 $ w( 1 ) = dconjg( w( 1 ) )
1712 CALL zmvch(
'N', m, 1, alpha, z, nmax, w, 1,
1713 $ one, a( 1, j ), 1, yt, g,
1714 $ aa( 1 + ( j - 1 )*lda ), eps,
1715 $ err, fatal, nout, .true. )
1716 errmax = max( errmax, err )
1738 IF( errmax.LT.thresh )
THEN
1739 WRITE( nout, fmt = 9999 )sname, nc
1741 WRITE( nout, fmt = 9997 )sname, nc, errmax
1746 WRITE( nout, fmt = 9995 )j
1749 WRITE( nout, fmt = 9996 )sname
1750 WRITE( nout, fmt = 9994 )nc, sname, m, n, alpha, incx, incy, lda
1755 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1757 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1758 $
'ANGED INCORRECTLY *******' )
1759 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1760 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1761 $
' - SUSPECT *******' )
1762 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1763 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1764 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2( i3,
',' ),
'(', f4.1,
',', f4.1,
1765 $
'), X,', i2,
', Y,', i2,
', A,', i3,
') ',
1767 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',