LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
zerrgex.f
Go to the documentation of this file.
00001 *> \brief \b ZERRGEX
00002 *
00003 *  =========== DOCUMENTATION ===========
00004 *
00005 * Online html documentation available at 
00006 *            http://www.netlib.org/lapack/explore-html/ 
00007 *
00008 *  Definition:
00009 *  ===========
00010 *
00011 *       SUBROUTINE ZERRGE( PATH, NUNIT )
00012 * 
00013 *       .. Scalar Arguments ..
00014 *       CHARACTER*3        PATH
00015 *       INTEGER            NUNIT
00016 *       ..
00017 *  
00018 *
00019 *> \par Purpose:
00020 *  =============
00021 *>
00022 *> \verbatim
00023 *>
00024 *> ZERRGE tests the error exits for the COMPLEX*16 routines
00025 *> for general matrices.
00026 *>
00027 *> Note that this file is used only when the XBLAS are available,
00028 *> otherwise zerrge.f defines this subroutine.
00029 *> \endverbatim
00030 *
00031 *  Arguments:
00032 *  ==========
00033 *
00034 *> \param[in] PATH
00035 *> \verbatim
00036 *>          PATH is CHARACTER*3
00037 *>          The LAPACK path name for the routines to be tested.
00038 *> \endverbatim
00039 *>
00040 *> \param[in] NUNIT
00041 *> \verbatim
00042 *>          NUNIT is INTEGER
00043 *>          The unit number for output.
00044 *> \endverbatim
00045 *
00046 *  Authors:
00047 *  ========
00048 *
00049 *> \author Univ. of Tennessee 
00050 *> \author Univ. of California Berkeley 
00051 *> \author Univ. of Colorado Denver 
00052 *> \author NAG Ltd. 
00053 *
00054 *> \date November 2011
00055 *
00056 *> \ingroup complex16_lin
00057 *
00058 *  =====================================================================
00059       SUBROUTINE ZERRGE( PATH, NUNIT )
00060 *
00061 *  -- LAPACK test routine (version 3.4.0) --
00062 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00063 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00064 *     November 2011
00065 *
00066 *     .. Scalar Arguments ..
00067       CHARACTER*3        PATH
00068       INTEGER            NUNIT
00069 *     ..
00070 *
00071 *  =====================================================================
00072 *
00073 *     .. Parameters ..
00074       INTEGER            NMAX
00075       PARAMETER          ( NMAX = 4 )
00076 *     ..
00077 *     .. Local Scalars ..
00078       CHARACTER          EQ
00079       CHARACTER*2        C2
00080       INTEGER            I, INFO, J, N_ERR_BNDS, NPARAMS
00081       DOUBLE PRECISION   ANRM, CCOND, RCOND, BERR
00082 *     ..
00083 *     .. Local Arrays ..
00084       INTEGER            IP( NMAX )
00085       DOUBLE PRECISION   R( NMAX ), R1( NMAX ), R2( NMAX ), CS( NMAX ),
00086      $                   RS( NMAX )
00087       COMPLEX*16         A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00088      $                   W( 2*NMAX ), X( NMAX ), ERR_BNDS_N( NMAX, 3 ),
00089      $                   ERR_BNDS_C( NMAX, 3 ), PARAMS
00090 *     ..
00091 *     .. External Functions ..
00092       LOGICAL            LSAMEN
00093       EXTERNAL           LSAMEN
00094 *     ..
00095 *     .. External Subroutines ..
00096       EXTERNAL           ALAESM, CHKXER, ZGBCON, ZGBEQU, ZGBRFS, ZGBTF2,
00097      $                   ZGBTRF, ZGBTRS, ZGECON, ZGEEQU, ZGERFS, ZGETF2,
00098      $                   ZGETRF, ZGETRI, ZGETRS, ZGEEQUB, ZGERFSX,
00099      $                   ZGBEQUB, ZGBRFSX
00100 *     ..
00101 *     .. Scalars in Common ..
00102       LOGICAL            LERR, OK
00103       CHARACTER*32       SRNAMT
00104       INTEGER            INFOT, NOUT
00105 *     ..
00106 *     .. Common blocks ..
00107       COMMON             / INFOC / INFOT, NOUT, OK, LERR
00108       COMMON             / SRNAMC / SRNAMT
00109 *     ..
00110 *     .. Intrinsic Functions ..
00111       INTRINSIC          DBLE, DCMPLX
00112 *     ..
00113 *     .. Executable Statements ..
00114 *
00115       NOUT = NUNIT
00116       WRITE( NOUT, FMT = * )
00117       C2 = PATH( 2: 3 )
00118 *
00119 *     Set the variables to innocuous values.
00120 *
00121       DO 20 J = 1, NMAX
00122          DO 10 I = 1, NMAX
00123             A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
00124      $                  -1.D0 / DBLE( I+J ) )
00125             AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
00126      $                   -1.D0 / DBLE( I+J ) )
00127    10    CONTINUE
00128          B( J ) = 0.D0
00129          R1( J ) = 0.D0
00130          R2( J ) = 0.D0
00131          W( J ) = 0.D0
00132          X( J ) = 0.D0
00133          CS( J ) = 0.D0
00134          RS( J ) = 0.D0
00135          IP( J ) = J
00136    20 CONTINUE
00137       OK = .TRUE.
00138 *
00139 *     Test error exits of the routines that use the LU decomposition
00140 *     of a general matrix.
00141 *
00142       IF( LSAMEN( 2, C2, 'GE' ) ) THEN
00143 *
00144 *        ZGETRF
00145 *
00146          SRNAMT = 'ZGETRF'
00147          INFOT = 1
00148          CALL ZGETRF( -1, 0, A, 1, IP, INFO )
00149          CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
00150          INFOT = 2
00151          CALL ZGETRF( 0, -1, A, 1, IP, INFO )
00152          CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
00153          INFOT = 4
00154          CALL ZGETRF( 2, 1, A, 1, IP, INFO )
00155          CALL CHKXER( 'ZGETRF', INFOT, NOUT, LERR, OK )
00156 *
00157 *        ZGETF2
00158 *
00159          SRNAMT = 'ZGETF2'
00160          INFOT = 1
00161          CALL ZGETF2( -1, 0, A, 1, IP, INFO )
00162          CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
00163          INFOT = 2
00164          CALL ZGETF2( 0, -1, A, 1, IP, INFO )
00165          CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
00166          INFOT = 4
00167          CALL ZGETF2( 2, 1, A, 1, IP, INFO )
00168          CALL CHKXER( 'ZGETF2', INFOT, NOUT, LERR, OK )
00169 *
00170 *        ZGETRI
00171 *
00172          SRNAMT = 'ZGETRI'
00173          INFOT = 1
00174          CALL ZGETRI( -1, A, 1, IP, W, 1, INFO )
00175          CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
00176          INFOT = 3
00177          CALL ZGETRI( 2, A, 1, IP, W, 2, INFO )
00178          CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
00179          INFOT = 6
00180          CALL ZGETRI( 2, A, 2, IP, W, 1, INFO )
00181          CALL CHKXER( 'ZGETRI', INFOT, NOUT, LERR, OK )
00182 *
00183 *        ZGETRS
00184 *
00185          SRNAMT = 'ZGETRS'
00186          INFOT = 1
00187          CALL ZGETRS( '/', 0, 0, A, 1, IP, B, 1, INFO )
00188          CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
00189          INFOT = 2
00190          CALL ZGETRS( 'N', -1, 0, A, 1, IP, B, 1, INFO )
00191          CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
00192          INFOT = 3
00193          CALL ZGETRS( 'N', 0, -1, A, 1, IP, B, 1, INFO )
00194          CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
00195          INFOT = 5
00196          CALL ZGETRS( 'N', 2, 1, A, 1, IP, B, 2, INFO )
00197          CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
00198          INFOT = 8
00199          CALL ZGETRS( 'N', 2, 1, A, 2, IP, B, 1, INFO )
00200          CALL CHKXER( 'ZGETRS', INFOT, NOUT, LERR, OK )
00201 *
00202 *        ZGERFS
00203 *
00204          SRNAMT = 'ZGERFS'
00205          INFOT = 1
00206          CALL ZGERFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W,
00207      $                R, INFO )
00208          CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
00209          INFOT = 2
00210          CALL ZGERFS( 'N', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
00211      $                W, R, INFO )
00212          CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
00213          INFOT = 3
00214          CALL ZGERFS( 'N', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2,
00215      $                W, R, INFO )
00216          CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
00217          INFOT = 5
00218          CALL ZGERFS( 'N', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W,
00219      $                R, INFO )
00220          CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
00221          INFOT = 7
00222          CALL ZGERFS( 'N', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W,
00223      $                R, INFO )
00224          CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
00225          INFOT = 10
00226          CALL ZGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W,
00227      $                R, INFO )
00228          CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
00229          INFOT = 12
00230          CALL ZGERFS( 'N', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W,
00231      $                R, INFO )
00232          CALL CHKXER( 'ZGERFS', INFOT, NOUT, LERR, OK )
00233 *
00234 *        ZGERFSX
00235 *
00236          N_ERR_BNDS = 3
00237          NPARAMS = 0
00238          SRNAMT = 'ZGERFSX'
00239          INFOT = 1
00240          CALL ZGERFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, RS, CS, B, 1, X,
00241      $        1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
00242      $        NPARAMS, PARAMS, W, R, INFO )
00243          CALL CHKXER( 'ZGERFSX', INFOT, NOUT, LERR, OK )
00244          INFOT = 2
00245          EQ = '/'
00246          CALL ZGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, RS, CS, B, 2, X,
00247      $        2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
00248      $        NPARAMS, PARAMS, W, R, INFO )
00249          CALL CHKXER( 'ZGERFSX', INFOT, NOUT, LERR, OK )
00250          INFOT = 3
00251          EQ = 'R'
00252          CALL ZGERFSX( 'N', EQ, -1, 0, A, 1, AF, 1, IP, RS, CS, B, 1, X,
00253      $        1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
00254      $        NPARAMS, PARAMS, W, R, INFO )
00255          CALL CHKXER( 'ZGERFSX', INFOT, NOUT, LERR, OK )
00256          INFOT = 4
00257          CALL ZGERFSX( 'N', EQ, 0, -1, A, 1, AF, 1, IP, RS, CS, B, 1, X,
00258      $        1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
00259      $        NPARAMS, PARAMS, W, R, INFO )
00260          CALL CHKXER( 'ZGERFSX', INFOT, NOUT, LERR, OK )
00261          INFOT = 6
00262          CALL ZGERFSX( 'N', EQ, 2, 1, A, 1, AF, 2, IP, RS, CS, B, 2, X,
00263      $        2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
00264      $        NPARAMS, PARAMS, W, R, INFO )
00265          CALL CHKXER( 'ZGERFSX', INFOT, NOUT, LERR, OK )
00266          INFOT = 8
00267          CALL ZGERFSX( 'N', EQ, 2, 1, A, 2, AF, 1, IP, RS, CS, B, 2, X,
00268      $        2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
00269      $        NPARAMS, PARAMS, W, R, INFO )
00270          CALL CHKXER( 'ZGERFSX', INFOT, NOUT, LERR, OK )
00271          INFOT = 13
00272          EQ = 'C'
00273          CALL ZGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, RS, CS, B, 1, X,
00274      $        2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
00275      $        NPARAMS, PARAMS, W, R, INFO )
00276          CALL CHKXER( 'ZGERFSX', INFOT, NOUT, LERR, OK )
00277          INFOT = 15
00278          CALL ZGERFSX( 'N', EQ, 2, 1, A, 2, AF, 2, IP, RS, CS, B, 2, X,
00279      $        1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C,
00280      $        NPARAMS, PARAMS, W, R, INFO )
00281          CALL CHKXER( 'ZGERFSX', INFOT, NOUT, LERR, OK )
00282 *
00283 *        ZGECON
00284 *
00285          SRNAMT = 'ZGECON'
00286          INFOT = 1
00287          CALL ZGECON( '/', 0, A, 1, ANRM, RCOND, W, R, INFO )
00288          CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
00289          INFOT = 2
00290          CALL ZGECON( '1', -1, A, 1, ANRM, RCOND, W, R, INFO )
00291          CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
00292          INFOT = 4
00293          CALL ZGECON( '1', 2, A, 1, ANRM, RCOND, W, R, INFO )
00294          CALL CHKXER( 'ZGECON', INFOT, NOUT, LERR, OK )
00295 *
00296 *        ZGEEQU
00297 *
00298          SRNAMT = 'ZGEEQU'
00299          INFOT = 1
00300          CALL ZGEEQU( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
00301          CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
00302          INFOT = 2
00303          CALL ZGEEQU( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
00304          CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
00305          INFOT = 4
00306          CALL ZGEEQU( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
00307          CALL CHKXER( 'ZGEEQU', INFOT, NOUT, LERR, OK )
00308 *
00309 *        ZGEEQUB
00310 *
00311          SRNAMT = 'ZGEEQUB'
00312          INFOT = 1
00313          CALL ZGEEQUB( -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
00314          CALL CHKXER( 'ZGEEQUB', INFOT, NOUT, LERR, OK )
00315          INFOT = 2
00316          CALL ZGEEQUB( 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
00317          CALL CHKXER( 'ZGEEQUB', INFOT, NOUT, LERR, OK )
00318          INFOT = 4
00319          CALL ZGEEQUB( 2, 2, A, 1, R1, R2, RCOND, CCOND, ANRM, INFO )
00320          CALL CHKXER( 'ZGEEQUB', INFOT, NOUT, LERR, OK )
00321 *
00322 *     Test error exits of the routines that use the LU decomposition
00323 *     of a general band matrix.
00324 *
00325       ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN
00326 *
00327 *        ZGBTRF
00328 *
00329          SRNAMT = 'ZGBTRF'
00330          INFOT = 1
00331          CALL ZGBTRF( -1, 0, 0, 0, A, 1, IP, INFO )
00332          CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
00333          INFOT = 2
00334          CALL ZGBTRF( 0, -1, 0, 0, A, 1, IP, INFO )
00335          CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
00336          INFOT = 3
00337          CALL ZGBTRF( 1, 1, -1, 0, A, 1, IP, INFO )
00338          CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
00339          INFOT = 4
00340          CALL ZGBTRF( 1, 1, 0, -1, A, 1, IP, INFO )
00341          CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
00342          INFOT = 6
00343          CALL ZGBTRF( 2, 2, 1, 1, A, 3, IP, INFO )
00344          CALL CHKXER( 'ZGBTRF', INFOT, NOUT, LERR, OK )
00345 *
00346 *        ZGBTF2
00347 *
00348          SRNAMT = 'ZGBTF2'
00349          INFOT = 1
00350          CALL ZGBTF2( -1, 0, 0, 0, A, 1, IP, INFO )
00351          CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
00352          INFOT = 2
00353          CALL ZGBTF2( 0, -1, 0, 0, A, 1, IP, INFO )
00354          CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
00355          INFOT = 3
00356          CALL ZGBTF2( 1, 1, -1, 0, A, 1, IP, INFO )
00357          CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
00358          INFOT = 4
00359          CALL ZGBTF2( 1, 1, 0, -1, A, 1, IP, INFO )
00360          CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
00361          INFOT = 6
00362          CALL ZGBTF2( 2, 2, 1, 1, A, 3, IP, INFO )
00363          CALL CHKXER( 'ZGBTF2', INFOT, NOUT, LERR, OK )
00364 *
00365 *        ZGBTRS
00366 *
00367          SRNAMT = 'ZGBTRS'
00368          INFOT = 1
00369          CALL ZGBTRS( '/', 0, 0, 0, 1, A, 1, IP, B, 1, INFO )
00370          CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
00371          INFOT = 2
00372          CALL ZGBTRS( 'N', -1, 0, 0, 1, A, 1, IP, B, 1, INFO )
00373          CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
00374          INFOT = 3
00375          CALL ZGBTRS( 'N', 1, -1, 0, 1, A, 1, IP, B, 1, INFO )
00376          CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
00377          INFOT = 4
00378          CALL ZGBTRS( 'N', 1, 0, -1, 1, A, 1, IP, B, 1, INFO )
00379          CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
00380          INFOT = 5
00381          CALL ZGBTRS( 'N', 1, 0, 0, -1, A, 1, IP, B, 1, INFO )
00382          CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
00383          INFOT = 7
00384          CALL ZGBTRS( 'N', 2, 1, 1, 1, A, 3, IP, B, 2, INFO )
00385          CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
00386          INFOT = 10
00387          CALL ZGBTRS( 'N', 2, 0, 0, 1, A, 1, IP, B, 1, INFO )
00388          CALL CHKXER( 'ZGBTRS', INFOT, NOUT, LERR, OK )
00389 *
00390 *        ZGBRFS
00391 *
00392          SRNAMT = 'ZGBRFS'
00393          INFOT = 1
00394          CALL ZGBRFS( '/', 0, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
00395      $                R2, W, R, INFO )
00396          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00397          INFOT = 2
00398          CALL ZGBRFS( 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
00399      $                R2, W, R, INFO )
00400          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00401          INFOT = 3
00402          CALL ZGBRFS( 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
00403      $                R2, W, R, INFO )
00404          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00405          INFOT = 4
00406          CALL ZGBRFS( 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1,
00407      $                R2, W, R, INFO )
00408          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00409          INFOT = 5
00410          CALL ZGBRFS( 'N', 1, 0, 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1,
00411      $                R2, W, R, INFO )
00412          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00413          INFOT = 7
00414          CALL ZGBRFS( 'N', 2, 1, 1, 1, A, 2, AF, 4, IP, B, 2, X, 2, R1,
00415      $                R2, W, R, INFO )
00416          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00417          INFOT = 9
00418          CALL ZGBRFS( 'N', 2, 1, 1, 1, A, 3, AF, 3, IP, B, 2, X, 2, R1,
00419      $                R2, W, R, INFO )
00420          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00421          INFOT = 12
00422          CALL ZGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 1, X, 2, R1,
00423      $                R2, W, R, INFO )
00424          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00425          INFOT = 14
00426          CALL ZGBRFS( 'N', 2, 0, 0, 1, A, 1, AF, 1, IP, B, 2, X, 1, R1,
00427      $                R2, W, R, INFO )
00428          CALL CHKXER( 'ZGBRFS', INFOT, NOUT, LERR, OK )
00429 *
00430 *        ZGBRFSX
00431 *
00432          N_ERR_BNDS = 3
00433          NPARAMS = 0
00434          SRNAMT = 'ZGBRFSX'
00435          INFOT = 1
00436          CALL ZGBRFSX( '/', EQ, 0, 0, 0, 0, A, 1, AF, 1, IP, RS, CS, B,
00437      $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00438      $                ERR_BNDS_C, NPARAMS, PARAMS,  W, R, INFO )
00439          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00440          INFOT = 2
00441          EQ = '/'
00442          CALL ZGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, RS, CS, B,
00443      $                2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00444      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00445          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00446          INFOT = 3
00447          EQ = 'R'
00448          CALL ZGBRFSX( 'N', EQ, -1, 1, 1, 0, A, 1, AF, 1, IP, RS, CS, B,
00449      $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00450      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00451          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00452          INFOT = 4
00453          EQ = 'R'
00454          CALL ZGBRFSX( 'N', EQ, 2, -1, 1, 1, A, 3, AF, 4, IP, RS, CS, B,
00455      $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00456      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00457          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00458          INFOT = 5
00459          EQ = 'R'
00460          CALL ZGBRFSX( 'N', EQ, 2, 1, -1, 1, A, 3, AF, 4, IP, RS, CS, B,
00461      $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00462      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00463          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00464          INFOT = 6
00465          CALL ZGBRFSX( 'N', EQ, 0, 0, 0, -1, A, 1, AF, 1, IP, RS, CS, B,
00466      $                1, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00467      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00468          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00469          INFOT = 8
00470          CALL ZGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 1, AF, 2, IP, RS, CS, B,
00471      $                2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00472      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00473          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00474          INFOT = 10
00475          CALL ZGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 3, IP, RS, CS, B,
00476      $                2, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00477      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00478          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00479          INFOT = 13
00480          EQ = 'C'
00481          CALL ZGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, RS, CS, B,
00482      $                1, X, 2, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00483      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00484          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00485          INFOT = 15
00486          CALL ZGBRFSX( 'N', EQ, 2, 1, 1, 1, A, 3, AF, 5, IP, RS, CS, B,
00487      $                2, X, 1, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N,
00488      $                ERR_BNDS_C, NPARAMS, PARAMS, W, R, INFO )
00489          CALL CHKXER( 'ZGBRFSX', INFOT, NOUT, LERR, OK )
00490 *
00491 *        ZGBCON
00492 *
00493          SRNAMT = 'ZGBCON'
00494          INFOT = 1
00495          CALL ZGBCON( '/', 0, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
00496          CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
00497          INFOT = 2
00498          CALL ZGBCON( '1', -1, 0, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
00499          CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
00500          INFOT = 3
00501          CALL ZGBCON( '1', 1, -1, 0, A, 1, IP, ANRM, RCOND, W, R, INFO )
00502          CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
00503          INFOT = 4
00504          CALL ZGBCON( '1', 1, 0, -1, A, 1, IP, ANRM, RCOND, W, R, INFO )
00505          CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
00506          INFOT = 6
00507          CALL ZGBCON( '1', 2, 1, 1, A, 3, IP, ANRM, RCOND, W, R, INFO )
00508          CALL CHKXER( 'ZGBCON', INFOT, NOUT, LERR, OK )
00509 *
00510 *        ZGBEQU
00511 *
00512          SRNAMT = 'ZGBEQU'
00513          INFOT = 1
00514          CALL ZGBEQU( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
00515      $                INFO )
00516          CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
00517          INFOT = 2
00518          CALL ZGBEQU( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
00519      $                INFO )
00520          CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
00521          INFOT = 3
00522          CALL ZGBEQU( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
00523      $                INFO )
00524          CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
00525          INFOT = 4
00526          CALL ZGBEQU( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
00527      $                INFO )
00528          CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
00529          INFOT = 6
00530          CALL ZGBEQU( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
00531      $                INFO )
00532          CALL CHKXER( 'ZGBEQU', INFOT, NOUT, LERR, OK )
00533 *
00534 *        ZGBEQUB
00535 *
00536          SRNAMT = 'ZGBEQUB'
00537          INFOT = 1
00538          CALL ZGBEQUB( -1, 0, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
00539      $                INFO )
00540          CALL CHKXER( 'ZGBEQUB', INFOT, NOUT, LERR, OK )
00541          INFOT = 2
00542          CALL ZGBEQUB( 0, -1, 0, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
00543      $                INFO )
00544          CALL CHKXER( 'ZGBEQUB', INFOT, NOUT, LERR, OK )
00545          INFOT = 3
00546          CALL ZGBEQUB( 1, 1, -1, 0, A, 1, R1, R2, RCOND, CCOND, ANRM,
00547      $                INFO )
00548          CALL CHKXER( 'ZGBEQUB', INFOT, NOUT, LERR, OK )
00549          INFOT = 4
00550          CALL ZGBEQUB( 1, 1, 0, -1, A, 1, R1, R2, RCOND, CCOND, ANRM,
00551      $                INFO )
00552          CALL CHKXER( 'ZGBEQUB', INFOT, NOUT, LERR, OK )
00553          INFOT = 6
00554          CALL ZGBEQUB( 2, 2, 1, 1, A, 2, R1, R2, RCOND, CCOND, ANRM,
00555      $                INFO )
00556          CALL CHKXER( 'ZGBEQUB', INFOT, NOUT, LERR, OK )
00557       END IF
00558 *
00559 *     Print a summary line.
00560 *
00561       CALL ALAESM( PATH, OK, NOUT )
00562 *
00563       RETURN
00564 *
00565 *     End of ZERRGE
00566 *
00567       END
 All Files Functions