152 SUBROUTINE sorbdb5( M1, M2, N, X1, INCX1, X2, INCX2, Q1, LDQ1,
154 $ LDQ2, WORK, LWORK, INFO )
161 INTEGER INCX1, INCX2, INFO, LDQ1, LDQ2, LWORK, M1, M2,
165 REAL Q1(LDQ1,*), Q2(LDQ2,*), WORK(*), X1(*), X2(*)
172 PARAMETER ( REALZERO = 0.0e0 )
174 parameter( one = 1.0e0, zero = 0.0e0 )
177 INTEGER CHILDINFO, I, J
178 REAL EPS, NORM, SCL, SSQ
185 EXTERNAL SLAMCH, SNRM2
197 ELSE IF( m2 .LT. 0 )
THEN
199 ELSE IF( n .LT. 0 )
THEN
201 ELSE IF( incx1 .LT. 1 )
THEN
203 ELSE IF( incx2 .LT. 1 )
THEN
205 ELSE IF( ldq1 .LT. max( 1, m1 ) )
THEN
207 ELSE IF( ldq2 .LT. max( 1, m2 ) )
THEN
209 ELSE IF( lwork .LT. n )
THEN
213 IF( info .NE. 0 )
THEN
214 CALL xerbla(
'SORBDB5', -info )
218 eps = slamch(
'Precision' )
224 CALL slassq( m1, x1, incx1, scl, ssq )
225 CALL slassq( m2, x2, incx2, scl, ssq )
226 norm = scl * sqrt( ssq )
228 IF( norm .GT. real( n ) * eps )
THEN
234 CALL sscal( m1, one / norm, x1, incx1 )
235 CALL sscal( m2, one / norm, x2, incx2 )
236 CALL sorbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
237 $ ldq2, work, lwork, childinfo )
241 IF( snrm2(m1,x1,incx1) .NE. realzero
242 $ .OR. snrm2(m2,x2,incx2) .NE. realzero )
THEN
258 CALL sorbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
259 $ ldq2, work, lwork, childinfo )
260 IF( snrm2(m1,x1,incx1) .NE. realzero
261 $ .OR. snrm2(m2,x2,incx2) .NE. realzero )
THEN
277 CALL sorbdb6( m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2,
278 $ ldq2, work, lwork, childinfo )
279 IF( snrm2(m1,x1,incx1) .NE. realzero
280 $ .OR. snrm2(m2,x2,incx2) .NE. realzero )
THEN
subroutine sorbdb5(m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info)
SORBDB5
subroutine sorbdb6(m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2, work, lwork, info)
SORBDB6