165      SUBROUTINE cckglm( NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH,
 
  166     $                   NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT,
 
  174      INTEGER            INFO, NIN, NMATS, NMAX, NN, NOUT
 
  178      INTEGER            ISEED( 4 ), MVAL( * ), NVAL( * ), PVAL( * )
 
  180      COMPLEX            A( * ), AF( * ), B( * ), BF( * ), WORK( * ),
 
  188      PARAMETER          ( NTYPES = 8 )
 
  192      CHARACTER          DISTA, DISTB, TYPE
 
  194      INTEGER            I, IINFO, IK, IMAT, KLA, KLB, KUA, KUB, LDA,
 
  195     $                   ldb, lwork, m, modea, modeb, n, nfail, nrun, p
 
  196      REAL               ANORM, BNORM, CNDNMA, CNDNMB, RESID
 
  199      LOGICAL            DOTYPE( NTYPES )
 
  220      CALL alareq( path, nmats, dotype, ntypes, nin, nout )
 
  231         IF( m.GT.n .OR. n.GT.m+p ) 
THEN 
  233               WRITE( nout, fmt = * )
 
  236            WRITE( nout, fmt = 9997 )m, p, n
 
  247         IF( m.GT.n .OR. n.GT.m+p )
 
  250         DO 30 imat = 1, ntypes
 
  254            IF( .NOT.dotype( imat ) )
 
  260            CALL slatb9( path, imat, m, p, n, 
TYPE, kla, kua, klb, kub,
 
  261     $                   anorm, bnorm, modea, modeb, cndnma, cndnmb,
 
  264            CALL clatms( n, m, dista, iseed, 
TYPE, rwork, modea, cndnma,
 
  265     $                   anorm, kla, kua, 
'No packing', a, lda, work,
 
  267            IF( iinfo.NE.0 ) 
THEN 
  268               WRITE( nout, fmt = 9999 )iinfo
 
  273            CALL clatms( n, p, distb, iseed, 
TYPE, rwork, modeb, cndnmb,
 
  274     $                   bnorm, klb, kub, 
'No packing', b, ldb, work,
 
  276            IF( iinfo.NE.0 ) 
THEN 
  277               WRITE( nout, fmt = 9999 )iinfo
 
  285               x( i ) = clarnd( 2, iseed )
 
  288            CALL cglmts( n, m, p, a, af, lda, b, bf, ldb, x,
 
  289     $                   x( nmax+1 ), x( 2*nmax+1 ), x( 3*nmax+1 ),
 
  290     $                   work, lwork, rwork, resid )
 
  295            IF( resid.GE.thresh ) 
THEN 
  296               IF( nfail.EQ.0 .AND. firstt ) 
THEN 
  300               WRITE( nout, fmt = 9998 )n, m, p, imat, 1, resid
 
  310      CALL alasum( path, nout, nfail, nrun, 0 )
 
  312 9999 
FORMAT( 
' CLATMS in CCKGLM INFO = ', i5 )
 
  313 9998 
FORMAT( 
' N=', i4, 
' M=', i4, 
', P=', i4, 
', type ', i2,
 
  314     $      
', test ', i2, 
', ratio=', g13.6 )
 
  315 9997 
FORMAT( 
' *** Invalid input  for GLM:  M = ', i6, 
', P = ', i6,
 
  316     $      
', N = ', i6, 
';', / 
'     must satisfy M <= N <= M+P  ',
 
  317     $      
'(this set of values will be skipped)' )
 
 
subroutine cckglm(nn, nval, mval, pval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
CCKGLM
subroutine cglmts(n, m, p, a, af, lda, b, bf, ldb, d, df, x, u, work, lwork, rwork, result)
CGLMTS
subroutine clatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
CLATMS
subroutine slatb9(path, imat, m, p, n, type, kla, kua, klb, kub, anorm, bnorm, modea, modeb, cndnma, cndnmb, dista, distb)
SLATB9