1*> \brief \b DERRRFP 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 DERRRFP( NUNIT ) 12* 13* .. Scalar Arguments .. 14* INTEGER NUNIT 15* .. 16* 17* 18*> \par Purpose: 19* ============= 20*> 21*> \verbatim 22*> 23*> DERRRFP tests the error exits for the DOUBLE PRECISION driver routines 24*> for solving linear systems of equations. 25*> 26*> DDRVRFP tests the DOUBLE PRECISION LAPACK RFP routines: 27*> DTFSM, DTFTRI, DSFRK, DTFTTP, DTFTTR, DPFTRF, DPFTRS, DTPTTF, 28*> DTPTTR, DTRTTF, and DTRTTP 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*> \ingroup double_lin 49* 50* ===================================================================== 51 SUBROUTINE DERRRFP( NUNIT ) 52* 53* -- LAPACK test routine -- 54* -- LAPACK is a software package provided by Univ. of Tennessee, -- 55* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 56* 57* .. Scalar Arguments .. 58 INTEGER NUNIT 59* .. 60* 61* ===================================================================== 62* 63* .. 64* .. Local Scalars .. 65 INTEGER INFO 66 DOUBLE PRECISION ALPHA, BETA 67* .. 68* .. Local Arrays .. 69 DOUBLE PRECISION A( 1, 1), B( 1, 1) 70* .. 71* .. External Subroutines .. 72 EXTERNAL CHKXER, DTFSM, DTFTRI, DSFRK, DTFTTP, DTFTTR, 73 + DPFTRI, DPFTRF, DPFTRS, DTPTTF, DTPTTR, DTRTTF, 74 + DTRTTP 75* .. 76* .. Scalars in Common .. 77 LOGICAL LERR, OK 78 CHARACTER*32 SRNAMT 79 INTEGER INFOT, NOUT 80* .. 81* .. Common blocks .. 82 COMMON / INFOC / INFOT, NOUT, OK, LERR 83 COMMON / SRNAMC / SRNAMT 84* .. 85* .. Executable Statements .. 86* 87 NOUT = NUNIT 88 OK = .TRUE. 89 A( 1, 1 ) = 1.0D+0 90 B( 1, 1 ) = 1.0D+0 91 ALPHA = 1.0D+0 92 BETA = 1.0D+0 93* 94 SRNAMT = 'DPFTRF' 95 INFOT = 1 96 CALL DPFTRF( '/', 'U', 0, A, INFO ) 97 CALL CHKXER( 'DPFTRF', INFOT, NOUT, LERR, OK ) 98 INFOT = 2 99 CALL DPFTRF( 'N', '/', 0, A, INFO ) 100 CALL CHKXER( 'DPFTRF', INFOT, NOUT, LERR, OK ) 101 INFOT = 3 102 CALL DPFTRF( 'N', 'U', -1, A, INFO ) 103 CALL CHKXER( 'DPFTRF', INFOT, NOUT, LERR, OK ) 104* 105 SRNAMT = 'DPFTRS' 106 INFOT = 1 107 CALL DPFTRS( '/', 'U', 0, 0, A, B, 1, INFO ) 108 CALL CHKXER( 'DPFTRS', INFOT, NOUT, LERR, OK ) 109 INFOT = 2 110 CALL DPFTRS( 'N', '/', 0, 0, A, B, 1, INFO ) 111 CALL CHKXER( 'DPFTRS', INFOT, NOUT, LERR, OK ) 112 INFOT = 3 113 CALL DPFTRS( 'N', 'U', -1, 0, A, B, 1, INFO ) 114 CALL CHKXER( 'DPFTRS', INFOT, NOUT, LERR, OK ) 115 INFOT = 4 116 CALL DPFTRS( 'N', 'U', 0, -1, A, B, 1, INFO ) 117 CALL CHKXER( 'DPFTRS', INFOT, NOUT, LERR, OK ) 118 INFOT = 7 119 CALL DPFTRS( 'N', 'U', 0, 0, A, B, 0, INFO ) 120 CALL CHKXER( 'DPFTRS', INFOT, NOUT, LERR, OK ) 121* 122 SRNAMT = 'DPFTRI' 123 INFOT = 1 124 CALL DPFTRI( '/', 'U', 0, A, INFO ) 125 CALL CHKXER( 'DPFTRI', INFOT, NOUT, LERR, OK ) 126 INFOT = 2 127 CALL DPFTRI( 'N', '/', 0, A, INFO ) 128 CALL CHKXER( 'DPFTRI', INFOT, NOUT, LERR, OK ) 129 INFOT = 3 130 CALL DPFTRI( 'N', 'U', -1, A, INFO ) 131 CALL CHKXER( 'DPFTRI', INFOT, NOUT, LERR, OK ) 132* 133 SRNAMT = 'DTFSM ' 134 INFOT = 1 135 CALL DTFSM( '/', 'L', 'U', 'T', 'U', 0, 0, ALPHA, A, B, 1 ) 136 CALL CHKXER( 'DTFSM ', INFOT, NOUT, LERR, OK ) 137 INFOT = 2 138 CALL DTFSM( 'N', '/', 'U', 'T', 'U', 0, 0, ALPHA, A, B, 1 ) 139 CALL CHKXER( 'DTFSM ', INFOT, NOUT, LERR, OK ) 140 INFOT = 3 141 CALL DTFSM( 'N', 'L', '/', 'T', 'U', 0, 0, ALPHA, A, B, 1 ) 142 CALL CHKXER( 'DTFSM ', INFOT, NOUT, LERR, OK ) 143 INFOT = 4 144 CALL DTFSM( 'N', 'L', 'U', '/', 'U', 0, 0, ALPHA, A, B, 1 ) 145 CALL CHKXER( 'DTFSM ', INFOT, NOUT, LERR, OK ) 146 INFOT = 5 147 CALL DTFSM( 'N', 'L', 'U', 'T', '/', 0, 0, ALPHA, A, B, 1 ) 148 CALL CHKXER( 'DTFSM ', INFOT, NOUT, LERR, OK ) 149 INFOT = 6 150 CALL DTFSM( 'N', 'L', 'U', 'T', 'U', -1, 0, ALPHA, A, B, 1 ) 151 CALL CHKXER( 'DTFSM ', INFOT, NOUT, LERR, OK ) 152 INFOT = 7 153 CALL DTFSM( 'N', 'L', 'U', 'T', 'U', 0, -1, ALPHA, A, B, 1 ) 154 CALL CHKXER( 'DTFSM ', INFOT, NOUT, LERR, OK ) 155 INFOT = 11 156 CALL DTFSM( 'N', 'L', 'U', 'T', 'U', 0, 0, ALPHA, A, B, 0 ) 157 CALL CHKXER( 'DTFSM ', INFOT, NOUT, LERR, OK ) 158* 159 SRNAMT = 'DTFTRI' 160 INFOT = 1 161 CALL DTFTRI( '/', 'L', 'N', 0, A, INFO ) 162 CALL CHKXER( 'DTFTRI', INFOT, NOUT, LERR, OK ) 163 INFOT = 2 164 CALL DTFTRI( 'N', '/', 'N', 0, A, INFO ) 165 CALL CHKXER( 'DTFTRI', INFOT, NOUT, LERR, OK ) 166 INFOT = 3 167 CALL DTFTRI( 'N', 'L', '/', 0, A, INFO ) 168 CALL CHKXER( 'DTFTRI', INFOT, NOUT, LERR, OK ) 169 INFOT = 4 170 CALL DTFTRI( 'N', 'L', 'N', -1, A, INFO ) 171 CALL CHKXER( 'DTFTRI', INFOT, NOUT, LERR, OK ) 172* 173 SRNAMT = 'DTFTTR' 174 INFOT = 1 175 CALL DTFTTR( '/', 'U', 0, A, B, 1, INFO ) 176 CALL CHKXER( 'DTFTTR', INFOT, NOUT, LERR, OK ) 177 INFOT = 2 178 CALL DTFTTR( 'N', '/', 0, A, B, 1, INFO ) 179 CALL CHKXER( 'DTFTTR', INFOT, NOUT, LERR, OK ) 180 INFOT = 3 181 CALL DTFTTR( 'N', 'U', -1, A, B, 1, INFO ) 182 CALL CHKXER( 'DTFTTR', INFOT, NOUT, LERR, OK ) 183 INFOT = 6 184 CALL DTFTTR( 'N', 'U', 0, A, B, 0, INFO ) 185 CALL CHKXER( 'DTFTTR', INFOT, NOUT, LERR, OK ) 186* 187 SRNAMT = 'DTRTTF' 188 INFOT = 1 189 CALL DTRTTF( '/', 'U', 0, A, 1, B, INFO ) 190 CALL CHKXER( 'DTRTTF', INFOT, NOUT, LERR, OK ) 191 INFOT = 2 192 CALL DTRTTF( 'N', '/', 0, A, 1, B, INFO ) 193 CALL CHKXER( 'DTRTTF', INFOT, NOUT, LERR, OK ) 194 INFOT = 3 195 CALL DTRTTF( 'N', 'U', -1, A, 1, B, INFO ) 196 CALL CHKXER( 'DTRTTF', INFOT, NOUT, LERR, OK ) 197 INFOT = 5 198 CALL DTRTTF( 'N', 'U', 0, A, 0, B, INFO ) 199 CALL CHKXER( 'DTRTTF', INFOT, NOUT, LERR, OK ) 200* 201 SRNAMT = 'DTFTTP' 202 INFOT = 1 203 CALL DTFTTP( '/', 'U', 0, A, B, INFO ) 204 CALL CHKXER( 'DTFTTP', INFOT, NOUT, LERR, OK ) 205 INFOT = 2 206 CALL DTFTTP( 'N', '/', 0, A, B, INFO ) 207 CALL CHKXER( 'DTFTTP', INFOT, NOUT, LERR, OK ) 208 INFOT = 3 209 CALL DTFTTP( 'N', 'U', -1, A, B, INFO ) 210 CALL CHKXER( 'DTFTTP', INFOT, NOUT, LERR, OK ) 211* 212 SRNAMT = 'DTPTTF' 213 INFOT = 1 214 CALL DTPTTF( '/', 'U', 0, A, B, INFO ) 215 CALL CHKXER( 'DTPTTF', INFOT, NOUT, LERR, OK ) 216 INFOT = 2 217 CALL DTPTTF( 'N', '/', 0, A, B, INFO ) 218 CALL CHKXER( 'DTPTTF', INFOT, NOUT, LERR, OK ) 219 INFOT = 3 220 CALL DTPTTF( 'N', 'U', -1, A, B, INFO ) 221 CALL CHKXER( 'DTPTTF', INFOT, NOUT, LERR, OK ) 222* 223 SRNAMT = 'DTRTTP' 224 INFOT = 1 225 CALL DTRTTP( '/', 0, A, 1, B, INFO ) 226 CALL CHKXER( 'DTRTTP', INFOT, NOUT, LERR, OK ) 227 INFOT = 2 228 CALL DTRTTP( 'U', -1, A, 1, B, INFO ) 229 CALL CHKXER( 'DTRTTP', INFOT, NOUT, LERR, OK ) 230 INFOT = 4 231 CALL DTRTTP( 'U', 0, A, 0, B, INFO ) 232 CALL CHKXER( 'DTRTTP', INFOT, NOUT, LERR, OK ) 233* 234 SRNAMT = 'DTPTTR' 235 INFOT = 1 236 CALL DTPTTR( '/', 0, A, B, 1, INFO ) 237 CALL CHKXER( 'DTPTTR', INFOT, NOUT, LERR, OK ) 238 INFOT = 2 239 CALL DTPTTR( 'U', -1, A, B, 1, INFO ) 240 CALL CHKXER( 'DTPTTR', INFOT, NOUT, LERR, OK ) 241 INFOT = 5 242 CALL DTPTTR( 'U', 0, A, B, 0, INFO ) 243 CALL CHKXER( 'DTPTTR', INFOT, NOUT, LERR, OK ) 244* 245 SRNAMT = 'DSFRK ' 246 INFOT = 1 247 CALL DSFRK( '/', 'U', 'N', 0, 0, ALPHA, A, 1, BETA, B ) 248 CALL CHKXER( 'DSFRK ', INFOT, NOUT, LERR, OK ) 249 INFOT = 2 250 CALL DSFRK( 'N', '/', 'N', 0, 0, ALPHA, A, 1, BETA, B ) 251 CALL CHKXER( 'DSFRK ', INFOT, NOUT, LERR, OK ) 252 INFOT = 3 253 CALL DSFRK( 'N', 'U', '/', 0, 0, ALPHA, A, 1, BETA, B ) 254 CALL CHKXER( 'DSFRK ', INFOT, NOUT, LERR, OK ) 255 INFOT = 4 256 CALL DSFRK( 'N', 'U', 'N', -1, 0, ALPHA, A, 1, BETA, B ) 257 CALL CHKXER( 'DSFRK ', INFOT, NOUT, LERR, OK ) 258 INFOT = 5 259 CALL DSFRK( 'N', 'U', 'N', 0, -1, ALPHA, A, 1, BETA, B ) 260 CALL CHKXER( 'DSFRK ', INFOT, NOUT, LERR, OK ) 261 INFOT = 8 262 CALL DSFRK( 'N', 'U', 'N', 0, 0, ALPHA, A, 0, BETA, B ) 263 CALL CHKXER( 'DSFRK ', INFOT, NOUT, LERR, OK ) 264* 265* Print a summary line. 266* 267 IF( OK ) THEN 268 WRITE( NOUT, FMT = 9999 ) 269 ELSE 270 WRITE( NOUT, FMT = 9998 ) 271 END IF 272* 273 9999 FORMAT( 1X, 'DOUBLE PRECISION RFP routines passed the tests of ', 274 $ 'the error exits' ) 275 9998 FORMAT( ' *** RFP routines failed the tests of the error ', 276 $ 'exits ***' ) 277 RETURN 278* 279* End of DERRRFP 280* 281 END 282