1*> \brief \b CERRRFP 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8* Definition: 9* =========== 10* 11* SUBROUTINE CERRRFP( NUNIT ) 12* 13* .. Scalar Arguments .. 14* INTEGER NUNIT 15* .. 16* 17* 18*> \par Purpose: 19* ============= 20*> 21*> \verbatim 22*> 23*> CERRRFP tests the error exits for the COMPLEX driver routines 24*> for solving linear systems of equations. 25*> 26*> CDRVRFP tests the COMPLEX LAPACK RFP routines: 27*> CTFSM, CTFTRI, CHFRK, CTFTTP, CTFTTR, CPFTRF, CPFTRS, CTPTTF, 28*> CTPTTR, CTRTTF, and CTRTTP 29*> \endverbatim 30* 31* Arguments: 32* ========== 33* 34*> \param[in] NUNIT 35*> \verbatim 36*> NUNIT is INTEGER 37*> The unit number for output. 38*> \endverbatim 39* 40* Authors: 41* ======== 42* 43*> \author Univ. of Tennessee 44*> \author Univ. of California Berkeley 45*> \author Univ. of Colorado Denver 46*> \author NAG Ltd. 47* 48*> \date December 2016 49* 50*> \ingroup complex_lin 51* 52* ===================================================================== 53 SUBROUTINE CERRRFP( NUNIT ) 54* 55* -- LAPACK test routine (version 3.7.0) -- 56* -- LAPACK is a software package provided by Univ. of Tennessee, -- 57* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 58* December 2016 59* 60* .. Scalar Arguments .. 61 INTEGER NUNIT 62* .. 63* 64* ===================================================================== 65* 66* .. 67* .. Local Scalars .. 68 INTEGER INFO 69 COMPLEX ALPHA, BETA 70* .. 71* .. Local Arrays .. 72 COMPLEX A( 1, 1), B( 1, 1) 73* .. 74* .. External Subroutines .. 75 EXTERNAL CHKXER, CTFSM, CTFTRI, CHFRK, CTFTTP, CTFTTR, 76 + CPFTRI, CPFTRF, CPFTRS, CTPTTF, CTPTTR, CTRTTF, 77 + CTRTTP 78* .. 79* .. Scalars in Common .. 80 LOGICAL LERR, OK 81 CHARACTER*32 SRNAMT 82 INTEGER INFOT, NOUT 83* .. 84* .. Intrinsic Functions .. 85 INTRINSIC CMPLX 86* .. 87* .. Common blocks .. 88 COMMON / INFOC / INFOT, NOUT, OK, LERR 89 COMMON / SRNAMC / SRNAMT 90* .. 91* .. Executable Statements .. 92* 93 NOUT = NUNIT 94 OK = .TRUE. 95 A( 1, 1 ) = CMPLX( 1.D0 , 1.D0 ) 96 B( 1, 1 ) = CMPLX( 1.D0 , 1.D0 ) 97 ALPHA = CMPLX( 1.D0 , 1.D0 ) 98 BETA = CMPLX( 1.D0 , 1.D0 ) 99* 100 SRNAMT = 'CPFTRF' 101 INFOT = 1 102 CALL CPFTRF( '/', 'U', 0, A, INFO ) 103 CALL CHKXER( 'CPFTRF', INFOT, NOUT, LERR, OK ) 104 INFOT = 2 105 CALL CPFTRF( 'N', '/', 0, A, INFO ) 106 CALL CHKXER( 'CPFTRF', INFOT, NOUT, LERR, OK ) 107 INFOT = 3 108 CALL CPFTRF( 'N', 'U', -1, A, INFO ) 109 CALL CHKXER( 'CPFTRF', INFOT, NOUT, LERR, OK ) 110* 111 SRNAMT = 'CPFTRS' 112 INFOT = 1 113 CALL CPFTRS( '/', 'U', 0, 0, A, B, 1, INFO ) 114 CALL CHKXER( 'CPFTRS', INFOT, NOUT, LERR, OK ) 115 INFOT = 2 116 CALL CPFTRS( 'N', '/', 0, 0, A, B, 1, INFO ) 117 CALL CHKXER( 'CPFTRS', INFOT, NOUT, LERR, OK ) 118 INFOT = 3 119 CALL CPFTRS( 'N', 'U', -1, 0, A, B, 1, INFO ) 120 CALL CHKXER( 'CPFTRS', INFOT, NOUT, LERR, OK ) 121 INFOT = 4 122 CALL CPFTRS( 'N', 'U', 0, -1, A, B, 1, INFO ) 123 CALL CHKXER( 'CPFTRS', INFOT, NOUT, LERR, OK ) 124 INFOT = 7 125 CALL CPFTRS( 'N', 'U', 0, 0, A, B, 0, INFO ) 126 CALL CHKXER( 'CPFTRS', INFOT, NOUT, LERR, OK ) 127* 128 SRNAMT = 'CPFTRI' 129 INFOT = 1 130 CALL CPFTRI( '/', 'U', 0, A, INFO ) 131 CALL CHKXER( 'CPFTRI', INFOT, NOUT, LERR, OK ) 132 INFOT = 2 133 CALL CPFTRI( 'N', '/', 0, A, INFO ) 134 CALL CHKXER( 'CPFTRI', INFOT, NOUT, LERR, OK ) 135 INFOT = 3 136 CALL CPFTRI( 'N', 'U', -1, A, INFO ) 137 CALL CHKXER( 'CPFTRI', INFOT, NOUT, LERR, OK ) 138* 139 SRNAMT = 'CTFSM ' 140 INFOT = 1 141 CALL CTFSM( '/', 'L', 'U', 'C', 'U', 0, 0, ALPHA, A, B, 1 ) 142 CALL CHKXER( 'CTFSM ', INFOT, NOUT, LERR, OK ) 143 INFOT = 2 144 CALL CTFSM( 'N', '/', 'U', 'C', 'U', 0, 0, ALPHA, A, B, 1 ) 145 CALL CHKXER( 'CTFSM ', INFOT, NOUT, LERR, OK ) 146 INFOT = 3 147 CALL CTFSM( 'N', 'L', '/', 'C', 'U', 0, 0, ALPHA, A, B, 1 ) 148 CALL CHKXER( 'CTFSM ', INFOT, NOUT, LERR, OK ) 149 INFOT = 4 150 CALL CTFSM( 'N', 'L', 'U', '/', 'U', 0, 0, ALPHA, A, B, 1 ) 151 CALL CHKXER( 'CTFSM ', INFOT, NOUT, LERR, OK ) 152 INFOT = 5 153 CALL CTFSM( 'N', 'L', 'U', 'C', '/', 0, 0, ALPHA, A, B, 1 ) 154 CALL CHKXER( 'CTFSM ', INFOT, NOUT, LERR, OK ) 155 INFOT = 6 156 CALL CTFSM( 'N', 'L', 'U', 'C', 'U', -1, 0, ALPHA, A, B, 1 ) 157 CALL CHKXER( 'CTFSM ', INFOT, NOUT, LERR, OK ) 158 INFOT = 7 159 CALL CTFSM( 'N', 'L', 'U', 'C', 'U', 0, -1, ALPHA, A, B, 1 ) 160 CALL CHKXER( 'CTFSM ', INFOT, NOUT, LERR, OK ) 161 INFOT = 11 162 CALL CTFSM( 'N', 'L', 'U', 'C', 'U', 0, 0, ALPHA, A, B, 0 ) 163 CALL CHKXER( 'CTFSM ', INFOT, NOUT, LERR, OK ) 164* 165 SRNAMT = 'CTFTRI' 166 INFOT = 1 167 CALL CTFTRI( '/', 'L', 'N', 0, A, INFO ) 168 CALL CHKXER( 'CTFTRI', INFOT, NOUT, LERR, OK ) 169 INFOT = 2 170 CALL CTFTRI( 'N', '/', 'N', 0, A, INFO ) 171 CALL CHKXER( 'CTFTRI', INFOT, NOUT, LERR, OK ) 172 INFOT = 3 173 CALL CTFTRI( 'N', 'L', '/', 0, A, INFO ) 174 CALL CHKXER( 'CTFTRI', INFOT, NOUT, LERR, OK ) 175 INFOT = 4 176 CALL CTFTRI( 'N', 'L', 'N', -1, A, INFO ) 177 CALL CHKXER( 'CTFTRI', INFOT, NOUT, LERR, OK ) 178* 179 SRNAMT = 'CTFTTR' 180 INFOT = 1 181 CALL CTFTTR( '/', 'U', 0, A, B, 1, INFO ) 182 CALL CHKXER( 'CTFTTR', INFOT, NOUT, LERR, OK ) 183 INFOT = 2 184 CALL CTFTTR( 'N', '/', 0, A, B, 1, INFO ) 185 CALL CHKXER( 'CTFTTR', INFOT, NOUT, LERR, OK ) 186 INFOT = 3 187 CALL CTFTTR( 'N', 'U', -1, A, B, 1, INFO ) 188 CALL CHKXER( 'CTFTTR', INFOT, NOUT, LERR, OK ) 189 INFOT = 6 190 CALL CTFTTR( 'N', 'U', 0, A, B, 0, INFO ) 191 CALL CHKXER( 'CTFTTR', INFOT, NOUT, LERR, OK ) 192* 193 SRNAMT = 'CTRTTF' 194 INFOT = 1 195 CALL CTRTTF( '/', 'U', 0, A, 1, B, INFO ) 196 CALL CHKXER( 'CTRTTF', INFOT, NOUT, LERR, OK ) 197 INFOT = 2 198 CALL CTRTTF( 'N', '/', 0, A, 1, B, INFO ) 199 CALL CHKXER( 'CTRTTF', INFOT, NOUT, LERR, OK ) 200 INFOT = 3 201 CALL CTRTTF( 'N', 'U', -1, A, 1, B, INFO ) 202 CALL CHKXER( 'CTRTTF', INFOT, NOUT, LERR, OK ) 203 INFOT = 5 204 CALL CTRTTF( 'N', 'U', 0, A, 0, B, INFO ) 205 CALL CHKXER( 'CTRTTF', INFOT, NOUT, LERR, OK ) 206* 207 SRNAMT = 'CTFTTP' 208 INFOT = 1 209 CALL CTFTTP( '/', 'U', 0, A, B, INFO ) 210 CALL CHKXER( 'CTFTTP', INFOT, NOUT, LERR, OK ) 211 INFOT = 2 212 CALL CTFTTP( 'N', '/', 0, A, B, INFO ) 213 CALL CHKXER( 'CTFTTP', INFOT, NOUT, LERR, OK ) 214 INFOT = 3 215 CALL CTFTTP( 'N', 'U', -1, A, B, INFO ) 216 CALL CHKXER( 'CTFTTP', INFOT, NOUT, LERR, OK ) 217* 218 SRNAMT = 'CTPTTF' 219 INFOT = 1 220 CALL CTPTTF( '/', 'U', 0, A, B, INFO ) 221 CALL CHKXER( 'CTPTTF', INFOT, NOUT, LERR, OK ) 222 INFOT = 2 223 CALL CTPTTF( 'N', '/', 0, A, B, INFO ) 224 CALL CHKXER( 'CTPTTF', INFOT, NOUT, LERR, OK ) 225 INFOT = 3 226 CALL CTPTTF( 'N', 'U', -1, A, B, INFO ) 227 CALL CHKXER( 'CTPTTF', INFOT, NOUT, LERR, OK ) 228* 229 SRNAMT = 'CTRTTP' 230 INFOT = 1 231 CALL CTRTTP( '/', 0, A, 1, B, INFO ) 232 CALL CHKXER( 'CTRTTP', INFOT, NOUT, LERR, OK ) 233 INFOT = 2 234 CALL CTRTTP( 'U', -1, A, 1, B, INFO ) 235 CALL CHKXER( 'CTRTTP', INFOT, NOUT, LERR, OK ) 236 INFOT = 4 237 CALL CTRTTP( 'U', 0, A, 0, B, INFO ) 238 CALL CHKXER( 'CTRTTP', INFOT, NOUT, LERR, OK ) 239* 240 SRNAMT = 'CTPTTR' 241 INFOT = 1 242 CALL CTPTTR( '/', 0, A, B, 1, INFO ) 243 CALL CHKXER( 'CTPTTR', INFOT, NOUT, LERR, OK ) 244 INFOT = 2 245 CALL CTPTTR( 'U', -1, A, B, 1, INFO ) 246 CALL CHKXER( 'CTPTTR', INFOT, NOUT, LERR, OK ) 247 INFOT = 5 248 CALL CTPTTR( 'U', 0, A, B, 0, INFO ) 249 CALL CHKXER( 'CTPTTR', INFOT, NOUT, LERR, OK ) 250* 251 SRNAMT = 'CHFRK ' 252 INFOT = 1 253 CALL CHFRK( '/', 'U', 'N', 0, 0, ALPHA, A, 1, BETA, B ) 254 CALL CHKXER( 'CHFRK ', INFOT, NOUT, LERR, OK ) 255 INFOT = 2 256 CALL CHFRK( 'N', '/', 'N', 0, 0, ALPHA, A, 1, BETA, B ) 257 CALL CHKXER( 'CHFRK ', INFOT, NOUT, LERR, OK ) 258 INFOT = 3 259 CALL CHFRK( 'N', 'U', '/', 0, 0, ALPHA, A, 1, BETA, B ) 260 CALL CHKXER( 'CHFRK ', INFOT, NOUT, LERR, OK ) 261 INFOT = 4 262 CALL CHFRK( 'N', 'U', 'N', -1, 0, ALPHA, A, 1, BETA, B ) 263 CALL CHKXER( 'CHFRK ', INFOT, NOUT, LERR, OK ) 264 INFOT = 5 265 CALL CHFRK( 'N', 'U', 'N', 0, -1, ALPHA, A, 1, BETA, B ) 266 CALL CHKXER( 'CHFRK ', INFOT, NOUT, LERR, OK ) 267 INFOT = 8 268 CALL CHFRK( 'N', 'U', 'N', 0, 0, ALPHA, A, 0, BETA, B ) 269 CALL CHKXER( 'CHFRK ', INFOT, NOUT, LERR, OK ) 270* 271* Print a summary line. 272* 273 IF( OK ) THEN 274 WRITE( NOUT, FMT = 9999 ) 275 ELSE 276 WRITE( NOUT, FMT = 9998 ) 277 END IF 278* 279 9999 FORMAT( 1X, 'COMPLEX RFP routines passed the tests of the ', 280 $ 'error exits' ) 281 9998 FORMAT( ' *** RFP routines failed the tests of the error ', 282 $ 'exits ***' ) 283 RETURN 284* 285* End of CERRRFP 286* 287 END 288