00001 SUBROUTINE ALAHD( IOUNIT, PATH )
00002
00003
00004
00005
00006
00007
00008 CHARACTER*3 PATH
00009 INTEGER IOUNIT
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058 LOGICAL CORZ, SORD
00059 CHARACTER C1, C3
00060 CHARACTER*2 P2
00061 CHARACTER*4 EIGCNM
00062 CHARACTER*32 SUBNAM
00063 CHARACTER*9 SYM
00064
00065
00066 LOGICAL LSAME, LSAMEN
00067 EXTERNAL LSAME, LSAMEN
00068
00069
00070 INTRINSIC LEN_TRIM
00071
00072
00073
00074 IF( IOUNIT.LE.0 )
00075 $ RETURN
00076 C1 = PATH( 1: 1 )
00077 C3 = PATH( 3: 3 )
00078 P2 = PATH( 2: 3 )
00079 SORD = LSAME( C1, 'S' ) .OR. LSAME( C1, 'D' )
00080 CORZ = LSAME( C1, 'C' ) .OR. LSAME( C1, 'Z' )
00081 IF( .NOT.( SORD .OR. CORZ ) )
00082 $ RETURN
00083
00084 IF( LSAMEN( 2, P2, 'GE' ) ) THEN
00085
00086
00087
00088 WRITE( IOUNIT, FMT = 9999 )PATH
00089 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00090 WRITE( IOUNIT, FMT = 9979 )
00091 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00092 WRITE( IOUNIT, FMT = 9962 )1
00093 WRITE( IOUNIT, FMT = 9961 )2
00094 WRITE( IOUNIT, FMT = 9960 )3
00095 WRITE( IOUNIT, FMT = 9959 )4
00096 WRITE( IOUNIT, FMT = 9958 )5
00097 WRITE( IOUNIT, FMT = 9957 )6
00098 WRITE( IOUNIT, FMT = 9956 )7
00099 WRITE( IOUNIT, FMT = 9955 )8
00100 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00101
00102 ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN
00103
00104
00105
00106 WRITE( IOUNIT, FMT = 9998 )PATH
00107 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00108 WRITE( IOUNIT, FMT = 9978 )
00109 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00110 WRITE( IOUNIT, FMT = 9962 )1
00111 WRITE( IOUNIT, FMT = 9960 )2
00112 WRITE( IOUNIT, FMT = 9959 )3
00113 WRITE( IOUNIT, FMT = 9958 )4
00114 WRITE( IOUNIT, FMT = 9957 )5
00115 WRITE( IOUNIT, FMT = 9956 )6
00116 WRITE( IOUNIT, FMT = 9955 )7
00117 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00118
00119 ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN
00120
00121
00122
00123 WRITE( IOUNIT, FMT = 9997 )PATH
00124 WRITE( IOUNIT, FMT = 9977 )
00125 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00126 WRITE( IOUNIT, FMT = 9962 )1
00127 WRITE( IOUNIT, FMT = 9960 )2
00128 WRITE( IOUNIT, FMT = 9959 )3
00129 WRITE( IOUNIT, FMT = 9958 )4
00130 WRITE( IOUNIT, FMT = 9957 )5
00131 WRITE( IOUNIT, FMT = 9956 )6
00132 WRITE( IOUNIT, FMT = 9955 )7
00133 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00134
00135 ELSE IF( LSAMEN( 2, P2, 'PO' ) .OR. LSAMEN( 2, P2, 'PP' ) ) THEN
00136
00137
00138
00139
00140 IF( SORD ) THEN
00141 SYM = 'Symmetric'
00142 ELSE
00143 SYM = 'Hermitian'
00144 END IF
00145 IF( LSAME( C3, 'O' ) ) THEN
00146 WRITE( IOUNIT, FMT = 9996 )PATH, SYM
00147 ELSE
00148 WRITE( IOUNIT, FMT = 9995 )PATH, SYM
00149 END IF
00150 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00151 WRITE( IOUNIT, FMT = 9975 )PATH
00152 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00153 WRITE( IOUNIT, FMT = 9954 )1
00154 WRITE( IOUNIT, FMT = 9961 )2
00155 WRITE( IOUNIT, FMT = 9960 )3
00156 WRITE( IOUNIT, FMT = 9959 )4
00157 WRITE( IOUNIT, FMT = 9958 )5
00158 WRITE( IOUNIT, FMT = 9957 )6
00159 WRITE( IOUNIT, FMT = 9956 )7
00160 WRITE( IOUNIT, FMT = 9955 )8
00161 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00162
00163 ELSE IF( LSAMEN( 2, P2, 'PS' ) ) THEN
00164
00165
00166
00167 IF( SORD ) THEN
00168 SYM = 'Symmetric'
00169 ELSE
00170 SYM = 'Hermitian'
00171 END IF
00172 IF( LSAME( C1, 'S' ) .OR. LSAME( C1, 'C' ) ) THEN
00173 EIGCNM = '1E04'
00174 ELSE
00175 EIGCNM = '1D12'
00176 END IF
00177 WRITE( IOUNIT, FMT = 9995 )PATH, SYM
00178 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00179 WRITE( IOUNIT, FMT = 8973 )EIGCNM, EIGCNM, EIGCNM
00180 WRITE( IOUNIT, FMT = '( '' Difference:'' )' )
00181 WRITE( IOUNIT, FMT = 8972 )C1
00182 WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
00183 WRITE( IOUNIT, FMT = 8950 )
00184 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00185 ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN
00186
00187
00188
00189 IF( SORD ) THEN
00190 WRITE( IOUNIT, FMT = 9994 )PATH, 'Symmetric'
00191 ELSE
00192 WRITE( IOUNIT, FMT = 9994 )PATH, 'Hermitian'
00193 END IF
00194 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00195 WRITE( IOUNIT, FMT = 9973 )PATH
00196 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00197 WRITE( IOUNIT, FMT = 9954 )1
00198 WRITE( IOUNIT, FMT = 9960 )2
00199 WRITE( IOUNIT, FMT = 9959 )3
00200 WRITE( IOUNIT, FMT = 9958 )4
00201 WRITE( IOUNIT, FMT = 9957 )5
00202 WRITE( IOUNIT, FMT = 9956 )6
00203 WRITE( IOUNIT, FMT = 9955 )7
00204 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00205
00206 ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN
00207
00208
00209
00210 IF( SORD ) THEN
00211 WRITE( IOUNIT, FMT = 9993 )PATH, 'Symmetric'
00212 ELSE
00213 WRITE( IOUNIT, FMT = 9993 )PATH, 'Hermitian'
00214 END IF
00215 WRITE( IOUNIT, FMT = 9976 )
00216 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00217 WRITE( IOUNIT, FMT = 9952 )1
00218 WRITE( IOUNIT, FMT = 9960 )2
00219 WRITE( IOUNIT, FMT = 9959 )3
00220 WRITE( IOUNIT, FMT = 9958 )4
00221 WRITE( IOUNIT, FMT = 9957 )5
00222 WRITE( IOUNIT, FMT = 9956 )6
00223 WRITE( IOUNIT, FMT = 9955 )7
00224 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00225
00226 ELSE IF( LSAMEN( 2, P2, 'SY' ) ) THEN
00227
00228
00229
00230 IF( LSAME( C3, 'Y' ) ) THEN
00231 WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
00232 ELSE
00233 WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
00234 END IF
00235 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00236 IF( SORD ) THEN
00237 WRITE( IOUNIT, FMT = 9972 )
00238 ELSE
00239 WRITE( IOUNIT, FMT = 9971 )
00240 END IF
00241 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00242 WRITE( IOUNIT, FMT = 9953 )1
00243 WRITE( IOUNIT, FMT = 9961 )2
00244 WRITE( IOUNIT, FMT = 9960 )3
00245 WRITE( IOUNIT, FMT = 9960 )4
00246 WRITE( IOUNIT, FMT = 9959 )5
00247 WRITE( IOUNIT, FMT = 9958 )6
00248 WRITE( IOUNIT, FMT = 9956 )7
00249 WRITE( IOUNIT, FMT = 9957 )8
00250 WRITE( IOUNIT, FMT = 9955 )9
00251 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00252
00253 ELSE IF( LSAMEN( 2, P2, 'SP' ) ) THEN
00254
00255
00256
00257 IF( LSAME( C3, 'Y' ) ) THEN
00258 WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
00259 ELSE
00260 WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
00261 END IF
00262 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00263 IF( SORD ) THEN
00264 WRITE( IOUNIT, FMT = 9972 )
00265 ELSE
00266 WRITE( IOUNIT, FMT = 9971 )
00267 END IF
00268 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00269 WRITE( IOUNIT, FMT = 9953 )1
00270 WRITE( IOUNIT, FMT = 9961 )2
00271 WRITE( IOUNIT, FMT = 9960 )3
00272 WRITE( IOUNIT, FMT = 9959 )4
00273 WRITE( IOUNIT, FMT = 9958 )5
00274 WRITE( IOUNIT, FMT = 9956 )6
00275 WRITE( IOUNIT, FMT = 9957 )7
00276 WRITE( IOUNIT, FMT = 9955 )8
00277 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00278
00279 ELSE IF( LSAMEN( 2, P2, 'HE' ) ) THEN
00280
00281
00282
00283 IF( LSAME( C3, 'E' ) ) THEN
00284 WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
00285 ELSE
00286 WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
00287 END IF
00288 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00289 IF( SORD ) THEN
00290 WRITE( IOUNIT, FMT = 9972 )
00291 ELSE
00292 WRITE( IOUNIT, FMT = 9971 )
00293 END IF
00294 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00295 WRITE( IOUNIT, FMT = 9953 )1
00296 WRITE( IOUNIT, FMT = 9961 )2
00297 WRITE( IOUNIT, FMT = 9960 )3
00298 WRITE( IOUNIT, FMT = 9960 )4
00299 WRITE( IOUNIT, FMT = 9959 )5
00300 WRITE( IOUNIT, FMT = 9958 )6
00301 WRITE( IOUNIT, FMT = 9956 )7
00302 WRITE( IOUNIT, FMT = 9957 )8
00303 WRITE( IOUNIT, FMT = 9955 )9
00304 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00305
00306 ELSE IF( LSAMEN( 2, P2, 'HP' ) ) THEN
00307
00308
00309
00310 IF( LSAME( C3, 'E' ) ) THEN
00311 WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
00312 ELSE
00313 WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
00314 END IF
00315 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00316 WRITE( IOUNIT, FMT = 9972 )
00317 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00318 WRITE( IOUNIT, FMT = 9953 )1
00319 WRITE( IOUNIT, FMT = 9961 )2
00320 WRITE( IOUNIT, FMT = 9960 )3
00321 WRITE( IOUNIT, FMT = 9959 )4
00322 WRITE( IOUNIT, FMT = 9958 )5
00323 WRITE( IOUNIT, FMT = 9956 )6
00324 WRITE( IOUNIT, FMT = 9957 )7
00325 WRITE( IOUNIT, FMT = 9955 )8
00326 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00327
00328 ELSE IF( LSAMEN( 2, P2, 'TR' ) .OR. LSAMEN( 2, P2, 'TP' ) ) THEN
00329
00330
00331
00332
00333 IF( LSAME( C3, 'R' ) ) THEN
00334 WRITE( IOUNIT, FMT = 9990 )PATH
00335 SUBNAM = PATH( 1: 1 ) // 'LATRS'
00336 ELSE
00337 WRITE( IOUNIT, FMT = 9989 )PATH
00338 SUBNAM = PATH( 1: 1 ) // 'LATPS'
00339 END IF
00340 WRITE( IOUNIT, FMT = 9966 )PATH
00341 WRITE( IOUNIT, FMT = 9965 )SUBNAM(1:LEN_TRIM( SUBNAM ))
00342 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00343 WRITE( IOUNIT, FMT = 9961 )1
00344 WRITE( IOUNIT, FMT = 9960 )2
00345 WRITE( IOUNIT, FMT = 9959 )3
00346 WRITE( IOUNIT, FMT = 9958 )4
00347 WRITE( IOUNIT, FMT = 9957 )5
00348 WRITE( IOUNIT, FMT = 9956 )6
00349 WRITE( IOUNIT, FMT = 9955 )7
00350 WRITE( IOUNIT, FMT = 9951 )SUBNAM(1:LEN_TRIM( SUBNAM )), 8
00351 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00352
00353 ELSE IF( LSAMEN( 2, P2, 'TB' ) ) THEN
00354
00355
00356
00357 WRITE( IOUNIT, FMT = 9988 )PATH
00358 SUBNAM = PATH( 1: 1 ) // 'LATBS'
00359 WRITE( IOUNIT, FMT = 9964 )PATH
00360 WRITE( IOUNIT, FMT = 9963 )SUBNAM(1:LEN_TRIM( SUBNAM ))
00361 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00362 WRITE( IOUNIT, FMT = 9960 )1
00363 WRITE( IOUNIT, FMT = 9959 )2
00364 WRITE( IOUNIT, FMT = 9958 )3
00365 WRITE( IOUNIT, FMT = 9957 )4
00366 WRITE( IOUNIT, FMT = 9956 )5
00367 WRITE( IOUNIT, FMT = 9955 )6
00368 WRITE( IOUNIT, FMT = 9951 )SUBNAM(1:LEN_TRIM( SUBNAM )), 7
00369 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00370
00371 ELSE IF( LSAMEN( 2, P2, 'QR' ) ) THEN
00372
00373
00374
00375 WRITE( IOUNIT, FMT = 9987 )PATH, 'QR'
00376 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00377 WRITE( IOUNIT, FMT = 9970 )
00378 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00379 WRITE( IOUNIT, FMT = 9950 )1
00380 WRITE( IOUNIT, FMT = 6950 )8
00381 WRITE( IOUNIT, FMT = 9946 )2
00382 WRITE( IOUNIT, FMT = 9944 )3, 'M'
00383 WRITE( IOUNIT, FMT = 9943 )4, 'M'
00384 WRITE( IOUNIT, FMT = 9942 )5, 'M'
00385 WRITE( IOUNIT, FMT = 9941 )6, 'M'
00386 WRITE( IOUNIT, FMT = 9960 )7
00387 WRITE( IOUNIT, FMT = 6660 )9
00388 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00389
00390 ELSE IF( LSAMEN( 2, P2, 'LQ' ) ) THEN
00391
00392
00393
00394 WRITE( IOUNIT, FMT = 9987 )PATH, 'LQ'
00395 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00396 WRITE( IOUNIT, FMT = 9970 )
00397 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00398 WRITE( IOUNIT, FMT = 9949 )1
00399 WRITE( IOUNIT, FMT = 9945 )2
00400 WRITE( IOUNIT, FMT = 9944 )3, 'N'
00401 WRITE( IOUNIT, FMT = 9943 )4, 'N'
00402 WRITE( IOUNIT, FMT = 9942 )5, 'N'
00403 WRITE( IOUNIT, FMT = 9941 )6, 'N'
00404 WRITE( IOUNIT, FMT = 9960 )7
00405 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00406
00407 ELSE IF( LSAMEN( 2, P2, 'QL' ) ) THEN
00408
00409
00410
00411 WRITE( IOUNIT, FMT = 9987 )PATH, 'QL'
00412 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00413 WRITE( IOUNIT, FMT = 9970 )
00414 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00415 WRITE( IOUNIT, FMT = 9948 )1
00416 WRITE( IOUNIT, FMT = 9946 )2
00417 WRITE( IOUNIT, FMT = 9944 )3, 'M'
00418 WRITE( IOUNIT, FMT = 9943 )4, 'M'
00419 WRITE( IOUNIT, FMT = 9942 )5, 'M'
00420 WRITE( IOUNIT, FMT = 9941 )6, 'M'
00421 WRITE( IOUNIT, FMT = 9960 )7
00422 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00423
00424 ELSE IF( LSAMEN( 2, P2, 'RQ' ) ) THEN
00425
00426
00427
00428 WRITE( IOUNIT, FMT = 9987 )PATH, 'RQ'
00429 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00430 WRITE( IOUNIT, FMT = 9970 )
00431 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00432 WRITE( IOUNIT, FMT = 9947 )1
00433 WRITE( IOUNIT, FMT = 9945 )2
00434 WRITE( IOUNIT, FMT = 9944 )3, 'N'
00435 WRITE( IOUNIT, FMT = 9943 )4, 'N'
00436 WRITE( IOUNIT, FMT = 9942 )5, 'N'
00437 WRITE( IOUNIT, FMT = 9941 )6, 'N'
00438 WRITE( IOUNIT, FMT = 9960 )7
00439 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00440
00441 ELSE IF( LSAMEN( 2, P2, 'QP' ) ) THEN
00442
00443
00444
00445 WRITE( IOUNIT, FMT = 9986 )PATH
00446 WRITE( IOUNIT, FMT = 9969 )
00447 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00448 WRITE( IOUNIT, FMT = 9940 )1
00449 WRITE( IOUNIT, FMT = 9939 )2
00450 WRITE( IOUNIT, FMT = 9938 )3
00451 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00452
00453 ELSE IF( LSAMEN( 2, P2, 'TZ' ) ) THEN
00454
00455
00456
00457 WRITE( IOUNIT, FMT = 9985 )PATH
00458 WRITE( IOUNIT, FMT = 9968 )
00459 WRITE( IOUNIT, FMT = 9929 )C1, C1
00460 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00461 WRITE( IOUNIT, FMT = 9940 )1
00462 WRITE( IOUNIT, FMT = 9937 )2
00463 WRITE( IOUNIT, FMT = 9938 )3
00464 WRITE( IOUNIT, FMT = 9940 )4
00465 WRITE( IOUNIT, FMT = 9937 )5
00466 WRITE( IOUNIT, FMT = 9938 )6
00467 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00468
00469 ELSE IF( LSAMEN( 2, P2, 'LS' ) ) THEN
00470
00471
00472
00473
00474 WRITE( IOUNIT, FMT = 9984 )PATH
00475 WRITE( IOUNIT, FMT = 9967 )
00476 WRITE( IOUNIT, FMT = 9921 )C1, C1, C1, C1, C1
00477 WRITE( IOUNIT, FMT = 9935 )1
00478 WRITE( IOUNIT, FMT = 9931 )2
00479 WRITE( IOUNIT, FMT = 9933 )3
00480 WRITE( IOUNIT, FMT = 9935 )4
00481 WRITE( IOUNIT, FMT = 9934 )5
00482 WRITE( IOUNIT, FMT = 9932 )6
00483 WRITE( IOUNIT, FMT = 9920 )
00484 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00485
00486 ELSE IF( LSAMEN( 2, P2, 'LU' ) ) THEN
00487
00488
00489
00490 WRITE( IOUNIT, FMT = 9983 )PATH
00491 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00492 WRITE( IOUNIT, FMT = 9979 )
00493 WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
00494 WRITE( IOUNIT, FMT = 9962 )1
00495 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00496
00497 ELSE IF( LSAMEN( 2, P2, 'CH' ) ) THEN
00498
00499
00500
00501 WRITE( IOUNIT, FMT = 9982 )PATH
00502 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00503 WRITE( IOUNIT, FMT = 9974 )
00504 WRITE( IOUNIT, FMT = '( '' Test ratio:'' )' )
00505 WRITE( IOUNIT, FMT = 9954 )1
00506 WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
00507
00508 ELSE IF( LSAMEN( 2, P2, 'QS' ) ) THEN
00509
00510
00511
00512 WRITE( IOUNIT, FMT = 9981 )PATH
00513 WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
00514 WRITE( IOUNIT, FMT = 9970 )
00515 WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
00516
00517 ELSE
00518
00519
00520
00521 WRITE( IOUNIT, FMT = 9980 )PATH
00522 END IF
00523
00524
00525
00526 9999 FORMAT( / 1X, A3, ': General dense matrices' )
00527 9998 FORMAT( / 1X, A3, ': General band matrices' )
00528 9997 FORMAT( / 1X, A3, ': General tridiagonal' )
00529 9996 FORMAT( / 1X, A3, ': ', A9, ' positive definite matrices' )
00530 9995 FORMAT( / 1X, A3, ': ', A9, ' positive definite packed matrices'
00531 $ )
00532 9994 FORMAT( / 1X, A3, ': ', A9, ' positive definite band matrices' )
00533 9993 FORMAT( / 1X, A3, ': ', A9, ' positive definite tridiagonal' )
00534 9992 FORMAT( / 1X, A3, ': ', A9, ' indefinite matrices' )
00535 9991 FORMAT( / 1X, A3, ': ', A9, ' indefinite packed matrices' )
00536 9990 FORMAT( / 1X, A3, ': Triangular matrices' )
00537 9989 FORMAT( / 1X, A3, ': Triangular packed matrices' )
00538 9988 FORMAT( / 1X, A3, ': Triangular band matrices' )
00539 9987 FORMAT( / 1X, A3, ': ', A2, ' factorization of general matrices'
00540 $ )
00541 9986 FORMAT( / 1X, A3, ': QR factorization with column pivoting' )
00542 9985 FORMAT( / 1X, A3, ': RQ factorization of trapezoidal matrix' )
00543 9984 FORMAT( / 1X, A3, ': Least squares driver routines' )
00544 9983 FORMAT( / 1X, A3, ': LU factorization variants' )
00545 9982 FORMAT( / 1X, A3, ': Cholesky factorization variants' )
00546 9981 FORMAT( / 1X, A3, ': QR factorization variants' )
00547 9980 FORMAT( / 1X, A3, ': No header available' )
00548
00549
00550
00551 9979 FORMAT( 4X, '1. Diagonal', 24X, '7. Last n/2 columns zero', / 4X,
00552 $ '2. Upper triangular', 16X,
00553 $ '8. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00554 $ '3. Lower triangular', 16X, '9. Random, CNDNUM = 0.1/EPS',
00555 $ / 4X, '4. Random, CNDNUM = 2', 13X,
00556 $ '10. Scaled near underflow', / 4X, '5. First column zero',
00557 $ 14X, '11. Scaled near overflow', / 4X,
00558 $ '6. Last column zero' )
00559
00560
00561
00562 9978 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
00563 $ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00564 $ '2. First column zero', 15X, '6. Random, CNDNUM = .01/EPS',
00565 $ / 4X, '3. Last column zero', 16X,
00566 $ '7. Scaled near underflow', / 4X,
00567 $ '4. Last n/2 columns zero', 11X, '8. Scaled near overflow' )
00568
00569
00570
00571 9977 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
00572 $ / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
00573 $ / 4X, '2. Random, CNDNUM = 2', 14X, '8. First column zero',
00574 $ / 4X, '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
00575 $ '9. Last column zero', / 4X, '4. Random, CNDNUM = 0.1/EPS',
00576 $ 7X, '10. Last n/2 columns zero', / 4X,
00577 $ '5. Scaled near underflow', 10X,
00578 $ '11. Scaled near underflow', / 4X,
00579 $ '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
00580
00581
00582
00583 9976 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
00584 $ / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
00585 $ / 4X, '2. Random, CNDNUM = 2', 14X,
00586 $ '8. First row and column zero', / 4X,
00587 $ '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
00588 $ '9. Last row and column zero', / 4X,
00589 $ '4. Random, CNDNUM = 0.1/EPS', 7X,
00590 $ '10. Middle row and column zero', / 4X,
00591 $ '5. Scaled near underflow', 10X,
00592 $ '11. Scaled near underflow', / 4X,
00593 $ '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
00594
00595
00596
00597 9975 FORMAT( 4X, '1. Diagonal', 24X,
00598 $ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00599 $ '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
00600 $ / 3X, '*3. First row and column zero', 7X,
00601 $ '8. Scaled near underflow', / 3X,
00602 $ '*4. Last row and column zero', 8X,
00603 $ '9. Scaled near overflow', / 3X,
00604 $ '*5. Middle row and column zero', / 3X,
00605 $ '(* - tests error exits from ', A3,
00606 $ 'TRF, no test ratios are computed)' )
00607
00608
00609
00610 9974 FORMAT( 4X, '1. Diagonal', 24X,
00611 $ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00612 $ '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
00613 $ / 3X, '*3. First row and column zero', 7X,
00614 $ '8. Scaled near underflow', / 3X,
00615 $ '*4. Last row and column zero', 8X,
00616 $ '9. Scaled near overflow', / 3X,
00617 $ '*5. Middle row and column zero', / 3X,
00618 $ '(* - tests error exits, no test ratios are computed)' )
00619
00620
00621
00622 8973 FORMAT( 4X, '1. Diagonal', / 4X, '2. Random, CNDNUM = 2', 14X,
00623 $ / 3X, '*3. Nonzero eigenvalues of: D(1:RANK-1)=1 and ',
00624 $ 'D(RANK) = 1.0/', A4, / 3X,
00625 $ '*4. Nonzero eigenvalues of: D(1)=1 and ',
00626 $ ' D(2:RANK) = 1.0/', A4, / 3X,
00627 $ '*5. Nonzero eigenvalues of: D(I) = ', A4,
00628 $ '**(-(I-1)/(RANK-1)) ', ' I=1:RANK', / 4X,
00629 $ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00630 $ '7. Random, CNDNUM = 0.1/EPS', / 4X,
00631 $ '8. Scaled near underflow', / 4X, '9. Scaled near overflow',
00632 $ / 3X, '(* - Semi-definite tests )' )
00633 8972 FORMAT( 3X, 'RANK minus computed rank, returned by ', A, 'PSTRF' )
00634
00635
00636
00637 9973 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
00638 $ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 3X,
00639 $ '*2. First row and column zero', 7X,
00640 $ '6. Random, CNDNUM = 0.1/EPS', / 3X,
00641 $ '*3. Last row and column zero', 8X,
00642 $ '7. Scaled near underflow', / 3X,
00643 $ '*4. Middle row and column zero', 6X,
00644 $ '8. Scaled near overflow', / 3X,
00645 $ '(* - tests error exits from ', A3,
00646 $ 'TRF, no test ratios are computed)' )
00647
00648
00649
00650 9972 FORMAT( 4X, '1. Diagonal', 24X,
00651 $ '6. Last n/2 rows and columns zero', / 4X,
00652 $ '2. Random, CNDNUM = 2', 14X,
00653 $ '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00654 $ '3. First row and column zero', 7X,
00655 $ '8. Random, CNDNUM = 0.1/EPS', / 4X,
00656 $ '4. Last row and column zero', 8X,
00657 $ '9. Scaled near underflow', / 4X,
00658 $ '5. Middle row and column zero', 5X,
00659 $ '10. Scaled near overflow' )
00660
00661
00662
00663 9971 FORMAT( 4X, '1. Diagonal', 24X,
00664 $ '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00665 $ '2. Random, CNDNUM = 2', 14X, '8. Random, CNDNUM = 0.1/EPS',
00666 $ / 4X, '3. First row and column zero', 7X,
00667 $ '9. Scaled near underflow', / 4X,
00668 $ '4. Last row and column zero', 7X,
00669 $ '10. Scaled near overflow', / 4X,
00670 $ '5. Middle row and column zero', 5X,
00671 $ '11. Block diagonal matrix', / 4X,
00672 $ '6. Last n/2 rows and columns zero' )
00673
00674
00675
00676 9970 FORMAT( 4X, '1. Diagonal', 24X,
00677 $ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
00678 $ '2. Upper triangular', 16X, '6. Random, CNDNUM = 0.1/EPS',
00679 $ / 4X, '3. Lower triangular', 16X,
00680 $ '7. Scaled near underflow', / 4X, '4. Random, CNDNUM = 2',
00681 $ 14X, '8. Scaled near overflow' )
00682
00683
00684
00685 9969 FORMAT( ' Matrix types (2-6 have condition 1/EPS):', / 4X,
00686 $ '1. Zero matrix', 21X, '4. First n/2 columns fixed', / 4X,
00687 $ '2. One small eigenvalue', 12X, '5. Last n/2 columns fixed',
00688 $ / 4X, '3. Geometric distribution', 10X,
00689 $ '6. Every second column fixed' )
00690
00691
00692
00693 9968 FORMAT( ' Matrix types (2-3 have condition 1/EPS):', / 4X,
00694 $ '1. Zero matrix', / 4X, '2. One small eigenvalue', / 4X,
00695 $ '3. Geometric distribution' )
00696
00697
00698
00699 9967 FORMAT( ' Matrix types (1-3: full rank, 4-6: rank deficient):',
00700 $ / 4X, '1 and 4. Normal scaling', / 4X,
00701 $ '2 and 5. Scaled near overflow', / 4X,
00702 $ '3 and 6. Scaled near underflow' )
00703
00704
00705
00706 9966 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X,
00707 $ '1. Diagonal', 24X, '6. Scaled near overflow', / 4X,
00708 $ '2. Random, CNDNUM = 2', 14X, '7. Identity', / 4X,
00709 $ '3. Random, CNDNUM = sqrt(0.1/EPS) ',
00710 $ '8. Unit triangular, CNDNUM = 2', / 4X,
00711 $ '4. Random, CNDNUM = 0.1/EPS', 8X,
00712 $ '9. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X,
00713 $ '5. Scaled near underflow', 10X,
00714 $ '10. Unit, CNDNUM = 0.1/EPS' )
00715 9965 FORMAT( ' Special types for testing ', A, ':', / 3X,
00716 $ '11. Matrix elements are O(1), large right hand side', / 3X,
00717 $ '12. First diagonal causes overflow,',
00718 $ ' offdiagonal column norms < 1', / 3X,
00719 $ '13. First diagonal causes overflow,',
00720 $ ' offdiagonal column norms > 1', / 3X,
00721 $ '14. Growth factor underflows, solution does not overflow',
00722 $ / 3X, '15. Small diagonal causes gradual overflow', / 3X,
00723 $ '16. One zero diagonal element', / 3X,
00724 $ '17. Large offdiagonals cause overflow when adding a column'
00725 $ , / 3X, '18. Unit triangular with large right hand side' )
00726
00727
00728
00729 9964 FORMAT( ' Matrix types for ', A3, ' routines:', / 4X,
00730 $ '1. Random, CNDNUM = 2', 14X, '6. Identity', / 4X,
00731 $ '2. Random, CNDNUM = sqrt(0.1/EPS) ',
00732 $ '7. Unit triangular, CNDNUM = 2', / 4X,
00733 $ '3. Random, CNDNUM = 0.1/EPS', 8X,
00734 $ '8. Unit, CNDNUM = sqrt(0.1/EPS)', / 4X,
00735 $ '4. Scaled near underflow', 11X,
00736 $ '9. Unit, CNDNUM = 0.1/EPS', / 4X,
00737 $ '5. Scaled near overflow' )
00738 9963 FORMAT( ' Special types for testing ', A, ':', / 3X,
00739 $ '10. Matrix elements are O(1), large right hand side', / 3X,
00740 $ '11. First diagonal causes overflow,',
00741 $ ' offdiagonal column norms < 1', / 3X,
00742 $ '12. First diagonal causes overflow,',
00743 $ ' offdiagonal column norms > 1', / 3X,
00744 $ '13. Growth factor underflows, solution does not overflow',
00745 $ / 3X, '14. Small diagonal causes gradual overflow', / 3X,
00746 $ '15. One zero diagonal element', / 3X,
00747 $ '16. Large offdiagonals cause overflow when adding a column'
00748 $ , / 3X, '17. Unit triangular with large right hand side' )
00749
00750
00751
00752 9962 FORMAT( 3X, I2, ': norm( L * U - A ) / ( N * norm(A) * EPS )' )
00753 9961 FORMAT( 3X, I2, ': norm( I - A*AINV ) / ',
00754 $ '( N * norm(A) * norm(AINV) * EPS )' )
00755 9960 FORMAT( 3X, I2, ': norm( B - A * X ) / ',
00756 $ '( norm(A) * norm(X) * EPS )' )
00757 6660 FORMAT( 3X, I2, ': diagonal is not non-negative')
00758 9959 FORMAT( 3X, I2, ': norm( X - XACT ) / ',
00759 $ '( norm(XACT) * CNDNUM * EPS )' )
00760 9958 FORMAT( 3X, I2, ': norm( X - XACT ) / ',
00761 $ '( norm(XACT) * CNDNUM * EPS ), refined' )
00762 9957 FORMAT( 3X, I2, ': norm( X - XACT ) / ',
00763 $ '( norm(XACT) * (error bound) )' )
00764 9956 FORMAT( 3X, I2, ': (backward error) / EPS' )
00765 9955 FORMAT( 3X, I2, ': RCOND * CNDNUM - 1.0' )
00766 9954 FORMAT( 3X, I2, ': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
00767 $ ', or', / 7X, 'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
00768 $ )
00769 8950 FORMAT( 3X,
00770 $ 'norm( P * U'' * U * P'' - A ) / ( N * norm(A) * EPS )',
00771 $ ', or', / 3X,
00772 $ 'norm( P * L * L'' * P'' - A ) / ( N * norm(A) * EPS )' )
00773 9953 FORMAT( 3X, I2, ': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
00774 $ ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
00775 $ )
00776 9952 FORMAT( 3X, I2, ': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
00777 $ ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
00778 $ )
00779 9951 FORMAT( ' Test ratio for ', A, ':', / 3X, I2,
00780 $ ': norm( s*b - A*x ) / ( norm(A) * norm(x) * EPS )' )
00781 9950 FORMAT( 3X, I2, ': norm( R - Q'' * A ) / ( M * norm(A) * EPS )' )
00782 6950 FORMAT( 3X, I2, ': norm( R - Q'
00783 ' * A ) / ( M * norm(A) * EPS ) $ [RFPG]' )
00784 9949 FORMAT( 3X, I2, ': norm( L - A * Q'' ) / ( N * norm(A) * EPS )' )
00785 9948 FORMAT( 3X, I2, ': norm( L - Q'' * A ) / ( M * norm(A) * EPS )' )
00786 9947 FORMAT( 3X, I2, ': norm( R - A * Q'' ) / ( N * norm(A) * EPS )' )
00787 9946 FORMAT( 3X, I2, ': norm( I - Q''*Q ) / ( M * EPS )' )
00788 9945 FORMAT( 3X, I2, ': norm( I - Q*Q'' ) / ( N * EPS )' )
00789 9944 FORMAT( 3X, I2, ': norm( Q*C - Q*C ) / ', '( ', A1,
00790 $ ' * norm(C) * EPS )' )
00791 9943 FORMAT( 3X, I2, ': norm( C*Q - C*Q ) / ', '( ', A1,
00792 $ ' * norm(C) * EPS )' )
00793 9942 FORMAT( 3X, I2, ': norm( Q''*C - Q''*C )/ ', '( ', A1,
00794 $ ' * norm(C) * EPS )' )
00795 9941 FORMAT( 3X, I2, ': norm( C*Q'' - C*Q'' )/ ', '( ', A1,
00796 $ ' * norm(C) * EPS )' )
00797 9940 FORMAT( 3X, I2, ': norm(svd(A) - svd(R)) / ',
00798 $ '( M * norm(svd(R)) * EPS )' )
00799 9939 FORMAT( 3X, I2, ': norm( A*P - Q*R ) / ( M * norm(A) * EPS )'
00800 $ )
00801 9938 FORMAT( 3X, I2, ': norm( I - Q''*Q ) / ( M * EPS )' )
00802 9937 FORMAT( 3X, I2, ': norm( A - R*Q ) / ( M * norm(A) * EPS )'
00803 $ )
00804 9936 FORMAT( ' Test ratios (1-2: ', A1, 'GELS, 3-6: ', A1,
00805 $ 'GELSS, 7-10: ', A1, 'GELSX):' )
00806 9935 FORMAT( 3X, I2, ': norm( B - A * X ) / ',
00807 $ '( max(M,N) * norm(A) * norm(X) * EPS )' )
00808 9934 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ',
00809 $ '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )' )
00810 9933 FORMAT( 3X, I2, ': norm(svd(A)-svd(R)) / ',
00811 $ '( min(M,N) * norm(svd(R)) * EPS )' )
00812 9932 FORMAT( 3X, I2, ': Check if X is in the row space of A or A''' )
00813 9931 FORMAT( 3X, I2, ': norm( (A*X-B)'' *A ) / ',
00814 $ '( max(M,N,NRHS) * norm(A) * norm(B) * EPS )', / 7X,
00815 $ 'if TRANS=''N'' and M.GE.N or TRANS=''T'' and M.LT.N, ',
00816 $ 'otherwise', / 7X,
00817 $ 'check if X is in the row space of A or A'' ',
00818 $ '(overdetermined case)' )
00819 9930 FORMAT( 3X, ' 7-10: same as 3-6' )
00820 9929 FORMAT( ' Test ratios (1-3: ', A1, 'TZRQF, 4-6: ', A1,
00821 $ 'TZRZF):' )
00822 9920 FORMAT( 3X, ' 7-10: same as 3-6', 3X, ' 11-14: same as 3-6',
00823 $ 3X, ' 15-18: same as 3-6' )
00824 9921 FORMAT( ' Test ratios:', / ' (1-2: ', A1, 'GELS, 3-6: ', A1,
00825 $ 'GELSX, 7-10: ', A1, 'GELSY, 11-14: ', A1, 'GELSS, 15-18: ',
00826 $ A1, 'GELSD)' )
00827
00828 RETURN
00829
00830
00831
00832 END