112 IF( .NOT.( sord .OR. corz ) )
115 IF(
lsamen( 2, p2,
'GE' ) )
THEN
119 WRITE( iounit, fmt = 9999 )path
120 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
121 WRITE( iounit, fmt = 9989 )
122 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
123 WRITE( iounit, fmt = 9981 )1
124 WRITE( iounit, fmt = 9980 )2
125 WRITE( iounit, fmt = 9979 )3
126 WRITE( iounit, fmt = 9978 )4
127 WRITE( iounit, fmt = 9977 )5
128 WRITE( iounit, fmt = 9976 )6
129 WRITE( iounit, fmt = 9972 )7
130 WRITE( iounit, fmt =
'( '' Messages:'' )' )
132 ELSE IF(
lsamen( 2, p2,
'GB' ) )
THEN
136 WRITE( iounit, fmt = 9998 )path
137 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
138 WRITE( iounit, fmt = 9988 )
139 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
140 WRITE( iounit, fmt = 9981 )1
141 WRITE( iounit, fmt = 9980 )2
142 WRITE( iounit, fmt = 9979 )3
143 WRITE( iounit, fmt = 9978 )4
144 WRITE( iounit, fmt = 9977 )5
145 WRITE( iounit, fmt = 9976 )6
146 WRITE( iounit, fmt = 9972 )7
147 WRITE( iounit, fmt =
'( '' Messages:'' )' )
149 ELSE IF(
lsamen( 2, p2,
'GT' ) )
THEN
153 WRITE( iounit, fmt = 9997 )path
154 WRITE( iounit, fmt = 9987 )
155 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
156 WRITE( iounit, fmt = 9981 )1
157 WRITE( iounit, fmt = 9980 )2
158 WRITE( iounit, fmt = 9979 )3
159 WRITE( iounit, fmt = 9978 )4
160 WRITE( iounit, fmt = 9977 )5
161 WRITE( iounit, fmt = 9976 )6
162 WRITE( iounit, fmt =
'( '' Messages:'' )' )
164 ELSE IF(
lsamen( 2, p2,
'PO' ) .OR.
lsamen( 2, p2,
'PP' )
165 $ .OR.
lsamen( 2, p2,
'PS' ) )
THEN
176 IF(
lsame( c3,
'O' ) )
THEN
177 WRITE( iounit, fmt = 9996 )path, sym
179 WRITE( iounit, fmt = 9995 )path, sym
181 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
182 WRITE( iounit, fmt = 9985 )path
183 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
184 WRITE( iounit, fmt = 9975 )1
185 WRITE( iounit, fmt = 9980 )2
186 WRITE( iounit, fmt = 9979 )3
187 WRITE( iounit, fmt = 9978 )4
188 WRITE( iounit, fmt = 9977 )5
189 WRITE( iounit, fmt = 9976 )6
190 WRITE( iounit, fmt =
'( '' Messages:'' )' )
192 ELSE IF(
lsamen( 2, p2,
'PB' ) )
THEN
197 WRITE( iounit, fmt = 9994 )path,
'Symmetric'
199 WRITE( iounit, fmt = 9994 )path,
'Hermitian'
201 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
202 WRITE( iounit, fmt = 9984 )path
203 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
204 WRITE( iounit, fmt = 9975 )1
205 WRITE( iounit, fmt = 9980 )2
206 WRITE( iounit, fmt = 9979 )3
207 WRITE( iounit, fmt = 9978 )4
208 WRITE( iounit, fmt = 9977 )5
209 WRITE( iounit, fmt = 9976 )6
210 WRITE( iounit, fmt =
'( '' Messages:'' )' )
212 ELSE IF(
lsamen( 2, p2,
'PT' ) )
THEN
217 WRITE( iounit, fmt = 9993 )path,
'Symmetric'
219 WRITE( iounit, fmt = 9993 )path,
'Hermitian'
221 WRITE( iounit, fmt = 9986 )
222 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
223 WRITE( iounit, fmt = 9973 )1
224 WRITE( iounit, fmt = 9980 )2
225 WRITE( iounit, fmt = 9979 )3
226 WRITE( iounit, fmt = 9978 )4
227 WRITE( iounit, fmt = 9977 )5
228 WRITE( iounit, fmt = 9976 )6
229 WRITE( iounit, fmt =
'( '' Messages:'' )' )
231 ELSE IF(
lsamen( 2, p2,
'SY' ) .OR.
lsamen( 2, p2,
'SP' ) )
THEN
238 IF(
lsame( c3,
'Y' ) )
THEN
239 WRITE( iounit, fmt = 9992 )path,
'Symmetric'
241 WRITE( iounit, fmt = 9991 )path,
'Symmetric'
243 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
245 WRITE( iounit, fmt = 9983 )
247 WRITE( iounit, fmt = 9982 )
249 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
250 WRITE( iounit, fmt = 9974 )1
251 WRITE( iounit, fmt = 9980 )2
252 WRITE( iounit, fmt = 9979 )3
253 WRITE( iounit, fmt = 9977 )4
254 WRITE( iounit, fmt = 9978 )5
255 WRITE( iounit, fmt = 9976 )6
256 WRITE( iounit, fmt =
'( '' Messages:'' )' )
258 ELSE IF(
lsamen( 2, p2,
'SR' ) )
THEN
263 WRITE( iounit, fmt = 9992 )path,
'Symmetric'
265 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
267 WRITE( iounit, fmt = 9983 )
269 WRITE( iounit, fmt = 9982 )
272 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
273 WRITE( iounit, fmt = 9974 )1
274 WRITE( iounit, fmt = 9980 )2
275 WRITE( iounit, fmt = 9979 )3
276 WRITE( iounit, fmt =
'( '' Messages:'' )' )
278 ELSE IF(
lsamen( 2, p2,
'HE' ) .OR.
lsamen( 2, p2,
'HP' ) )
THEN
285 IF(
lsame( c3,
'E' ) )
THEN
286 WRITE( iounit, fmt = 9992 )path,
'Hermitian'
288 WRITE( iounit, fmt = 9991 )path,
'Hermitian'
291 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
292 WRITE( iounit, fmt = 9983 )
294 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
295 WRITE( iounit, fmt = 9974 )1
296 WRITE( iounit, fmt = 9980 )2
297 WRITE( iounit, fmt = 9979 )3
298 WRITE( iounit, fmt = 9977 )4
299 WRITE( iounit, fmt = 9978 )5
300 WRITE( iounit, fmt = 9976 )6
301 WRITE( iounit, fmt =
'( '' Messages:'' )' )
303 ELSE IF(
lsamen( 2, p2,
'HR' ) )
THEN
308 WRITE( iounit, fmt = 9992 )path,
'Hermitian'
310 WRITE( iounit, fmt =
'( '' Matrix types:'' )' )
311 WRITE( iounit, fmt = 9983 )
313 WRITE( iounit, fmt =
'( '' Test ratios:'' )' )
314 WRITE( iounit, fmt = 9974 )1
315 WRITE( iounit, fmt = 9980 )2
316 WRITE( iounit, fmt = 9979 )3
317 WRITE( iounit, fmt =
'( '' Messages:'' )' )
323 WRITE( iounit, fmt = 9990 )path
328 9999
FORMAT( / 1x, a3,
' drivers: General dense matrices' )
329 9998
FORMAT( / 1x, a3,
' drivers: General band matrices' )
330 9997
FORMAT( / 1x, a3,
' drivers: General tridiagonal' )
331 9996
FORMAT( / 1x, a3,
' drivers: ', a9,
332 $
' positive definite matrices' )
333 9995
FORMAT( / 1x, a3,
' drivers: ', a9,
334 $
' positive definite packed matrices' )
335 9994
FORMAT( / 1x, a3,
' drivers: ', a9,
336 $
' positive definite band matrices' )
337 9993
FORMAT( / 1x, a3,
' drivers: ', a9,
338 $
' positive definite tridiagonal' )
339 9992
FORMAT( / 1x, a3,
' drivers: ', a9,
' indefinite matrices',
340 $
', "rook" (bounded Bunch-Kaufman) pivoting' )
341 9991
FORMAT( / 1x, a3,
' drivers: ', a9,
342 $
' indefinite packed matrices',
343 $
', partial (Bunch-Kaufman) pivoting' )
344 9891
FORMAT( / 1x, a3,
' drivers: ', a9,
345 $
' indefinite packed matrices',
346 $
', "rook" (bounded Bunch-Kaufman) pivoting' )
347 9990
FORMAT( / 1x, a3,
': No header available' )
351 9989
FORMAT( 4x,
'1. Diagonal', 24x,
'7. Last n/2 columns zero', / 4x,
352 $
'2. Upper triangular', 16x,
353 $
'8. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
354 $
'3. Lower triangular', 16x,
'9. Random, CNDNUM = 0.1/EPS',
355 $ / 4x,
'4. Random, CNDNUM = 2', 13x,
356 $
'10. Scaled near underflow', / 4x,
'5. First column zero',
357 $ 14x,
'11. Scaled near overflow', / 4x,
358 $
'6. Last column zero' )
362 9988
FORMAT( 4x,
'1. Random, CNDNUM = 2', 14x,
363 $
'5. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
364 $
'2. First column zero', 15x,
'6. Random, CNDNUM = 0.1/EPS',
365 $ / 4x,
'3. Last column zero', 16x,
366 $
'7. Scaled near underflow', / 4x,
367 $
'4. Last n/2 columns zero', 11x,
'8. Scaled near overflow' )
371 9987
FORMAT(
' Matrix types (1-6 have specified condition numbers):',
372 $ / 4x,
'1. Diagonal', 24x,
'7. Random, unspecified CNDNUM',
373 $ / 4x,
'2. Random, CNDNUM = 2', 14x,
'8. First column zero',
374 $ / 4x,
'3. Random, CNDNUM = sqrt(0.1/EPS)', 2x,
375 $
'9. Last column zero', / 4x,
'4. Random, CNDNUM = 0.1/EPS',
376 $ 7x,
'10. Last n/2 columns zero', / 4x,
377 $
'5. Scaled near underflow', 10x,
378 $
'11. Scaled near underflow', / 4x,
379 $
'6. Scaled near overflow', 11x,
'12. Scaled near overflow' )
383 9986
FORMAT(
' Matrix types (1-6 have specified condition numbers):',
384 $ / 4x,
'1. Diagonal', 24x,
'7. Random, unspecified CNDNUM',
385 $ / 4x,
'2. Random, CNDNUM = 2', 14x,
386 $
'8. First row and column zero', / 4x,
387 $
'3. Random, CNDNUM = sqrt(0.1/EPS)', 2x,
388 $
'9. Last row and column zero', / 4x,
389 $
'4. Random, CNDNUM = 0.1/EPS', 7x,
390 $
'10. Middle row and column zero', / 4x,
391 $
'5. Scaled near underflow', 10x,
392 $
'11. Scaled near underflow', / 4x,
393 $
'6. Scaled near overflow', 11x,
'12. Scaled near overflow' )
397 9985
FORMAT( 4x,
'1. Diagonal', 24x,
398 $
'6. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
399 $
'2. Random, CNDNUM = 2', 14x,
'7. Random, CNDNUM = 0.1/EPS',
400 $ / 3x,
'*3. First row and column zero', 7x,
401 $
'8. Scaled near underflow', / 3x,
402 $
'*4. Last row and column zero', 8x,
403 $
'9. Scaled near overflow', / 3x,
404 $
'*5. Middle row and column zero', / 3x,
405 $
'(* - tests error exits from ', a3,
406 $
'TRF, no test ratios are computed)' )
410 9984
FORMAT( 4x,
'1. Random, CNDNUM = 2', 14x,
411 $
'5. Random, CNDNUM = sqrt(0.1/EPS)', / 3x,
412 $
'*2. First row and column zero', 7x,
413 $
'6. Random, CNDNUM = 0.1/EPS', / 3x,
414 $
'*3. Last row and column zero', 8x,
415 $
'7. Scaled near underflow', / 3x,
416 $
'*4. Middle row and column zero', 6x,
417 $
'8. Scaled near overflow', / 3x,
418 $
'(* - tests error exits from ', a3,
419 $
'TRF, no test ratios are computed)' )
423 9983
FORMAT( 4x,
'1. Diagonal', 24x,
424 $
'6. Last n/2 rows and columns zero', / 4x,
425 $
'2. Random, CNDNUM = 2', 14x,
426 $
'7. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
427 $
'3. First row and column zero', 7x,
428 $
'8. Random, CNDNUM = 0.1/EPS', / 4x,
429 $
'4. Last row and column zero', 8x,
430 $
'9. Scaled near underflow', / 4x,
431 $
'5. Middle row and column zero', 5x,
432 $
'10. Scaled near overflow' )
436 9982
FORMAT( 4x,
'1. Diagonal', 24x,
437 $
'7. Random, CNDNUM = sqrt(0.1/EPS)', / 4x,
438 $
'2. Random, CNDNUM = 2', 14x,
'8. Random, CNDNUM = 0.1/EPS',
439 $ / 4x,
'3. First row and column zero', 7x,
440 $
'9. Scaled near underflow', / 4x,
441 $
'4. Last row and column zero', 7x,
442 $
'10. Scaled near overflow', / 4x,
443 $
'5. Middle row and column zero', 5x,
444 $
'11. Block diagonal matrix', / 4x,
445 $
'6. Last n/2 rows and columns zero' )
449 9981
FORMAT( 3x, i2,
': norm( L * U - A ) / ( N * norm(A) * EPS )' )
450 9980
FORMAT( 3x, i2,
': norm( B - A * X ) / ',
451 $
'( norm(A) * norm(X) * EPS )' )
452 9979
FORMAT( 3x, i2,
': norm( X - XACT ) / ',
453 $
'( norm(XACT) * CNDNUM * EPS )' )
454 9978
FORMAT( 3x, i2,
': norm( X - XACT ) / ',
455 $
'( norm(XACT) * (error bound) )' )
456 9977
FORMAT( 3x, i2,
': (backward error) / EPS' )
457 9976
FORMAT( 3x, i2,
': RCOND * CNDNUM - 1.0' )
458 9975
FORMAT( 3x, i2,
': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
459 $
', or', / 7x,
'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
461 9974
FORMAT( 3x, i2,
': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
462 $
', or', / 7x,
'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
464 9973
FORMAT( 3x, i2,
': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
465 $
', or', / 7x,
'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
467 9972
FORMAT( 3x, i2,
': abs( WORK(1) - RPVGRW ) /',
468 $
' ( max( WORK(1), RPVGRW ) * EPS )' )
logical function lsamen(N, CA, CB)
LSAMEN
logical function lsame(CA, CB)
LSAME