55* Online html documentation available at
66* http://www.netlib.org/lapack/explore-html/
77*
8- * > \htmlonly
98* > Download DSTEDC + dependencies
109* > <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dstedc.f">
1110* > [TGZ]</a>
1211* > <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dstedc.f">
1312* > [ZIP]</a>
1413* > <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstedc.f">
1514* > [TXT]</a>
16- * > \endhtmlonly
1715*
1816* Definition:
1917* ===========
167165* > \author Univ. of Colorado Denver
168166* > \author NAG Ltd.
169167*
170- * > \ingroup auxOTHERcomputational
168+ * > \ingroup stedc
171169*
172170* > \par Contributors:
173171* ==================
179177* =====================================================================
180178 SUBROUTINE DSTEDC ( COMPZ , N , D , E , Z , LDZ , WORK , LWORK , IWORK ,
181179 $ LIWORK , INFO )
180+ IMPLICIT NONE
182181*
183182* -- LAPACK computational routine --
184183* -- LAPACK is a software package provided by Univ. of Tennessee, --
@@ -208,11 +207,13 @@ SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
208207* .. External Functions ..
209208 LOGICAL LSAME
210209 INTEGER ILAENV
211- DOUBLE PRECISION DLAMCH, DLANST
212- EXTERNAL LSAME, ILAENV, DLAMCH, DLANST
210+ DOUBLE PRECISION DLAMCH, DLANST, DROUNDUP_LWORK
211+ EXTERNAL LSAME, ILAENV, DLAMCH, DLANST,
212+ $ DROUNDUP_LWORK
213213* ..
214214* .. External Subroutines ..
215- EXTERNAL DGEMM, DLACPY, DLAED0, DLASCL, DLASET, DLASRT,
215+ EXTERNAL DGEMM, DLACPY, DLAED0, DLASCL, DLASET,
216+ $ DLASRT,
216217 $ DSTEQR, DSTERF, DSWAP, XERBLA
217218* ..
218219* .. Intrinsic Functions ..
@@ -268,7 +269,7 @@ SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
268269 LIWMIN = 3 + 5 * N
269270 END IF
270271 END IF
271- WORK( 1 ) = LWMIN
272+ WORK( 1 ) = DROUNDUP_LWORK( LWMIN)
272273 IWORK( 1 ) = LIWMIN
273274*
274275 IF ( LWORK.LT. LWMIN .AND. .NOT. LQUERY ) THEN
@@ -377,9 +378,11 @@ SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
377378* Scale.
378379*
379380 ORGNRM = DLANST( ' M' , M, D( START ), E( START ) )
380- CALL DLASCL( ' G' , 0 , 0 , ORGNRM, ONE, M, 1 , D( START ), M,
381+ CALL DLASCL( ' G' , 0 , 0 , ORGNRM, ONE, M, 1 , D( START ),
382+ $ M,
381383 $ INFO )
382- CALL DLASCL( ' G' , 0 , 0 , ORGNRM, ONE, M-1 , 1 , E( START ),
384+ CALL DLASCL( ' G' , 0 , 0 , ORGNRM, ONE, M-1 , 1 ,
385+ $ E( START ),
383386 $ M-1 , INFO )
384387*
385388 IF ( ICOMPZ.EQ. 1 ) THEN
@@ -398,7 +401,8 @@ SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
398401*
399402* Scale back.
400403*
401- CALL DLASCL( ' G' , 0 , 0 , ONE, ORGNRM, M, 1 , D( START ), M,
404+ CALL DLASCL( ' G' , 0 , 0 , ONE, ORGNRM, M, 1 , D( START ),
405+ $ M,
402406 $ INFO )
403407*
404408 ELSE
@@ -408,7 +412,8 @@ SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
408412* the length of D, we must solve the sub-problem in a
409413* workspace and then multiply back into Z.
410414*
411- CALL DSTEQR( ' I' , M, D( START ), E( START ), WORK, M,
415+ CALL DSTEQR( ' I' , M, D( START ), E( START ), WORK,
416+ $ M,
412417 $ WORK( M* M+1 ), INFO )
413418 CALL DLACPY( ' A' , N, M, Z( 1 , START ), LDZ,
414419 $ WORK( STOREZ ), N )
@@ -463,7 +468,7 @@ SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
463468 END IF
464469*
465470 50 CONTINUE
466- WORK( 1 ) = LWMIN
471+ WORK( 1 ) = DROUNDUP_LWORK( LWMIN)
467472 IWORK( 1 ) = LIWMIN
468473*
469474 RETURN
0 commit comments