68      parameter( maxin = 12 )
 
   70      parameter( nmax =  50 )
 
   72      parameter( maxrhs = 16 )
 
   74      parameter( ntypes = 9 )
 
   76      parameter( nin = 5, nout = 6 )
 
   80      INTEGER            vers_major, vers_minor, vers_patch
 
   81      INTEGER            i, nn, nns, nnt
 
   82      DOUBLE PRECISION   eps, s1, s2, thresh
 
   86      INTEGER            nval( maxin ), nsval( maxin ), ntval( ntypes )
 
   87      COMPLEX*16         worka( nmax, nmax )
 
   88      COMPLEX*16         workasav( nmax, nmax )
 
   89      COMPLEX*16         workb( nmax, maxrhs )
 
   90      COMPLEX*16         workxact( nmax, maxrhs )
 
   91      COMPLEX*16         workbsav( nmax, maxrhs )
 
   92      COMPLEX*16         workx( nmax, maxrhs )
 
   93      COMPLEX*16         workafac( nmax, nmax )
 
   94      COMPLEX*16         workainv( nmax, nmax )
 
   95      COMPLEX*16         workarf( (nmax*(nmax+1))/2 )
 
   96      COMPLEX*16         workap( (nmax*(nmax+1))/2 )
 
   97      COMPLEX*16         workarfinv( (nmax*(nmax+1))/2 )
 
   98      COMPLEX*16         z_work_zlatms( 3 * nmax )
 
   99      COMPLEX*16         z_work_zpot02( nmax, maxrhs )
 
  100      COMPLEX*16         z_work_zpot03( nmax, nmax )
 
  101      DOUBLE PRECISION   d_work_zlatms( nmax )
 
  102      DOUBLE PRECISION   d_work_zlanhe( nmax )
 
  103      DOUBLE PRECISION   d_work_zpot01( nmax )
 
  104      DOUBLE PRECISION   d_work_zpot02( nmax )
 
  105      DOUBLE PRECISION   d_work_zpot03( nmax )
 
  126      CALL ilaver( vers_major, vers_minor, vers_patch )
 
  127      WRITE( nout, fmt = 9994 ) vers_major, vers_minor, vers_patch
 
  131      READ( nin, fmt = * )nn
 
  133         WRITE( nout, fmt = 9996 )
' NN ', nn, 1
 
  136      ELSE IF( nn.GT.maxin ) 
THEN 
  137         WRITE( nout, fmt = 9995 )
' NN ', nn, maxin
 
  141      READ( nin, fmt = * )( nval( i ), i = 1, nn )
 
  143         IF( nval( i ).LT.0 ) 
THEN 
  144            WRITE( nout, fmt = 9996 )
' M  ', nval( i ), 0
 
  146         ELSE IF( nval( i ).GT.nmax ) 
THEN 
  147            WRITE( nout, fmt = 9995 )
' M  ', nval( i ), nmax
 
  152     $   
WRITE( nout, fmt = 9993 )
'N   ', ( nval( i ), i = 1, nn )
 
  156      READ( nin, fmt = * )nns
 
  158         WRITE( nout, fmt = 9996 )
' NNS', nns, 1
 
  161      ELSE IF( nns.GT.maxin ) 
THEN 
  162         WRITE( nout, fmt = 9995 )
' NNS', nns, maxin
 
  166      READ( nin, fmt = * )( nsval( i ), i = 1, nns )
 
  168         IF( nsval( i ).LT.0 ) 
THEN 
  169            WRITE( nout, fmt = 9996 )
'NRHS', nsval( i ), 0
 
  171         ELSE IF( nsval( i ).GT.maxrhs ) 
THEN 
  172            WRITE( nout, fmt = 9995 )
'NRHS', nsval( i ), maxrhs
 
  177     $   
WRITE( nout, fmt = 9993 )
'NRHS', ( nsval( i ), i = 1, nns )
 
  181      READ( nin, fmt = * )nnt
 
  183         WRITE( nout, fmt = 9996 )
' NMA', nnt, 1
 
  186      ELSE IF( nnt.GT.ntypes ) 
THEN 
  187         WRITE( nout, fmt = 9995 )
' NMA', nnt, ntypes
 
  191      READ( nin, fmt = * )( ntval( i ), i = 1, nnt )
 
  193         IF( ntval( i ).LT.0 ) 
THEN 
  194            WRITE( nout, fmt = 9996 )
'TYPE', ntval( i ), 0
 
  196         ELSE IF( ntval( i ).GT.ntypes ) 
