200      SUBROUTINE slasd1( NL, NR, SQRE, D, ALPHA, BETA, U, LDU, VT,
 
  202     $                   IDXQ, IWORK, WORK, INFO )
 
  209      INTEGER            INFO, LDU, LDVT, NL, NR, SQRE
 
  213      INTEGER            IDXQ( * ), IWORK( * )
 
  214      REAL               D( * ), U( LDU, * ), VT( LDVT, * ), WORK( * )
 
  222      PARAMETER          ( ONE = 1.0e+0, zero = 0.0e+0 )
 
  225      INTEGER            COLTYP, I, IDX, IDXC, IDXP, IQ, ISIGMA, IU2,
 
  226     $                   IVT2, IZ, K, LDQ, LDU2, LDVT2, M, N, N1, N2
 
  244      ELSE IF( nr.LT.1 ) 
THEN 
  246      ELSE IF( ( sqre.LT.0 ) .OR. ( sqre.GT.1 ) ) 
THEN 
  250         CALL xerbla( 
'SLASD1', -info )
 
  277      orgnrm = max( abs( alpha ), abs( beta ) )
 
  280         IF( abs( d( i ) ).GT.orgnrm ) 
THEN 
  281            orgnrm = abs( d( i ) )
 
  284      CALL slascl( 
'G', 0, 0, orgnrm, one, n, 1, d, n, info )
 
  285      alpha = alpha / orgnrm
 
  290      CALL slasd2( nl, nr, sqre, k, d, work( iz ), alpha, beta, u,
 
  292     $             vt, ldvt, work( isigma ), work( iu2 ), ldu2,
 
  293     $             work( ivt2 ), ldvt2, iwork( idxp ), iwork( idx ),
 
  294     $             iwork( idxc ), idxq, iwork( coltyp ), info )
 
  299      CALL slasd3( nl, nr, sqre, k, d, work( iq ), ldq,
 
  301     $             u, ldu, work( iu2 ), ldu2, vt, ldvt, work( ivt2 ),
 
  302     $             ldvt2, iwork( idxc ), iwork( coltyp ), work( iz ),
 
  313      CALL slascl( 
'G', 0, 0, one, orgnrm, n, 1, d, n, info )
 
  319      CALL slamrg( n1, n2, d, 1, -1, idxq )
 
 
subroutine slascl(type, kl, ku, cfrom, cto, m, n, a, lda, info)
SLASCL multiplies a general rectangular matrix by a real scalar defined as cto/cfrom.
subroutine slasd1(nl, nr, sqre, d, alpha, beta, u, ldu, vt, ldvt, idxq, iwork, work, info)
SLASD1 computes the SVD of an upper bidiagonal matrix B of the specified size. Used by sbdsdc.
subroutine slasd2(nl, nr, sqre, k, d, z, alpha, beta, u, ldu, vt, ldvt, dsigma, u2, ldu2, vt2, ldvt2, idxp, idx, idxc, idxq, coltyp, info)
SLASD2 merges the two sets of singular values together into a single sorted set. Used by sbdsdc.
subroutine slasd3(nl, nr, sqre, k, d, q, ldq, dsigma, u, ldu, u2, ldu2, vt, ldvt, vt2, ldvt2, idxc, ctot, z, info)
SLASD3 finds all square roots of the roots of the secular equation, as defined by the values in D and...