206 REAL function
slansf( norm, transr, uplo, n, a, work )
213 CHARACTER norm, transr, uplo
217 REAL a( 0: * ), work( 0: * )
225 parameter( one = 1.0e+0, zero = 0.0e+0 )
228 INTEGER i, j, ifm, ilu, noe, n1, k, l, lda
229 REAL scale, s,
VALUE, aa, temp
246 ELSE IF( n.EQ.1 )
THEN
254 IF( mod( n, 2 ).EQ.0 )
260 IF(
lsame( transr,
'T' ) )
266 IF(
lsame( uplo,
'U' ) )
285 IF(
lsame( norm,
'M' ) )
THEN
297 temp = abs( a( i+j*lda ) )
298 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
306 temp = abs( a( i+j*lda ) )
307 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
318 temp = abs( a( i+j*lda ) )
319 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
327 temp = abs( a( i+j*lda ) )
328 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
334 ELSE IF( (
lsame( norm,
'I' ) ) .OR.
335 $ (
lsame( norm,
'O' ) ) .OR.
336 $ ( norm.EQ.
'1' ) )
THEN
351 aa = abs( a( i+j*lda ) )
354 work( i ) = work( i ) + aa
356 aa = abs( a( i+j*lda ) )
362 aa = abs( a( i+j*lda ) )
364 work( j ) = work( j ) + aa
368 aa = abs( a( i+j*lda ) )
371 work( l ) = work( l ) + aa
373 work( j ) = work( j ) + s
379 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
392 aa = abs( a( i+j*lda ) )
395 work( i+k ) = work( i+k ) + aa
398 aa = abs( a( i+j*lda ) )
401 work( i+k ) = work( i+k ) + s
405 aa = abs( a( i+j*lda ) )
411 aa = abs( a( i+j*lda ) )
414 work( l ) = work( l ) + aa
416 work( j ) = work( j ) + s
421 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
434 aa = abs( a( i+j*lda ) )
437 work( i ) = work( i ) + aa
439 aa = abs( a( i+j*lda ) )
443 aa = abs( a( i+j*lda ) )
445 work( j ) = work( j ) + aa
449 aa = abs( a( i+j*lda ) )
452 work( l ) = work( l ) + aa
454 work( j ) = work( j ) + s
459 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
470 aa = abs( a( i+j*lda ) )
473 work( i+k ) = work( i+k ) + aa
475 aa = abs( a( i+j*lda ) )
478 work( i+k ) = work( i+k ) + s
481 aa = abs( a( i+j*lda ) )
487 aa = abs( a( i+j*lda ) )
490 work( l ) = work( l ) + aa
492 work( j ) = work( j ) + s
497 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
518 aa = abs( a( i+j*lda ) )
520 work( i+n1 ) = work( i+n1 ) + aa
526 s = abs( a( 0+j*lda ) )
529 aa = abs( a( i+j*lda ) )
531 work( i+n1 ) = work( i+n1 ) + aa
534 work( j ) = work( j ) + s
538 aa = abs( a( i+j*lda ) )
540 work( i ) = work( i ) + aa
544 aa = abs( a( i+j*lda ) )
547 work( j-k ) = work( j-k ) + s
549 s = abs( a( i+j*lda ) )
553 aa = abs( a( i+j*lda ) )
555 work( l ) = work( l ) + aa
558 work( j ) = work( j ) + s
563 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
577 aa = abs( a( i+j*lda ) )
579 work( i ) = work( i ) + aa
582 aa = abs( a( i+j*lda ) )
589 aa = abs( a( i+j*lda ) )
591 DO l = k + j + 1, n - 1
593 aa = abs( a( i+j*lda ) )
596 work( l ) = work( l ) + aa
598 work( k+j ) = work( k+j ) + s
603 aa = abs( a( i+j*lda ) )
605 work( i ) = work( i ) + aa
609 aa = abs( a( i+j*lda ) )
618 aa = abs( a( i+j*lda ) )
620 work( i ) = work( i ) + aa
623 work( j ) = work( j ) + s
628 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
641 aa = abs( a( i+j*lda ) )
643 work( i+k ) = work( i+k ) + aa
649 aa = abs( a( 0+j*lda ) )
653 aa = abs( a( i+j*lda ) )
655 work( i+k ) = work( i+k ) + aa
658 work( j ) = work( j ) + s
662 aa = abs( a( i+j*lda ) )
664 work( i ) = work( i ) + aa
668 aa = abs( a( i+j*lda ) )
671 work( j-k-1 ) = work( j-k-1 ) + s
673 aa = abs( a( i+j*lda ) )
678 aa = abs( a( i+j*lda ) )
680 work( l ) = work( l ) + aa
683 work( j ) = work( j ) + s
688 aa = abs( a( i+j*lda ) )
690 work( i ) = work( i ) + aa
694 aa = abs( a( i+j*lda ) )
697 work( i ) = work( i ) + s
701 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
715 work( i+k ) = work( i+k ) + aa
718 work( k ) = work( k ) + s
723 aa = abs( a( i+j*lda ) )
725 work( i ) = work( i ) + aa
728 aa = abs( a( i+j*lda ) )
735 aa = abs( a( i+j*lda ) )
737 DO l = k + j + 1, n - 1
739 aa = abs( a( i+j*lda ) )
742 work( l ) = work( l ) + aa
744 work( k+j ) = work( k+j ) + s
749 aa = abs( a( i+j*lda ) )
751 work( i ) = work( i ) + aa
755 aa = abs( a( i+j*lda ) )
764 aa = abs( a( i+j*lda ) )
766 work( i ) = work( i ) + aa
769 work( j-1 ) = work( j-1 ) + s
774 IF(
VALUE .LT. temp .OR.
sisnan( temp ) )
780 ELSE IF( (
lsame( norm,
'F' ) ) .OR.
781 $ (
lsame( norm,
'E' ) ) )
THEN
795 CALL slassq( k-j-2, a( k+j+1+j*lda ), 1, scale,
800 CALL slassq( k+j-1, a( 0+j*lda ), 1, scale, s )
805 CALL slassq( k-1, a( k ), lda+1, scale, s )
807 CALL slassq( k, a( k-1 ), lda+1, scale, s )
812 CALL slassq( n-j-1, a( j+1+j*lda ), 1, scale,
817 CALL slassq( j, a( 0+( 1+j )*lda ), 1, scale,
823 CALL slassq( k, a( 0 ), lda+1, scale, s )
825 CALL slassq( k-1, a( 0+lda ), lda+1, scale, s )
833 CALL slassq( j, a( 0+( k+j )*lda ), 1, scale,
838 CALL slassq( k, a( 0+j*lda ), 1, scale, s )
842 CALL slassq( k-j-1, a( j+1+( j+k-1 )*lda ), 1,
848 CALL slassq( k-1, a( 0+k*lda ), lda+1, scale, s )
850 CALL slassq( k, a( 0+( k-1 )*lda ), lda+1, scale,
856 CALL slassq( j, a( 0+j*lda ), 1, scale, s )
860 CALL slassq( k, a( 0+j*lda ), 1, scale, s )
864 CALL slassq( k-j-2, a( j+2+j*lda ), 1, scale,
870 CALL slassq( k, a( 0 ), lda+1, scale, s )
872 CALL slassq( k-1, a( 1 ), lda+1, scale, s )
883 CALL slassq( k-j-1, a( k+j+2+j*lda ), 1, scale,
888 CALL slassq( k+j, a( 0+j*lda ), 1, scale, s )
893 CALL slassq( k, a( k+1 ), lda+1, scale, s )
895 CALL slassq( k, a( k ), lda+1, scale, s )
900 CALL slassq( n-j-1, a( j+2+j*lda ), 1, scale,
905 CALL slassq( j, a( 0+j*lda ), 1, scale, s )
910 CALL slassq( k, a( 1 ), lda+1, scale, s )
912 CALL slassq( k, a( 0 ), lda+1, scale, s )
920 CALL slassq( j, a( 0+( k+1+j )*lda ), 1, scale,
925 CALL slassq( k, a( 0+j*lda ), 1, scale, s )
929 CALL slassq( k-j-1, a( j+1+( j+k )*lda ), 1,
936 CALL slassq( k, a( 0+( k+1 )*lda ), lda+1, scale,
939 CALL slassq( k, a( 0+k*lda ), lda+1, scale, s )
944 CALL slassq( j, a( 0+( j+1 )*lda ), 1, scale,
949 CALL slassq( k, a( 0+j*lda ), 1, scale, s )
953 CALL slassq( k-j-1, a( j+1+j*lda ), 1, scale,
959 CALL slassq( k, a( lda ), lda+1, scale, s )
961 CALL slassq( k, a( 0 ), lda+1, scale, s )
966 VALUE = scale*sqrt( s )