THEN 
  197            WRITE( nout, fmt = 9995 )
'TYPE', ntval( i ), ntypes
 
  202     $   
WRITE( nout, fmt = 9993 )
'TYPE', ( ntval( i ), i = 1, nnt )
 
  206      READ( nin, fmt = * )thresh
 
  207      WRITE( nout, fmt = 9992 )thresh
 
  211      READ( nin, fmt = * )tsterr
 
  214         WRITE( nout, fmt = 9999 )
 
  220      eps = 
dlamch( 
'Underflow threshold' )
 
  221      WRITE( nout, fmt = 9991 )
'underflow', eps
 
  222      eps = 
dlamch( 
'Overflow threshold' )
 
  223      WRITE( nout, fmt = 9991 )
'overflow ', eps
 
  225      WRITE( nout, fmt = 9991 )
'precision', eps
 
  226      WRITE( nout, fmt = * )
 
  236      CALL zdrvrfp( nout, nn, nval, nns, nsval, nnt, ntval, thresh,
 
  237     $              worka, workasav, workafac, workainv, workb,
 
  238     $              workbsav, workxact, workx, workarf, workarfinv,
 
  239     $              z_work_zlatms, z_work_zpot02,
 
  240     $              z_work_zpot03, d_work_zlatms, d_work_zlanhe,
 
  241     $              d_work_zpot01, d_work_zpot02, d_work_zpot03 )
 
  245      CALL zdrvrf1( nout, nn, nval, thresh, worka, nmax, workarf,
 
  251      CALL zdrvrf2( nout, nn, nval, worka, nmax, workarf,
 
  256      CALL zdrvrf3( nout, nn, nval, thresh, worka, nmax, workarf,
 
  257     +              workainv, workafac, d_work_zlanhe,
 
  258     +              z_work_zpot03, z_work_zpot02 )
 
  263      CALL zdrvrf4( nout, nn, nval, thresh, worka, workafac, nmax,
 
  264     +              workarf, workainv, nmax,d_work_zlanhe)
 
  268      WRITE( nout, fmt = 9998 )
 
  269      WRITE( nout, fmt = 9997 )s2 - s1
 
  271 9999 
FORMAT( / 
' Execution not attempted due to input errors' )
 
  272 9998 
FORMAT( / 
' End of tests' )
 
  273 9997 
FORMAT( 
' Total time used = ', f12.2, 
' seconds', / )
 
  274 9996 
FORMAT( 
' !! Invalid input value: ', a4, 
'=', i6, 
'; must be >=',
 
  276 9995 
FORMAT( 
' !! Invalid input value: ', a4, 
'=', i6, 
'; must be <=',
 
  278 9994 
FORMAT( /  
' Tests of the COMPLEX*16 LAPACK RFP routines ',
 
  279     $      / 
' LAPACK VERSION ', i1, 
'.', i1, 
'.', i1,
 
  280     $      / / 
' The following parameter values will be used:' )
 
  281 9993 
FORMAT( 4x, a4, 
':  ', 10i6, / 11x, 10i6 )
 
  282 9992 
FORMAT( / 
' Routines pass computational tests if test ratio is ',
 
  283     $      
'less than', f8.2, / )
 
  284 9991 
FORMAT( 
' Relative machine ', a, 
' is taken to be', d16.6 )
 
subroutine ilaver(vers_major, vers_minor, vers_patch)
ILAVER returns the LAPACK version.
double precision function dlamch(cmach)
DLAMCH
double precision function dsecnd()
DSECND Using ETIME
subroutine zdrvrf1(nout, nn, nval, thresh, a, lda, arf, work)
ZDRVRF1
subroutine zdrvrf2(nout, nn, nval, a, lda, arf, ap, asav)
ZDRVRF2
subroutine zdrvrf3(nout, nn, nval, thresh, a, lda, arf, b1, b2, d_work_zlange, z_work_zgeqrf, tau)
ZDRVRF3
subroutine zdrvrf4(nout, nn, nval, thresh, c1, c2, ldc, crf, a, lda, d_work_zlange)
ZDRVRF4
subroutine zdrvrfp(nout, nn, nval, nns, nsval, nnt, ntval, thresh, a, asav, afac, ainv, b, bsav, xact, x, arf, arfinv, z_work_zlatms, z_work_zpot02, z_work_zpot03, d_work_zlatms, d_work_zlanhe, d_work_zpot01, d_work_zpot02, d_work_zpot03)
ZDRVRFP
subroutine zerrrfp(nunit)
ZERRRFP