252 CHARACTER norm, transr, uplo
264 parameter( one = 1.0e+0, zero = 0.0e+0 )
267 INTEGER i, j, ifm, ilu, noe, n1, k, l, lda
268 REAL scale, s,
VALUE, aa, temp
278 INTRINSIC abs, real, sqrt
285 ELSE IF( n.EQ.1 )
THEN
293 IF( mod( n, 2 ).EQ.0 )
299 IF(
lsame( transr,
'C' ) )
305 IF(
lsame( uplo,
'U' ) )
338 temp = abs( real( a( j+j*lda ) ) )
339 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
342 temp = abs( a( i+j*lda ) )
343 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
348 temp = abs( a( i+j*lda ) )
349 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
354 temp = abs( real( a( i+j*lda ) ) )
355 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
359 temp = abs( real( a( i+j*lda ) ) )
360 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
363 temp = abs( a( i+j*lda ) )
364 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
372 temp = abs( a( i+j*lda
373 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
378 temp = abs( real( a( i+j*lda ) ) )
379 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
383 temp = abs( real( a( i+j*lda ) ) )
384 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
386 DO i = k + j + 1, n - 1
387 temp = abs( a( i+j*lda ) )
388 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
393 temp = abs( a( i+j*lda ) )
394 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
399 temp = abs( real( a( i+j*lda ) ) )
400 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
409 temp = abs( a( i+j*lda ) )
410 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
415 temp = abs( real( a( i+j*lda ) ) )
416 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
420 temp = abs( real( a( i+j*lda ) ) )
421 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
424 temp = abs( a( i+j*lda ) )
425 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
431 temp = abs( a( i+j*lda ) )
432 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
438 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
442 temp = abs( a( i+j*lda ) )
443 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
451 temp = abs( a( i+j*lda ) )
452 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
458 temp = abs( real( a( 0+j*lda ) ) )
459 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
462 temp = abs( a( i+j*lda ) )
463 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
468 temp = abs( a( i+j*lda ) )
469 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
474 temp = abs( real( a( i+j*lda ) ) )
475 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
479 temp = abs( real( a( i+j*lda ) ) )
480 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
482 DO i = j - k + 2, k - 1
483 temp = abs( a( i+j*lda ) )
484 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
498 temp = abs( real( a( j+j*lda ) ) )
499 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
501 temp = abs( real( a( j+1+j*lda ) ) )
502 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
505 temp = abs( a( i+j*lda ) )
506 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
511 temp = abs( a( i+j*lda ) )
512 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
517 temp = abs( real( a( i+j*lda ) ) )
518 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
522 temp = abs( real( a( i+j*lda ) ) )
523 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
526 temp = abs( a( i+j*lda ) )
527 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
535 temp = abs( a( i+j*lda ) )
536 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
541 temp = abs( real( a( i+j*lda ) ) )
542 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
546 temp = abs( real( a( i+j*lda ) ) )
547 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
550 temp = abs( a( i+j*lda ) )
551 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
556 temp = abs( a( i+j*lda ) )
557 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
562 temp = abs( real( a( i+j*lda ) ) )
563 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
567 temp = abs( real( a( i+j*lda ) ) )
568 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
577 temp = abs( real( a( j+j*lda ) ) )
578 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
581 temp = abs( a( i+j*lda ) )
582 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
587 temp = abs( a( i+j*lda ) )
588 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
593 temp = abs( real( a( i+j*lda ) ) )
594 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
598 temp = abs( real( a( i+j*lda ) ) )
599 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
602 temp = abs( a( i+j*lda ) )
603 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
609 temp = abs( a( i+j*lda ) )
610 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
616 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
620 temp = abs( a( i+j*lda ) )
621 IF(
VALUE .LT. temp .OR.
sisnan
629 temp = abs( a( i+j*lda ) )
630 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
636 temp = abs( real( a( 0+j*lda ) ) )
637 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
640 temp = abs( a( i+j*lda ) )
641 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
646 temp = abs( a( i+j*lda ) )
647 IF(
VALUE .LT. temp .OR.
652 temp = abs( real( a( i+j*lda ) ) )
653 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
657 temp = abs( real( a( i+j*lda ) ) )
658 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
660 DO i = j - k + 1, k - 1
661 temp = abs( a( i+j*lda ) )
662 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
668 temp = abs( a( i+j*lda ) )
669 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
674 temp = abs( real( a( i+j*lda ) ) )
675 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
681 $ (
norm.EQ.'1
' ) ) THEN
698 AA = ABS( A( I+J*LDA ) )
701 WORK( I ) = WORK( I ) + AA
703 AA = ABS( REAL( A( I+J*LDA ) ) )
709 AA = ABS( REAL( A( I+J*LDA ) ) )
711 WORK( J ) = WORK( J ) + AA
715 AA = ABS( A( I+J*LDA ) )
718 WORK( L ) = WORK( L ) + AA
720 WORK( J ) = WORK( J ) + S
726.LT..OR.
IF( VALUE TEMP SISNAN( TEMP ) )
739 AA = ABS( A( I+J*LDA ) )
742 WORK( I+K ) = WORK( I+K ) + AA
745 AA = ABS( REAL( A( I+J*LDA ) ) )
748 WORK( I+K ) = WORK( I+K ) + S
752 AA = ABS( REAL( A( I+J*LDA ) ) )
758 AA = ABS( A( I+J*LDA ) )
761 WORK( L ) = WORK( L ) + AA
763 WORK( J ) = WORK( J ) + S
768.LT..OR.
IF( VALUE TEMP SISNAN( TEMP ) )
782 AA = ABS( A( I+J*LDA ) )
785 WORK( I ) = WORK( I ) + AA
787 AA = ABS( REAL( A( I+J*LDA ) ) )
791 AA = ABS( REAL( A( I+J*LDA ) ) )
793 WORK( J ) = WORK( J ) + AA
797 AA = ABS( A( I+J*LDA ) )
800 WORK( L ) = WORK( L ) + AA
802 WORK( J ) = WORK( J ) + S
807.LT..OR.
IF( VALUE TEMP SISNAN( TEMP ) )
818 AA = ABS( A( I+J*LDA ) )
821 WORK( I+K ) = WORK( I+K ) + AA
823 AA = ABS( REAL( A( I+J*LDA ) ) )
826 WORK( I+K ) = WORK( I+K ) + S
829 AA = ABS( REAL( A( I+J*LDA ) ) )
835 AA = ABS( A( I+J*LDA ) )
838 WORK( L ) = WORK( L ) + AA
840 WORK( J ) = WORK( J ) + S
845.LT..OR.
IF( VALUE TEMP SISNAN( TEMP ) )
867 AA = ABS( A( I+J*LDA ) )
869 WORK( I+N1 ) = WORK( I+N1 ) + AA
875 S = ABS( REAL( A( 0+J*LDA ) ) )
878 AA = ABS( A( I+J*LDA ) )
880 WORK( I+N1 ) = WORK( I+N1 ) + AA
883 WORK( J ) = WORK( J ) + S
887 AA = ABS( A( I+J*LDA ) )
889 WORK( I ) = WORK( I ) + AA
893 AA = ABS( REAL( A( I+J*LDA ) ) )
896 WORK( J-K ) = WORK( J-K ) + S
898 S = ABS( REAL( A( I+J*LDA ) ) )
902 AA = ABS( A( I+J*LDA ) )
904 WORK( L ) = WORK( L ) + AA
907 WORK( J ) = WORK( J ) + S
912.LT..OR.
IF( VALUE TEMP SISNAN( TEMP ) )
926 AA = ABS( A( I+J*LDA ) )
928 WORK( I ) = WORK( I ) + AA
931 AA = ABS( REAL( A( I+J*LDA ) ) )
938 AA = ABS( REAL( A( I+J*LDA ) ) )
940 DO L = K + J + 1, N - 1
942 AA = ABS( A( I+J*LDA ) )
945 WORK( L ) = WORK( L ) + AA
947 WORK( K+J ) = WORK( K+J ) + S
952 AA = ABS( A( I+J*LDA ) )
954 WORK( I ) = WORK( I ) + AA
958 AA = ABS( REAL( A( I+J*LDA ) ) )
967 AA = ABS( A( I+J*LDA ) )
969 WORK( I ) = WORK( I ) + AA
972 WORK( J ) = WORK( J ) + S
977.LT..OR.
IF( VALUE TEMP SISNAN( TEMP ) )
991 AA = ABS( A( I+J*LDA ) )
993 WORK( I+K ) = WORK( I+K ) + AA
999 AA = ABS( REAL( A( 0+J*LDA ) ) )
1003 AA = ABS( A( I+J*LDA ) )
1005 WORK( I+K ) = WORK( I+K ) + AA
1008 WORK( J ) = WORK( J ) + S
1012 AA = ABS( A( I+J*LDA ) )
1014 WORK( I ) = WORK( I ) + AA
1018 AA = ABS( REAL( A( I+J*LDA ) ) )
1021 WORK( J-K-1 ) = WORK( J-K-1 ) + S
1023 AA = ABS( REAL( A( I+J*LDA ) ) )
1028 AA = ABS( A( I+J*LDA ) )
1030 WORK( L ) = WORK( L ) + AA
1033 WORK( J ) = WORK( J ) + S
1038 AA = ABS( A( I+J*LDA ) )
1040 WORK( I ) = WORK( I ) + AA
1044 AA = ABS( REAL( A( I+J*LDA ) ) )
1047 WORK( I ) = WORK( I ) + S
1051.LT..OR.
IF( VALUE TEMP SISNAN( TEMP ) )
1060 S = ABS( REAL( A( 0 ) ) )
1065 WORK( I+K ) = WORK( I+K ) + AA
1068 WORK( K ) = WORK( K ) + S
1073 AA = ABS( A( I+J*LDA ) )
1075 WORK( I ) = WORK( I ) + AA
1078 AA = ABS( REAL( A( I+J*LDA ) ) )
1085 AA = ABS( REAL( A( I+J*LDA ) ) )
1087 DO L = K + J + 1, N - 1
1089 AA = ABS( A( I+J*LDA ) )
1092 WORK( L ) = WORK( L ) + AA
1094 WORK( K+J ) = WORK( K+J ) + S
1099 AA = ABS( A( I+J*LDA ) )
1101 WORK( I ) = WORK( I ) + AA
1106 AA = ABS( REAL( A( I+J*LDA ) ) )
1116 AA = ABS( A( I+J*LDA ) )
1118 WORK( I ) = WORK( I ) + AA
1121 WORK( J-1 ) = WORK( J-1 ) + S
1126.LT..OR.
IF( VALUE TEMP SISNAN( TEMP ) )
1132 ELSE IF( ( LSAME( NORM, 'f.OR.
' ) ) ( LSAME( NORM, 'e
' ) ) ) THEN
1146 CALL CLASSQ( K-J-2, A( K+J+1+J*LDA ), 1, SCALE, S )
1150 CALL CLASSQ( K+J-1, A( 0+J*LDA ), 1, SCALE, S )
1160.NE.
IF( AAZERO ) THEN
1161.LT.
IF( SCALEAA ) THEN
1162 S = ONE + S*( SCALE / AA )**2
1165 S = S + ( AA / SCALE )**2
1168 AA = REAL( A( L+1 ) )
1170.NE.
IF( AAZERO ) THEN
1171.LT.
IF( SCALEAA ) THEN
1172 S = ONE + S*( SCALE / AA )**2
1175 S = S + ( AA / SCALE )**2
1182.NE.
IF( AAZERO ) THEN
1183.LT.
IF( SCALEAA ) THEN
1184 S = ONE + S*( SCALE / AA )**2
1187 S = S + ( AA / SCALE )**2
1193 CALL CLASSQ( N-J-1, A( J+1+J*LDA ), 1, SCALE, S )
1197 CALL CLASSQ( J, A( 0+( 1+J )*LDA ), 1, SCALE, S )
1204.NE.
IF( AAZERO ) THEN
1205.LT.
IF( SCALEAA ) THEN
1206 S = ONE + S*( SCALE / AA )**2
1209 S = S + ( AA / SCALE )**2
1217.NE.
IF( AAZERO ) THEN
1218.LT.
IF( SCALEAA ) THEN
1219 S = ONE + S*( SCALE / AA )**2
1222 S = S + ( AA / SCALE )**2
1225 AA = REAL( A( L+1 ) )
1227.NE.
IF( AAZERO ) THEN
1228.LT.
IF( SCALEAA ) THEN
1229 S = ONE + S*( SCALE / AA )**2
1232 S = S + ( AA / SCALE )**2
1243 CALL CLASSQ( J, A( 0+( K+J )*LDA ), 1, SCALE, S )
1247 CALL CLASSQ( K, A( 0+J*LDA ), 1, SCALE, S )
1251 CALL CLASSQ( K-J-1, A( J+1+( J+K-1 )*LDA ), 1,
1261.NE.
IF( AAZERO ) THEN
1262.LT.
IF( SCALEAA ) THEN
1263 S = ONE + S*( SCALE / AA )**2
1266 S = S + ( AA / SCALE )**2
1274.NE.
IF( AAZERO ) THEN
1275.LT.
IF( SCALEAA ) THEN
1276 S = ONE + S*( SCALE / AA )**2
1279 S = S + ( AA / SCALE )**2
1282 AA = REAL( A( L+1 ) )
1284.NE.
IF( AAZERO ) THEN
1285.LT.
IF( SCALEAA ) THEN
1286 S = ONE + S*( SCALE / AA )**2
1289 S = S + ( AA / SCALE )**2
1297 CALL CLASSQ( J, A( 0+J*LDA ), 1, SCALE, S )
1301 CALL CLASSQ( K, A( 0+J*LDA ), 1, SCALE, S )
1305 CALL CLASSQ( K-J-2, A( J+2+J*LDA ), 1, SCALE, S )
1315.NE.
IF( AAZERO ) THEN
1316.LT.
IF( SCALEAA ) THEN
1317 S = ONE + S*( SCALE / AA )**2
1320 S = S + ( AA / SCALE )**2
1323 AA = REAL( A( L+1 ) )
1325.NE.
IF( AAZERO ) THEN
1326.LT.
IF( SCALEAA ) THEN
1327 S = ONE + S*( SCALE / AA )**2
1330 S = S + ( AA / SCALE )**2
1338.NE.
IF( AAZERO ) THEN
1339.LT.
IF( SCALEAA ) THEN
1340 S = ONE + S*( SCALE / AA )**2
1343 S = S + ( AA / SCALE )**2
1355 CALL CLASSQ( K-J-1, A( K+J+2+J*LDA ), 1, SCALE, S )
1359 CALL CLASSQ( K+J, A( 0+J*LDA ), 1, SCALE, S )
1369.NE.
IF( AAZERO ) THEN
1370.LT.
IF( SCALEAA ) THEN
1371 S = ONE + S*( SCALE / AA )**2
1374 S = S + ( AA / SCALE )**2
1377 AA = REAL( A( L+1 ) )
1379.NE.
IF( AAZERO ) THEN
1380.LT.
IF( SCALEAA ) THEN
1381 S = ONE + S*( SCALE / AA )**2
1384 S = S + ( AA / SCALE )**2
1392 CALL CLASSQ( N-J-1, A( J+2+J*LDA ), 1, SCALE, S )
1396 CALL CLASSQ( J, A( 0+J*LDA ), 1, SCALE, S )
1406.NE.
IF( AAZERO ) THEN
1407.LT.
IF( SCALEAA ) THEN
1408 S = ONE + S*( SCALE / AA )**2
1411 S = S + ( AA / SCALE )**2
1414 AA = REAL( A( L+1 ) )
1416.NE.
IF( AAZERO ) THEN
1417.LT.
IF( SCALEAA ) THEN
1418 S = ONE + S*( SCALE / AA )**2
1421 S = S + ( AA / SCALE )**2
1432 CALL CLASSQ( J, A( 0+( K+1+J )*LDA ), 1, SCALE, S )
1436 CALL CLASSQ( K, A( 0+J*LDA ), 1, SCALE, S )
1440 CALL CLASSQ( K-J-1, A( J+1+( J+K )*LDA ), 1, SCALE,
1450.NE.
IF( AAZERO ) THEN
1451.LT.
IF( SCALEAA ) THEN
1452 S = ONE + S*( SCALE / AA )**2
1455 S = S + ( AA / SCALE )**2
1463.NE.
IF( AAZERO ) THEN
1464.LT.
IF( SCALEAA ) THEN
1465 S = ONE + S*( SCALE / AA )**2
1468 S = S + ( AA / SCALE )**2
1471 AA = REAL( A( L+1 ) )
1473.NE.
IF( AAZERO ) THEN
1474.LT.
IF( SCALEAA ) THEN
1475 S = ONE + S*( SCALE / AA )**2
1478 S = S + ( AA / SCALE )**2
1487.NE.
IF( AAZERO ) THEN
1488.LT.
IF( SCALEAA ) THEN
1489 S = ONE + S*( SCALE / AA )**2
1492 S = S + ( AA / SCALE )**2
1498 CALL CLASSQ( J, A( 0+( J+1 )*LDA ), 1, SCALE, S )
1502 CALL CLASSQ( K, A( 0+J*LDA ), 1, SCALE, S )
1506 CALL CLASSQ( K-J-1, A( J+1+J*LDA ), 1, SCALE, S )
1515.NE.
IF( AAZERO ) THEN
1516.LT.
IF( SCALEAA ) THEN
1517 S = ONE + S*( SCALE / AA )**2
1520 S = S + ( AA / SCALE )**2
1528.NE.
IF( AAZERO ) THEN
1529.LT.
IF( SCALEAA ) THEN
1530 S = ONE + S*( SCALE / AA )**2
1533 S = S + ( AA / SCALE )**2
1536 AA = REAL( A( L+1 ) )
1538.NE.
IF( AAZERO ) THEN
1539.LT.
IF( SCALEAA ) THEN
1540 S = ONE + S*( SCALE / AA )**2
1543 S = S + ( AA / SCALE )**2
1551.NE.
IF( AAZERO ) THEN
1552.LT.
IF( SCALEAA ) THEN
1553 S = ONE + S*( SCALE / AA )**2
1556 S = S + ( AA / SCALE )**2
1562 VALUE = SCALE*SQRT( S )
real function clanhf(norm, transr, uplo, n, a, work)
CLANHF returns the value of the 1-norm, or the Frobenius norm, or the infinity norm,...