55      IMPLICIT NONE
   56
   57
   58
   59
   60
   61
   62      CHARACTER*3        PATH
   63      INTEGER            NUNIT
   64
   65
   66
   67
   68
   69      INTEGER            NMAX
   70      parameter( nmax = 2 )
   71
   72
   73      INTEGER            I, INFO, J
   74
   75
   76      COMPLEX            A( NMAX, NMAX ), T( NMAX, NMAX ), W( NMAX ),
   77     $                   C( NMAX, NMAX )
   78
   79
   82
   83
   84      LOGICAL            LERR, OK
   85      CHARACTER*32       SRNAMT
   86      INTEGER            INFOT, NOUT
   87
   88
   89      COMMON             / infoc / infot, nout, ok, lerr
   90      COMMON             / srnamc / srnamt
   91
   92
   93      INTRINSIC          float, cmplx
   94
   95
   96
   97      nout = nunit
   98      WRITE( nout, fmt = * )
   99
  100
  101
  102      DO j = 1, nmax
  103         DO i = 1, nmax
  104            a( i, j ) = 1.0 / cmplx( float(i+j), 0.0 )
  105            c( i, j ) = 1.0 / cmplx( float(i+j), 0.0 )
  106            t( i, j ) = 1.0 / cmplx( float(i+j), 0.0 )
  107         END DO
  108         w( j ) = 0.0
  109      END DO
  110      ok = .true.
  111
  112
  113
  114
  115
  116      srnamt = 'CGEQRT'
  117      infot = 1
  118      CALL cgeqrt( -1, 0, 1, a, 1, t, 1, w, info )
 
  119      CALL chkxer( 
'CGEQRT', infot, nout, lerr, ok )
 
  120      infot = 2
  121      CALL cgeqrt( 0, -1, 1, a, 1, t, 1, w, info )
 
  122      CALL chkxer( 
'CGEQRT', infot, nout, lerr, ok )
 
  123      infot = 3
  124      CALL cgeqrt( 0, 0, 0, a, 1, t, 1, w, info )
 
  125      CALL chkxer( 
'CGEQRT', infot, nout, lerr, ok )
 
  126      infot = 5
  127      CALL cgeqrt( 2, 1, 1, a, 1, t, 1, w, info )
 
  128      CALL chkxer( 
'CGEQRT', infot, nout, lerr, ok )
 
  129      infot = 7
  130      CALL cgeqrt( 2, 2, 2, a, 2, t, 1, w, info )
 
  131      CALL chkxer( 
'CGEQRT', infot, nout, lerr, ok )
 
  132
  133
  134
  135      srnamt = 'CGEQRT2'
  136      infot = 1
  137      CALL cgeqrt2( -1, 0, a, 1, t, 1, info )
 
  138      CALL chkxer( 
'CGEQRT2', infot, nout, lerr, ok )
 
  139      infot = 2
  140      CALL cgeqrt2( 0, -1, a, 1, t, 1, info )
 
  141      CALL chkxer( 
'CGEQRT2', infot, nout, lerr, ok )
 
  142      infot = 4
  143      CALL cgeqrt2( 2, 1, a, 1, t, 1, info )
 
  144      CALL chkxer( 
'CGEQRT2', infot, nout, lerr, ok )
 
  145      infot = 6
  146      CALL cgeqrt2( 2, 2, a, 2, t, 1, info )
 
  147      CALL chkxer( 
'CGEQRT2', infot, nout, lerr, ok )
 
  148
  149
  150
  151      srnamt = 'CGEQRT3'
  152      infot = 1
  153      CALL cgeqrt3( -1, 0, a, 1, t, 1, info )
 
  154      CALL chkxer( 
'CGEQRT3', infot, nout, lerr, ok )
 
  155      infot = 2
  156      CALL cgeqrt3( 0, -1, a, 1, t, 1, info )
 
  157      CALL chkxer( 
'CGEQRT3', infot, nout, lerr, ok )
 
  158      infot = 4
  159      CALL cgeqrt3( 2, 1, a, 1, t, 1, info )
 
  160      CALL chkxer( 
'CGEQRT3', infot, nout, lerr, ok )
 
  161      infot = 6
  162      CALL cgeqrt3( 2, 2, a, 2, t, 1, info )
 
  163      CALL chkxer( 
'CGEQRT3', infot, nout, lerr, ok )
 
  164
  165
  166
  167      srnamt = 'CGEMQRT'
  168      infot = 1
  169      CALL cgemqrt( 
'/', 
'N', 0, 0, 0, 1, a, 1, t, 1, c, 1, w, info )
 
  170      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  171      infot = 2
  172      CALL cgemqrt( 
'L', 
'/', 0, 0, 0, 1, a, 1, t, 1, c, 1, w, info )
 
  173      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  174      infot = 3
  175      CALL cgemqrt( 
'L', 
'N', -1, 0, 0, 1, a, 1, t, 1, c, 1, w, info )
 
  176      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  177      infot = 4
  178      CALL cgemqrt( 
'L', 
'N', 0, -1, 0, 1, a, 1, t, 1, c, 1, w, info )
 
  179      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  180      infot = 5
  181      CALL cgemqrt( 
'L', 
'N', 0, 0, -1, 1, a, 1, t, 1, c, 1, w, info )
 
  182      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  183      infot = 5
  184      CALL cgemqrt( 
'R', 
'N', 0, 0, -1, 1, a, 1, t, 1, c, 1, w, info )
 
  185      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  186      infot = 6
  187      CALL cgemqrt( 
'L', 
'N', 0, 0, 0, 0, a, 1, t, 1, c, 1, w, info )
 
  188      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  189      infot = 8
  190      CALL cgemqrt( 
'R', 
'N', 1, 2, 1, 1, a, 1, t, 1, c, 1, w, info )
 
  191      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  192      infot = 8
  193      CALL cgemqrt( 
'L', 
'N', 2, 1, 1, 1, a, 1, t, 1, c, 1, w, info )
 
  194      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  195      infot = 10
  196      CALL cgemqrt( 
'R', 
'N', 1, 1, 1, 1, a, 1, t, 0, c, 1, w, info )
 
  197      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  198      infot = 12
  199      CALL cgemqrt( 
'L', 
'N', 1, 1, 1, 1, a, 1, t, 1, c, 0, w, info )
 
  200      CALL chkxer( 
'CGEMQRT', infot, nout, lerr, ok )
 
  201
  202
  203
  204      CALL alaesm( path, ok, nout )
 
  205
  206      RETURN
  207
  208
  209
subroutine alaesm(path, ok, nout)
ALAESM
subroutine chkxer(srnamt, infot, nout, lerr, ok)
subroutine cgemqrt(side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc, work, info)
CGEMQRT
subroutine cgeqrt2(m, n, a, lda, t, ldt, info)
CGEQRT2 computes a QR factorization of a general real or complex matrix using the compact WY represen...
recursive subroutine cgeqrt3(m, n, a, lda, t, ldt, info)
CGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact...
subroutine cgeqrt(m, n, nb, a, lda, t, ldt, work, info)
CGEQRT