LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
cerrqr.f
Go to the documentation of this file.
00001 *> \brief \b CERRQR
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 CERRQR( 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 *> CERRQR tests the error exits for the COMPLEX 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 complex_lin
00054 *
00055 *  =====================================================================
00056       SUBROUTINE CERRQR( 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            A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00079      $                   W( NMAX ), X( NMAX )
00080 *     ..
00081 *     .. External Subroutines ..
00082       EXTERNAL           ALAESM, CGEQR2, CGEQR2P, CGEQRF, CGEQRFP,
00083      $                   CGEQRS, CHKXER, CUNG2R, CUNGQR, CUNM2R,
00084      $                   CUNMQR
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          CMPLX, REAL
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 ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
00108             AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) )
00109    10    CONTINUE
00110          B( J ) = 0.
00111          W( J ) = 0.
00112          X( J ) = 0.
00113    20 CONTINUE
00114       OK = .TRUE.
00115 *
00116 *     Error exits for QR factorization
00117 *
00118 *     CGEQRF
00119 *
00120       SRNAMT = 'CGEQRF'
00121       INFOT = 1
00122       CALL CGEQRF( -1, 0, A, 1, B, W, 1, INFO )
00123       CALL CHKXER( 'CGEQRF', INFOT, NOUT, LERR, OK )
00124       INFOT = 2
00125       CALL CGEQRF( 0, -1, A, 1, B, W, 1, INFO )
00126       CALL CHKXER( 'CGEQRF', INFOT, NOUT, LERR, OK )
00127       INFOT = 4
00128       CALL CGEQRF( 2, 1, A, 1, B, W, 1, INFO )
00129       CALL CHKXER( 'CGEQRF', INFOT, NOUT, LERR, OK )
00130       INFOT = 7
00131       CALL CGEQRF( 1, 2, A, 1, B, W, 1, INFO )
00132       CALL CHKXER( 'CGEQRF', INFOT, NOUT, LERR, OK )
00133 *
00134 *     CGEQRFP
00135 *
00136       SRNAMT = 'CGEQRFP'
00137       INFOT = 1
00138       CALL CGEQRFP( -1, 0, A, 1, B, W, 1, INFO )
00139       CALL CHKXER( 'CGEQRFP', INFOT, NOUT, LERR, OK )
00140       INFOT = 2
00141       CALL CGEQRFP( 0, -1, A, 1, B, W, 1, INFO )
00142       CALL CHKXER( 'CGEQRFP', INFOT, NOUT, LERR, OK )
00143       INFOT = 4
00144       CALL CGEQRFP( 2, 1, A, 1, B, W, 1, INFO )
00145       CALL CHKXER( 'CGEQRFP', INFOT, NOUT, LERR, OK )
00146       INFOT = 7
00147       CALL CGEQRFP( 1, 2, A, 1, B, W, 1, INFO )
00148       CALL CHKXER( 'CGEQRFP', INFOT, NOUT, LERR, OK )
00149 *
00150 *     CGEQR2
00151 *
00152       SRNAMT = 'CGEQR2'
00153       INFOT = 1
00154       CALL CGEQR2( -1, 0, A, 1, B, W, INFO )
00155       CALL CHKXER( 'CGEQR2', INFOT, NOUT, LERR, OK )
00156       INFOT = 2
00157       CALL CGEQR2( 0, -1, A, 1, B, W, INFO )
00158       CALL CHKXER( 'CGEQR2', INFOT, NOUT, LERR, OK )
00159       INFOT = 4
00160       CALL CGEQR2( 2, 1, A, 1, B, W, INFO )
00161       CALL CHKXER( 'CGEQR2', INFOT, NOUT, LERR, OK )
00162 *
00163 *     CGEQR2P
00164 *
00165       SRNAMT = 'CGEQR2P'
00166       INFOT = 1
00167       CALL CGEQR2P( -1, 0, A, 1, B, W, INFO )
00168       CALL CHKXER( 'CGEQR2P', INFOT, NOUT, LERR, OK )
00169       INFOT = 2
00170       CALL CGEQR2P( 0, -1, A, 1, B, W, INFO )
00171       CALL CHKXER( 'CGEQR2P', INFOT, NOUT, LERR, OK )
00172       INFOT = 4
00173       CALL CGEQR2P( 2, 1, A, 1, B, W, INFO )
00174       CALL CHKXER( 'CGEQR2P', INFOT, NOUT, LERR, OK )
00175 *
00176 *     CGEQRS
00177 *
00178       SRNAMT = 'CGEQRS'
00179       INFOT = 1
00180       CALL CGEQRS( -1, 0, 0, A, 1, X, B, 1, W, 1, INFO )
00181       CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00182       INFOT = 2
00183       CALL CGEQRS( 0, -1, 0, A, 1, X, B, 1, W, 1, INFO )
00184       CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00185       INFOT = 2
00186       CALL CGEQRS( 1, 2, 0, A, 2, X, B, 2, W, 1, INFO )
00187       CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00188       INFOT = 3
00189       CALL CGEQRS( 0, 0, -1, A, 1, X, B, 1, W, 1, INFO )
00190       CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00191       INFOT = 5
00192       CALL CGEQRS( 2, 1, 0, A, 1, X, B, 2, W, 1, INFO )
00193       CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00194       INFOT = 8
00195       CALL CGEQRS( 2, 1, 0, A, 2, X, B, 1, W, 1, INFO )
00196       CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00197       INFOT = 10
00198       CALL CGEQRS( 1, 1, 2, A, 1, X, B, 1, W, 1, INFO )
00199       CALL CHKXER( 'CGEQRS', INFOT, NOUT, LERR, OK )
00200 *
00201 *     CUNGQR
00202 *
00203       SRNAMT = 'CUNGQR'
00204       INFOT = 1
00205       CALL CUNGQR( -1, 0, 0, A, 1, X, W, 1, INFO )
00206       CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00207       INFOT = 2
00208       CALL CUNGQR( 0, -1, 0, A, 1, X, W, 1, INFO )
00209       CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00210       INFOT = 2
00211       CALL CUNGQR( 1, 2, 0, A, 1, X, W, 2, INFO )
00212       CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00213       INFOT = 3
00214       CALL CUNGQR( 0, 0, -1, A, 1, X, W, 1, INFO )
00215       CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00216       INFOT = 3
00217       CALL CUNGQR( 1, 1, 2, A, 1, X, W, 1, INFO )
00218       CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00219       INFOT = 5
00220       CALL CUNGQR( 2, 2, 0, A, 1, X, W, 2, INFO )
00221       CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00222       INFOT = 8
00223       CALL CUNGQR( 2, 2, 0, A, 2, X, W, 1, INFO )
00224       CALL CHKXER( 'CUNGQR', INFOT, NOUT, LERR, OK )
00225 *
00226 *     CUNG2R
00227 *
00228       SRNAMT = 'CUNG2R'
00229       INFOT = 1
00230       CALL CUNG2R( -1, 0, 0, A, 1, X, W, INFO )
00231       CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00232       INFOT = 2
00233       CALL CUNG2R( 0, -1, 0, A, 1, X, W, INFO )
00234       CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00235       INFOT = 2
00236       CALL CUNG2R( 1, 2, 0, A, 1, X, W, INFO )
00237       CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00238       INFOT = 3
00239       CALL CUNG2R( 0, 0, -1, A, 1, X, W, INFO )
00240       CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00241       INFOT = 3
00242       CALL CUNG2R( 2, 1, 2, A, 2, X, W, INFO )
00243       CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00244       INFOT = 5
00245       CALL CUNG2R( 2, 1, 0, A, 1, X, W, INFO )
00246       CALL CHKXER( 'CUNG2R', INFOT, NOUT, LERR, OK )
00247 *
00248 *     CUNMQR
00249 *
00250       SRNAMT = 'CUNMQR'
00251       INFOT = 1
00252       CALL CUNMQR( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00253       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00254       INFOT = 2
00255       CALL CUNMQR( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00256       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00257       INFOT = 3
00258       CALL CUNMQR( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00259       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00260       INFOT = 4
00261       CALL CUNMQR( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, 1, INFO )
00262       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00263       INFOT = 5
00264       CALL CUNMQR( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, 1, INFO )
00265       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00266       INFOT = 5
00267       CALL CUNMQR( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, 1, INFO )
00268       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00269       INFOT = 5
00270       CALL CUNMQR( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, 1, INFO )
00271       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00272       INFOT = 7
00273       CALL CUNMQR( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00274       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00275       INFOT = 7
00276       CALL CUNMQR( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00277       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00278       INFOT = 10
00279       CALL CUNMQR( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, 1, INFO )
00280       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00281       INFOT = 12
00282       CALL CUNMQR( 'L', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00283       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00284       INFOT = 12
00285       CALL CUNMQR( 'R', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00286       CALL CHKXER( 'CUNMQR', INFOT, NOUT, LERR, OK )
00287 *
00288 *     CUNM2R
00289 *
00290       SRNAMT = 'CUNM2R'
00291       INFOT = 1
00292       CALL CUNM2R( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00293       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00294       INFOT = 2
00295       CALL CUNM2R( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00296       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00297       INFOT = 3
00298       CALL CUNM2R( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, INFO )
00299       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00300       INFOT = 4
00301       CALL CUNM2R( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, INFO )
00302       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00303       INFOT = 5
00304       CALL CUNM2R( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, INFO )
00305       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00306       INFOT = 5
00307       CALL CUNM2R( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, INFO )
00308       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00309       INFOT = 5
00310       CALL CUNM2R( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, INFO )
00311       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00312       INFOT = 7
00313       CALL CUNM2R( 'L', 'N', 2, 1, 0, A, 1, X, AF, 2, W, INFO )
00314       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00315       INFOT = 7
00316       CALL CUNM2R( 'R', 'N', 1, 2, 0, A, 1, X, AF, 1, W, INFO )
00317       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00318       INFOT = 10
00319       CALL CUNM2R( 'L', 'N', 2, 1, 0, A, 2, X, AF, 1, W, INFO )
00320       CALL CHKXER( 'CUNM2R', INFOT, NOUT, LERR, OK )
00321 *
00322 *     Print a summary line.
00323 *
00324       CALL ALAESM( PATH, OK, NOUT )
00325 *
00326       RETURN
00327 *
00328 *     End of CERRQR
00329 *
00330       END
 All Files Functions