LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
zerrqr.f
Go to the documentation of this file.
00001 *> \brief \b ZERRQR
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 ZERRQR( 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 *> ZERRQR tests the error exits for the COMPLEX*16 routines
00025 *> that use the QR decomposition of a general matrix.
00026 *> \endverbatim
00027 *
00028 *  Arguments:
00029 *  ==========
00030 *
00031 *> \param[in] PATH
00032 *> \verbatim
00033 *>          PATH is CHARACTER*3
00034 *>          The LAPACK path name for the routines to be tested.
00035 *> \endverbatim
00036 *>
00037 *> \param[in] NUNIT
00038 *> \verbatim
00039 *>          NUNIT is INTEGER
00040 *>          The unit number for output.
00041 *> \endverbatim
00042 *
00043 *  Authors:
00044 *  ========
00045 *
00046 *> \author Univ. of Tennessee 
00047 *> \author Univ. of California Berkeley 
00048 *> \author Univ. of Colorado Denver 
00049 *> \author NAG Ltd. 
00050 *
00051 *> \date November 2011
00052 *
00053 *> \ingroup complex16_lin
00054 *
00055 *  =====================================================================
00056       SUBROUTINE ZERRQR( PATH, NUNIT )
00057 *
00058 *  -- LAPACK test routine ((version 3.4.0) --
00059 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00060 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00061 *     November 2011
00062 *
00063 *     .. Scalar Arguments ..
00064       CHARACTER*3        PATH
00065       INTEGER            NUNIT
00066 *     ..
00067 *
00068 *  =====================================================================
00069 *
00070 *     .. Parameters ..
00071       INTEGER            NMAX
00072       PARAMETER          ( NMAX = 2 )
00073 *     ..
00074 *     .. Local Scalars ..
00075       INTEGER            I, INFO, J
00076 *     ..
00077 *     .. Local Arrays ..
00078       COMPLEX*16         A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00079      $                   W( NMAX ), X( NMAX )
00080 *     ..
00081 *     .. External Subroutines ..
00082       EXTERNAL           ALAESM, CHKXER, ZGEQR2, ZGEQR2P, ZGEQRF,
00083      $                   ZGEQRFP, ZGEQRS, ZUNG2R, ZUNGQR, ZUNM2R,
00084      $                   ZUNMQR
00085 *     ..
00086 *     .. Scalars in Common ..
00087       LOGICAL            LERR, OK
00088       CHARACTER*32       SRNAMT
00089       INTEGER            INFOT, NOUT
00090 *     ..
00091 *     .. Common blocks ..
00092       COMMON             / INFOC / INFOT, NOUT, OK, LERR
00093       COMMON             / SRNAMC / SRNAMT
00094 *     ..
00095 *     .. Intrinsic Functions ..
00096       INTRINSIC          DBLE, DCMPLX
00097 *     ..
00098 *     .. Executable Statements ..
00099 *
00100       NOUT = NUNIT
00101       WRITE( NOUT, FMT = * )
00102 *
00103 *     Set the variables to innocuous values.
00104 *
00105       DO 20 J = 1, NMAX
00106          DO 10 I = 1, NMAX
00107             A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
00108      $                  -1.D0 / DBLE( I+J ) )
00109             AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
00110      $                   -1.D0 / DBLE( I+J ) )
00111    10    CONTINUE
00112          B( J ) = 0.D0
00113          W( J ) = 0.D0
00114          X( J ) = 0.D0
00115    20 CONTINUE
00116       OK = .TRUE.
00117 *
00118 *     Error exits for QR factorization
00119 *
00120 *     ZGEQRF
00121 *
00122       SRNAMT = 'ZGEQRF'
00123       INFOT = 1
00124       CALL ZGEQRF( -1, 0, A, 1, B, W, 1, INFO )
00125       CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
00126       INFOT = 2
00127       CALL ZGEQRF( 0, -1, A, 1, B, W, 1, INFO )
00128       CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
00129       INFOT = 4
00130       CALL ZGEQRF( 2, 1, A, 1, B, W, 1, INFO )
00131       CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
00132       INFOT = 7
00133       CALL ZGEQRF( 1, 2, A, 1, B, W, 1, INFO )
00134       CALL CHKXER( 'ZGEQRF', INFOT, NOUT, LERR, OK )
00135 *
00136 *     ZGEQRFP
00137 *
00138       SRNAMT = 'ZGEQRFP'
00139       INFOT = 1
00140       CALL ZGEQRFP( -1, 0, A, 1, B, W, 1, INFO )
00141       CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
00142       INFOT = 2
00143       CALL ZGEQRFP( 0, -1, A, 1, B, W, 1, INFO )
00144       CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
00145       INFOT = 4
00146       CALL ZGEQRFP( 2, 1, A, 1, B, W, 1, INFO )
00147       CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
00148       INFOT = 7
00149       CALL ZGEQRFP( 1, 2, A, 1, B, W, 1, INFO )
00150       CALL CHKXER( 'ZGEQRFP', INFOT, NOUT, LERR, OK )
00151 *
00152 *     ZGEQR2
00153 *
00154       SRNAMT = 'ZGEQR2'
00155       INFOT = 1
00156       CALL ZGEQR2( -1, 0, A, 1, B, W, INFO )
00157       CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
00158       INFOT = 2
00159       CALL ZGEQR2( 0, -1, A, 1, B, W, INFO )
00160       CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
00161       INFOT = 4
00162       CALL ZGEQR2( 2, 1, A, 1, B, W, INFO )
00163       CALL CHKXER( 'ZGEQR2', INFOT, NOUT, LERR, OK )
00164 *
00165 *     ZGEQR2P
00166 *
00167       SRNAMT = 'ZGEQR2P'
00168       INFOT = 1
00169       CALL ZGEQR2P( -1, 0, A, 1, B, W, INFO )
00170       CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
00171       INFOT = 2
00172       CALL ZGEQR2P( 0, -1, A, 1, B, W, INFO )
00173       CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
00174       INFOT = 4
00175       CALL ZGEQR2P( 2, 1, A, 1, B, W, INFO )
00176       CALL CHKXER( 'ZGEQR2P', INFOT, NOUT, LERR, OK )
00177 *
00178 *     ZGEQRS
00179 *
00180       SRNAMT = 'ZGEQRS'
00181       INFOT = 1
00182       CALL ZGEQRS( -1, 0, 0, A, 1, X, B, 1, W, 1, INFO )
00183       CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
00184       INFOT = 2
00185       CALL ZGEQRS( 0, -1, 0, A, 1, X, B, 1, W, 1, INFO )
00186       CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
00187       INFOT = 2
00188       CALL ZGEQRS( 1, 2, 0, A, 2, X, B, 2, W, 1, INFO )
00189       CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
00190       INFOT = 3
00191       CALL ZGEQRS( 0, 0, -1, A, 1, X, B, 1, W, 1, INFO )
00192       CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
00193       INFOT = 5
00194       CALL ZGEQRS( 2, 1, 0, A, 1, X, B, 2, W, 1, INFO )
00195       CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
00196       INFOT = 8
00197       CALL ZGEQRS( 2, 1, 0, A, 2, X, B, 1, W, 1, INFO )
00198       CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
00199       INFOT = 10
00200       CALL ZGEQRS( 1, 1, 2, A, 1, X, B, 1, W, 1, INFO )
00201       CALL CHKXER( 'ZGEQRS', INFOT, NOUT, LERR, OK )
00202 *
00203 *     ZUNGQR
00204 *
00205       SRNAMT = 'ZUNGQR'
00206       INFOT = 1
00207       CALL ZUNGQR( -1, 0, 0, A, 1, X, W, 1, INFO )
00208       CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
00209       INFOT = 2
00210       CALL ZUNGQR( 0, -1, 0, A, 1, X, W, 1, INFO )
00211       CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
00212       INFOT = 2
00213       CALL ZUNGQR( 1, 2, 0, A, 1, X, W, 2, INFO )
00214       CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
00215       INFOT = 3
00216       CALL ZUNGQR( 0, 0, -1, A, 1, X, W, 1, INFO )
00217       CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
00218       INFOT = 3
00219       CALL ZUNGQR( 1, 1, 2, A, 1, X, W, 1, INFO )
00220       CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
00221       INFOT = 5
00222       CALL ZUNGQR( 2, 2, 0, A, 1, X, W, 2, INFO )
00223       CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
00224       INFOT = 8
00225       CALL ZUNGQR( 2, 2, 0, A, 2, X, W, 1, INFO )
00226       CALL CHKXER( 'ZUNGQR', INFOT, NOUT, LERR, OK )
00227 *
00228 *     ZUNG2R
00229 *
00230       SRNAMT = 'ZUNG2R'
00231       INFOT = 1
00232       CALL ZUNG2R( -1, 0, 0, A, 1, X, W, INFO )
00233       CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
00234       INFOT = 2
00235       CALL ZUNG2R( 0, -1, 0, A, 1, X, W, INFO )
00236       CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
00237       INFOT = 2
00238       CALL ZUNG2R( 1, 2, 0, A, 1, X, W, INFO )
00239       CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
00240       INFOT = 3
00241       CALL ZUNG2R( 0, 0, -1, A, 1, X, W, INFO )
00242       CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
00243       INFOT = 3
00244       CALL ZUNG2R( 2, 1, 2, A, 2, X, W, INFO )
00245       CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
00246       INFOT = 5
00247       CALL ZUNG2R( 2, 1, 0, A, 1, X, W, INFO )
00248       CALL CHKXER( 'ZUNG2R', INFOT, NOUT, LERR, OK )
00249 *
00250 *     ZUNMQR
00251 *
00252       SRNAMT = 'ZUNMQR'
00253       INFOT = 1
00254       CALL ZUNMQR( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00255       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00256       INFOT = 2
00257       CALL ZUNMQR( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00258       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00259       INFOT = 3
00260       CALL ZUNMQR( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00261       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00262       INFOT = 4
00263       CALL ZUNMQR( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, 1, INFO )
00264       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00265       INFOT = 5
00266       CALL ZUNMQR( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, 1, INFO )
00267       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00268       INFOT = 5
00269       CALL ZUNMQR( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, 1, INFO )
00270       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00271       INFOT = 5
00272       CALL ZUNMQR( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, 1, INFO )
00273       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00274       INFOT = 7
00275       CALL ZUNMQR( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00276       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00277       INFOT = 7
00278       CALL ZUNMQR( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00279       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00280       INFOT = 10
00281       CALL ZUNMQR( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, 1, INFO )
00282       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00283       INFOT = 12
00284       CALL ZUNMQR( 'L', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00285       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00286       INFOT = 12
00287       CALL ZUNMQR( 'R', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00288       CALL CHKXER( 'ZUNMQR', INFOT, NOUT, LERR, OK )
00289 *
00290 *     ZUNM2R
00291 *
00292       SRNAMT = 'ZUNM2R'
00293       INFOT = 1
00294       CALL ZUNM2R( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00295       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00296       INFOT = 2
00297       CALL ZUNM2R( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00298       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00299       INFOT = 3
00300       CALL ZUNM2R( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, INFO )
00301       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00302       INFOT = 4
00303       CALL ZUNM2R( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, INFO )
00304       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00305       INFOT = 5
00306       CALL ZUNM2R( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, INFO )
00307       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00308       INFOT = 5
00309       CALL ZUNM2R( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, INFO )
00310       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00311       INFOT = 5
00312       CALL ZUNM2R( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, INFO )
00313       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00314       INFOT = 7
00315       CALL ZUNM2R( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, INFO )
00316       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00317       INFOT = 7
00318       CALL ZUNM2R( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, INFO )
00319       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00320       INFOT = 10
00321       CALL ZUNM2R( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, INFO )
00322       CALL CHKXER( 'ZUNM2R', INFOT, NOUT, LERR, OK )
00323 *
00324 *     Print a summary line.
00325 *
00326       CALL ALAESM( PATH, OK, NOUT )
00327 *
00328       RETURN
00329 *
00330 *     End of ZERRQR
00331 *
00332       END
 All Files Functions