Patch from Tim Hopkins sent by email on March 14th, 2016
authorTim Hopkins, University of Kent <@>
Fri, 17 Jun 2016 21:10:39 +0000 (17:10 -0400)
committerJulien Langou <julien.langou@ucdenver.edu>
Fri, 17 Jun 2016 21:10:39 +0000 (17:10 -0400)
(merge from Julien on June 17th, 2016)

23 files changed:
SRC/CMakeLists.txt
SRC/cgeev.f
SRC/cgeevx.f
SRC/cuncsd.f
SRC/cuncsd2by1.f
SRC/dgeev.f
SRC/dgeevx.f
SRC/dorcsd2by1.f
SRC/sgeev.f
SRC/sgeevx.f
SRC/sorcsd2by1.f
SRC/zgeev.f
SRC/zgeevx.f
SRC/zuncsd2by1.f
TESTING/EIG/cchkee.f
TESTING/EIG/cerrgg.f
TESTING/EIG/dchkee.f
TESTING/EIG/ddrvbd.f
TESTING/EIG/derrgg.f
TESTING/EIG/schkee.f
TESTING/EIG/serrgg.f
TESTING/EIG/zchkee.f
TESTING/EIG/zerrgg.f

index 4857f474745b79f3bbca55668464c0c682d16940..03441b942634df739ceafef874e4cb179ddc5469 100644 (file)
@@ -141,7 +141,7 @@ set(SLASRC
    stbrfs.f stbtrs.f stgevc.f stgex2.f stgexc.f stgsen.f 
    stgsja.f stgsna.f stgsy2.f stgsyl.f stpcon.f stprfs.f stptri.f 
    stptrs.f 
-   strcon.f strevc.f strevc3.f strexc.f strrfs.f strsen.f strsna.f strsyl.f 
+   strcon.f strevc.f strexc.f strrfs.f strsen.f strsna.f strsyl.f 
    strti2.f strtri.f strtrs.f stzrzf.f sstemr.f 
    slansf.f spftrf.f spftri.f spftrs.f ssfrk.f stfsm.f stftri.f stfttp.f 
    stfttr.f stpttf.f stpttr.f strttf.f strttp.f 
@@ -221,7 +221,7 @@ set(CLASRC
    ctbcon.f ctbrfs.f ctbtrs.f ctgevc.f ctgex2.f 
    ctgexc.f ctgsen.f ctgsja.f ctgsna.f ctgsy2.f ctgsyl.f ctpcon.f 
    ctprfs.f ctptri.f 
-   ctptrs.f ctrcon.f ctrevc.f ctrevc3.f ctrexc.f ctrrfs.f ctrsen.f ctrsna.f 
+   ctptrs.f ctrcon.f ctrevc.f ctrexc.f ctrrfs.f ctrsen.f ctrsna.f 
    ctrsyl.f ctrti2.f ctrtri.f ctrtrs.f ctzrzf.f cung2l.f cung2r.f 
    cungbr.f cunghr.f cungl2.f cunglq.f cungql.f cungqr.f cungr2.f 
    cungrq.f cungtr.f cunm2l.f cunm2r.f cunmbr.f cunmhr.f cunml2.f cunm22.f
@@ -302,7 +302,7 @@ set(DLASRC
    dtbrfs.f dtbtrs.f dtgevc.f dtgex2.f dtgexc.f dtgsen.f 
    dtgsja.f dtgsna.f dtgsy2.f dtgsyl.f dtpcon.f dtprfs.f dtptri.f 
    dtptrs.f 
-   dtrcon.f dtrevc.f dtrevc3.f dtrexc.f dtrrfs.f dtrsen.f dtrsna.f dtrsyl.f 
+   dtrcon.f dtrevc.f dtrexc.f dtrrfs.f dtrsen.f dtrsna.f dtrsyl.f 
    dtrti2.f dtrtri.f dtrtrs.f dtzrzf.f dstemr.f 
    dsgesv.f dsposv.f dlag2s.f slag2d.f dlat2s.f 
    dlansf.f dpftrf.f dpftri.f dpftrs.f dsfrk.f dtfsm.f dtftri.f dtfttp.f 
@@ -383,7 +383,7 @@ set(ZLASRC
    ztbcon.f ztbrfs.f ztbtrs.f ztgevc.f ztgex2.f 
    ztgexc.f ztgsen.f ztgsja.f ztgsna.f ztgsy2.f ztgsyl.f ztpcon.f 
    ztprfs.f ztptri.f 
-   ztptrs.f ztrcon.f ztrevc.f ztrevc3.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f 
+   ztptrs.f ztrcon.f ztrevc.f ztrexc.f ztrrfs.f ztrsen.f ztrsna.f 
    ztrsyl.f ztrti2.f ztrtri.f ztrtrs.f ztzrzf.f zung2l.f 
    zung2r.f zungbr.f zunghr.f zungl2.f zunglq.f zungql.f zungqr.f zungr2.f 
    zungrq.f zungtr.f zunm2l.f zunm2r.f zunmbr.f zunmhr.f zunml2.f zunm22.f
index a888c64fc8ed24a5f7120516642e6e233a66cd34..ec787ef92df7e513a11d1c0db1cfe45fd3a49ff2 100644 (file)
@@ -26,8 +26,8 @@
 *       INTEGER            INFO, LDA, LDVL, LDVR, LWORK, N
 *       ..
 *       .. Array Arguments ..
-*       REAL               RWORK( * )
-*       COMPLEX            A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+*       REAL   RWORK( * )
+*       COMPLEX         A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
 *      $                   W( * ), WORK( * )
 *       ..
 *  
 *
 *> \date November 2011
 *
+*  @generated from zgeev.f, fortran z -> c, Tue Apr 19 01:47:44 2016
+*
 *> \ingroup complexGEeigen
 *
 *  =====================================================================
       INTEGER            INFO, LDA, LDVL, LDVR, LWORK, N
 *     ..
 *     .. Array Arguments ..
-      REAL               RWORK( * )
-      COMPLEX            A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+      REAL   RWORK( * )
+      COMPLEX         A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
      $                   W( * ), WORK( * )
 *     ..
 *
 *  =====================================================================
 *
 *     .. Parameters ..
-      REAL               ZERO, ONE
+      REAL   ZERO, ONE
       PARAMETER          ( ZERO = 0.0E0, ONE = 1.0E0 )
 *     ..
 *     .. Local Scalars ..
       CHARACTER          SIDE
       INTEGER            HSWORK, I, IBAL, IERR, IHI, ILO, IRWORK, ITAU,
      $                   IWRK, K, LWORK_TREVC, MAXWRK, MINWRK, NOUT
-      REAL               ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
-      COMPLEX            TMP
+      REAL   ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
+      COMPLEX         TMP
 *     ..
 *     .. Local Arrays ..
       LOGICAL            SELECT( 1 )
-      REAL               DUM( 1 )
+      REAL   DUM( 1 )
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL           CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY, CLASCL,
-     $                   CSCAL, CSSCAL, CTREVC3, CUNGHR, SLABAD, XERBLA
+      EXTERNAL           SLABAD, XERBLA, CSSCAL, CGEBAK, CGEBAL, CGEHRD,
+     $                   CHSEQR, CLACPY, CLASCL, CSCAL, CTREVC3, CUNGHR
 *     ..
 *     .. External Functions ..
       LOGICAL            LSAME
-      INTEGER            ILAENV, ISAMAX
-      REAL               CLANGE, SCNRM2, SLAMCH
-      EXTERNAL           LSAME, ILAENV, ISAMAX, CLANGE, SCNRM2, SLAMCH
+      INTEGER            ISAMAX, ILAENV
+      REAL   SLAMCH, SCNRM2, CLANGE
+      EXTERNAL           LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          AIMAG, CMPLX, CONJG, MAX, REAL, SQRT
+      INTRINSIC          REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
 *     ..
 *     .. Executable Statements ..
 *
index b62f070c2b1df9dec2c07614b2ed9776e013385b..0d63cd007d9a169a5b41e5b85cb604bc36d67c05 100644 (file)
 *       .. Scalar Arguments ..
 *       CHARACTER          BALANC, JOBVL, JOBVR, SENSE
 *       INTEGER            IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
-*       REAL               ABNRM
+*       REAL   ABNRM
 *       ..
 *       .. Array Arguments ..
-*       REAL               RCONDE( * ), RCONDV( * ), RWORK( * ),
+*       REAL   RCONDE( * ), RCONDV( * ), RWORK( * ),
 *      $                   SCALE( * )
-*       COMPLEX            A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+*       COMPLEX         A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
 *      $                   W( * ), WORK( * )
 *       ..
 *  
 *>          A is COMPLEX array, dimension (LDA,N)
 *>          On entry, the N-by-N matrix A.
 *>          On exit, A has been overwritten.  If JOBVL = 'V' or
-*>          JOBVR = 'V', A contains the Schur form of the balanced 
+*>          JOBVR = 'V', A contains the Schur form of the balanced
 *>          version of the matrix A.
 *> \endverbatim
 *>
 *
 *> \date November 2011
 *
+*  @generated from zgeevx.f, fortran z -> c, Tue Apr 19 01:47:44 2016
+*
 *> \ingroup complexGEeigen
 *
 *  =====================================================================
 *     .. Scalar Arguments ..
       CHARACTER          BALANC, JOBVL, JOBVR, SENSE
       INTEGER            IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
-      REAL               ABNRM
+      REAL   ABNRM
 *     ..
 *     .. Array Arguments ..
-      REAL               RCONDE( * ), RCONDV( * ), RWORK( * ),
+      REAL   RCONDE( * ), RCONDV( * ), RWORK( * ),
      $                   SCALE( * )
-      COMPLEX            A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+      COMPLEX         A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
      $                   W( * ), WORK( * )
 *     ..
 *
 *  =====================================================================
 *
 *     .. Parameters ..
-      REAL               ZERO, ONE
+      REAL   ZERO, ONE
       PARAMETER          ( ZERO = 0.0E0, ONE = 1.0E0 )
 *     ..
 *     .. Local Scalars ..
       LOGICAL            LQUERY, SCALEA, WANTVL, WANTVR, WNTSNB, WNTSNE,
      $                   WNTSNN, WNTSNV
       CHARACTER          JOB, SIDE
-      INTEGER            HSWORK, I, ICOND, IERR, ITAU, IWRK, K, 
+      INTEGER            HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
      $                   LWORK_TREVC, MAXWRK, MINWRK, NOUT
-      REAL               ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
-      COMPLEX            TMP
+      REAL   ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
+      COMPLEX         TMP
 *     ..
 *     .. Local Arrays ..
       LOGICAL            SELECT( 1 )
-      REAL               DUM( 1 )
+      REAL   DUM( 1 )
 *     ..
 *     .. External Subroutines ..
-      EXTERNAL           CGEBAK, CGEBAL, CGEHRD, CHSEQR, CLACPY, CLASCL,
-     $                   CSCAL, CSSCAL, CTREVC3, CTRSNA, CUNGHR, SLABAD,
-     $                   SLASCL, XERBLA
+      EXTERNAL           SLABAD, SLASCL, XERBLA, CSSCAL, CGEBAK, CGEBAL,
+     $                   CGEHRD, CHSEQR, CLACPY, CLASCL, CSCAL, CTREVC3,
+     $                   CTRSNA, CUNGHR
 *     ..
 *     .. External Functions ..
       LOGICAL            LSAME
-      INTEGER            ILAENV, ISAMAX
-      REAL               CLANGE, SCNRM2, SLAMCH
-      EXTERNAL           LSAME, ILAENV, ISAMAX, CLANGE, SCNRM2, SLAMCH
+      INTEGER            ISAMAX, ILAENV
+      REAL   SLAMCH, SCNRM2, CLANGE
+      EXTERNAL           LSAME, ISAMAX, ILAENV, SLAMCH, SCNRM2, CLANGE
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          AIMAG, CMPLX, CONJG, MAX, REAL, SQRT
+      INTRINSIC          REAL, CMPLX, CONJG, AIMAG, MAX, SQRT
 *     ..
 *     .. Executable Statements ..
 *
index dd78585702a661018ef4df67a838b549364d0f3f..a988b6c4ccd31101afa45527fe5f34fed04a70a4 100644 (file)
       EXTERNAL           LSAME
 *     ..
 *     .. Intrinsic Functions
-      INTRINSIC          COS, INT, MAX, MIN, SIN
+      INTRINSIC          INT, MAX, MIN
 *     ..
 *     .. Executable Statements ..
 *
index 96af777ff313b3881155bcc43911d779893e919c..05685927b4525e16e76f52550190fc13777313ce 100644 (file)
 *     ..
 *     .. Local Arrays ..
       REAL               DUM( 1 )
-      COMPLEX            CDUM( 1 )
+      COMPLEX            CDUM( 1, 1 )
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           CBBCSD, CCOPY, CLACPY, CLAPMR, CLAPMT, CUNBDB1,
index 1c92b7e35cfd3e3a95360a8df88f3d4bd31eecc2..3640b7d1af2f37542ab6e89c2b1bdc120ca5ee6a 100644 (file)
 *
 *> \date September 2012
 *
+*  @precisions fortran d -> s
+*
 *> \ingroup doubleGEeigen
 *
 *  =====================================================================
index d2ba08f0e487ebf0435c970a3075f7c9e0461096..e8610de012a5082dab5efee7088b83a8101881a0 100644 (file)
 *
 *> \date September 2012
 *
+*  @precisions fortran d -> s
+*
 *> \ingroup doubleGEeigen
 *
 *  =====================================================================
       LOGICAL            LQUERY, SCALEA, WANTVL, WANTVR, WNTSNB, WNTSNE,
      $                   WNTSNN, WNTSNV
       CHARACTER          JOB, SIDE
-      INTEGER            HSWORK, I, ICOND, IERR, ITAU, IWRK, K, 
+      INTEGER            HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
      $                   LWORK_TREVC, MAXWRK, MINWRK, NOUT
       DOUBLE PRECISION   ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
      $                   SN
index 809997d0edd0d35b2bbb1a3255a7dc5775fcfb74..dd0cd351c386ec694682b9c6e27af73367bfc463 100644 (file)
       LOGICAL            LQUERY, WANTU1, WANTU2, WANTV1T
 *     ..
 *     .. Local Arrays ..
-      DOUBLE PRECISION   DUM( 1 )
+      DOUBLE PRECISION   DUM1(1), DUM2(1,1)
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           DBBCSD, DCOPY, DLACPY, DLAPMR, DLAPMT, DORBDB1,
          LORGLQOPT = 1
          IF( R .EQ. Q ) THEN
             CALL DORBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA,
-     $                    DUM, DUM, DUM, DUM, WORK,
+     $                    DUM1, DUM1, DUM1, DUM1, WORK,
      $                    -1, CHILDINFO )
             LORBDB = INT( WORK(1) )
             IF( WANTU1 .AND. P .GT. 0 ) THEN
-               CALL DORGQR( P, P, Q, U1, LDU1, DUM, WORK(1), -1,
+               CALL DORGQR( P, P, Q, U1, LDU1, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             ENDIF
             IF( WANTU2 .AND. M-P .GT. 0 ) THEN
-               CALL DORGQR( M-P, M-P, Q, U2, LDU2, DUM, WORK(1),
+               CALL DORGQR( M-P, M-P, Q, U2, LDU2, DUM1, WORK(1),
      $                      -1, CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, M-P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTV1T .AND. Q .GT. 0 ) THEN
                CALL DORGLQ( Q-1, Q-1, Q-1, V1T, LDV1T,
-     $                      DUM, WORK(1), -1, CHILDINFO )
+     $                      DUM1, WORK(1), -1, CHILDINFO )
                LORGLQMIN = MAX( LORGLQMIN, Q-1 )
                LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
             END IF
             CALL DBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA,
-     $                   DUM, U1, LDU1, U2, LDU2, V1T, LDV1T,
-     $                   DUM, 1, DUM, DUM, DUM,
-     $                   DUM, DUM, DUM, DUM,
-     $                   DUM, WORK(1), -1, CHILDINFO )
+     $                   DUM1, U1, LDU1, U2, LDU2, V1T, LDV1T,
+     $                   DUM2, 1, DUM1, DUM1, DUM1,
+     $                   DUM1, DUM1, DUM1, DUM1,
+     $                   DUM1, WORK(1), -1, CHILDINFO )
             LBBCSD = INT( WORK(1) )
          ELSE IF( R .EQ. P ) THEN
             CALL DORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA,
-     $                    DUM, DUM, DUM, DUM,
+     $                    DUM1, DUM1, DUM1, DUM1,
      $                    WORK(1), -1, CHILDINFO )
             LORBDB = INT( WORK(1) )
             IF( WANTU1 .AND. P .GT. 0 ) THEN
-               CALL DORGQR( P-1, P-1, P-1, U1(2,2), LDU1, DUM,
+               CALL DORGQR( P-1, P-1, P-1, U1(2,2), LDU1, DUM1,
      $                      WORK(1), -1, CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, P-1 )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTU2 .AND. M-P .GT. 0 ) THEN
-               CALL DORGQR( M-P, M-P, Q, U2, LDU2, DUM, WORK(1),
+               CALL DORGQR( M-P, M-P, Q, U2, LDU2, DUM1, WORK(1),
      $                      -1, CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, M-P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTV1T .AND. Q .GT. 0 ) THEN
-               CALL DORGLQ( Q, Q, R, V1T, LDV1T, DUM, WORK(1), -1,
+               CALL DORGLQ( Q, Q, R, V1T, LDV1T, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGLQMIN = MAX( LORGLQMIN, Q )
                LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
             END IF
             CALL DBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA,
-     $                   DUM, V1T, LDV1T, DUM, 1, U1, LDU1,
-     $                   U2, LDU2, DUM, DUM, DUM,
-     $                   DUM, DUM, DUM, DUM,
-     $                   DUM, WORK(1), -1, CHILDINFO )
+     $                   DUM1, V1T, LDV1T, DUM2, 1, U1, LDU1,
+     $                   U2, LDU2, DUM1, DUM1, DUM1,
+     $                   DUM1, DUM1, DUM1, DUM1,
+     $                   DUM1, WORK(1), -1, CHILDINFO )
             LBBCSD = INT( WORK(1) )
          ELSE IF( R .EQ. M-P ) THEN
             CALL DORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA,
-     $                    DUM, DUM, DUM, DUM,
+     $                    DUM1, DUM1, DUM1, DUM1,
      $                    WORK(1), -1, CHILDINFO )
             LORBDB = INT( WORK(1) )
             IF( WANTU1 .AND. P .GT. 0 ) THEN
-               CALL DORGQR( P, P, Q, U1, LDU1, DUM, WORK(1), -1,
+               CALL DORGQR( P, P, Q, U1, LDU1, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTU2 .AND. M-P .GT. 0 ) THEN
                CALL DORGQR( M-P-1, M-P-1, M-P-1, U2(2,2), LDU2,
-     $                      DUM, WORK(1), -1, CHILDINFO )
+     $                      DUM1, WORK(1), -1, CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, M-P-1 )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTV1T .AND. Q .GT. 0 ) THEN
-               CALL DORGLQ( Q, Q, R, V1T, LDV1T, DUM, WORK(1), -1,
+               CALL DORGLQ( Q, Q, R, V1T, LDV1T, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGLQMIN = MAX( LORGLQMIN, Q )
                LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
             END IF
             CALL DBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P,
-     $                   THETA, DUM, DUM, 1, V1T, LDV1T, U2,
-     $                   LDU2, U1, LDU1, DUM, DUM, DUM,
-     $                   DUM, DUM, DUM, DUM,
-     $                   DUM, WORK(1), -1, CHILDINFO )
+     $                   THETA, DUM1, DUM2, 1, V1T, LDV1T, U2,
+     $                   LDU2, U1, LDU1, DUM1, DUM1, DUM1,
+     $                   DUM1, DUM1, DUM1, DUM1,
+     $                   DUM1, WORK(1), -1, CHILDINFO )
             LBBCSD = INT( WORK(1) )
          ELSE
             CALL DORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA,
-     $                    DUM, DUM, DUM, DUM,
-     $                    DUM, WORK(1), -1, CHILDINFO )
+     $                    DUM1, DUM1, DUM1, DUM1,
+     $                    DUM1, WORK(1), -1, CHILDINFO )
             LORBDB = M + INT( WORK(1) )
             IF( WANTU1 .AND. P .GT. 0 ) THEN
-               CALL DORGQR( P, P, M-Q, U1, LDU1, DUM, WORK(1), -1,
+               CALL DORGQR( P, P, M-Q, U1, LDU1, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTU2 .AND. M-P .GT. 0 ) THEN
-               CALL DORGQR( M-P, M-P, M-Q, U2, LDU2, DUM, WORK(1),
+               CALL DORGQR( M-P, M-P, M-Q, U2, LDU2, DUM1, WORK(1),
      $                      -1, CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, M-P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTV1T .AND. Q .GT. 0 ) THEN
-               CALL DORGLQ( Q, Q, Q, V1T, LDV1T, DUM, WORK(1), -1,
+               CALL DORGLQ( Q, Q, Q, V1T, LDV1T, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGLQMIN = MAX( LORGLQMIN, Q )
                LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
             END IF
             CALL DBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q,
-     $                   THETA, DUM, U2, LDU2, U1, LDU1, DUM,
-     $                   1, V1T, LDV1T, DUM, DUM, DUM,
-     $                   DUM, DUM, DUM, DUM,
-     $                   DUM, WORK(1), -1, CHILDINFO )
+     $                   THETA, DUM1, U2, LDU2, U1, LDU1, DUM2,
+     $                   1, V1T, LDV1T, DUM1, DUM1, DUM1,
+     $                   DUM1, DUM1, DUM1, DUM1,
+     $                   DUM1, WORK(1), -1, CHILDINFO )
             LBBCSD = INT( WORK(1) )
          END IF
          LWORKMIN = MAX( IORBDB+LORBDB-1,
 *   
          CALL DBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA,
      $                WORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T,
-     $                DUM, 1, WORK(IB11D), WORK(IB11E),
+     $                DUM2, 1, WORK(IB11D), WORK(IB11E),
      $                WORK(IB12D), WORK(IB12E), WORK(IB21D),
      $                WORK(IB21E), WORK(IB22D), WORK(IB22E),
      $                WORK(IBBCSD), LBBCSD, CHILDINFO )
 *        Simultaneously diagonalize X11 and X21.
 *   
          CALL DBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA,
-     $                WORK(IPHI), V1T, LDV1T, DUM, 1, U1, LDU1, U2,
+     $                WORK(IPHI), V1T, LDV1T, DUM2, 1, U1, LDU1, U2,
      $                LDU2, WORK(IB11D), WORK(IB11E), WORK(IB12D),
      $                WORK(IB12E), WORK(IB21D), WORK(IB21E),
      $                WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD,
 *        Simultaneously diagonalize X11 and X21.
 *   
          CALL DBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P,
-     $                THETA, WORK(IPHI), DUM, 1, V1T, LDV1T, U2,
+     $                THETA, WORK(IPHI), DUM2, 1, V1T, LDV1T, U2,
      $                LDU2, U1, LDU1, WORK(IB11D), WORK(IB11E),
      $                WORK(IB12D), WORK(IB12E), WORK(IB21D),
      $                WORK(IB21E), WORK(IB22D), WORK(IB22E),
 *        Simultaneously diagonalize X11 and X21.
 *   
          CALL DBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q,
-     $                THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM,
+     $                THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM2,
      $                1, V1T, LDV1T, WORK(IB11D), WORK(IB11E),
      $                WORK(IB12D), WORK(IB12E), WORK(IB21D),
      $                WORK(IB21E), WORK(IB22D), WORK(IB22E),
index 1187f5c39b8fa932665523e886d693e9e109c17f..c9377b46869148ca15a896d3010f93a707001238 100644 (file)
@@ -26,7 +26,7 @@
 *       INTEGER            INFO, LDA, LDVL, LDVR, LWORK, N
 *       ..
 *       .. Array Arguments ..
-*       REAL               A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+*       REAL   A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
 *      $                   WI( * ), WORK( * ), WR( * )
 *       ..
 *  
 *
 *> \date September 2012
 *
+*  @generated from dgeev.f, fortran d -> s, Tue Apr 19 01:47:44 2016
+*
 *> \ingroup realGEeigen
 *
 *  =====================================================================
       INTEGER            INFO, LDA, LDVL, LDVR, LWORK, N
 *     ..
 *     .. Array Arguments ..
-      REAL               A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
+      REAL   A( LDA, * ), VL( LDVL, * ), VR( LDVR, * ),
      $                   WI( * ), WORK( * ), WR( * )
 *     ..
 *
 *  =====================================================================
 *
 *     .. Parameters ..
-      REAL               ZERO, ONE
+      REAL   ZERO, ONE
       PARAMETER          ( ZERO = 0.0E0, ONE = 1.0E0 )
 *     ..
 *     .. Local Scalars ..
       CHARACTER          SIDE
       INTEGER            HSWORK, I, IBAL, IERR, IHI, ILO, ITAU, IWRK, K,
      $                   LWORK_TREVC, MAXWRK, MINWRK, NOUT
-      REAL               ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
+      REAL   ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
      $                   SN
 *     ..
 *     .. Local Arrays ..
       LOGICAL            SELECT( 1 )
-      REAL               DUM( 1 )
+      REAL   DUM( 1 )
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           SGEBAK, SGEBAL, SGEHRD, SHSEQR, SLABAD, SLACPY,
 *     ..
 *     .. External Functions ..
       LOGICAL            LSAME
-      INTEGER            ILAENV, ISAMAX
-      REAL               SLAMCH, SLANGE, SLAPY2, SNRM2
-      EXTERNAL           LSAME, ILAENV, ISAMAX, SLAMCH, SLANGE, SLAPY2,
+      INTEGER            ISAMAX, ILAENV
+      REAL   SLAMCH, SLANGE, SLAPY2, SNRM2
+      EXTERNAL           LSAME, ISAMAX, ILAENV, SLAMCH, SLANGE, SLAPY2,
      $                   SNRM2
 *     ..
 *     .. Intrinsic Functions ..
index eff3a9f48e0dae441bc26f3300e01ea2c675aaa8..f1ae89e7fb25b70b078eb293a57f96ff35d13090 100644 (file)
 *       .. Scalar Arguments ..
 *       CHARACTER          BALANC, JOBVL, JOBVR, SENSE
 *       INTEGER            IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
-*       REAL               ABNRM
+*       REAL   ABNRM
 *       ..
 *       .. Array Arguments ..
 *       INTEGER            IWORK( * )
-*       REAL               A( LDA, * ), RCONDE( * ), RCONDV( * ),
+*       REAL   A( LDA, * ), RCONDE( * ), RCONDV( * ),
 *      $                   SCALE( * ), VL( LDVL, * ), VR( LDVR, * ),
 *      $                   WI( * ), WORK( * ), WR( * )
 *       ..
 *> \verbatim
 *>          IHI is INTEGER
 *>          ILO and IHI are integer values determined when A was
-*>          balanced.  The balanced A(i,j) = 0 if I > J and 
+*>          balanced.  The balanced A(i,j) = 0 if I > J and
 *>          J = 1,...,ILO-1 or I = IHI+1,...,N.
 *> \endverbatim
 *>
 *
 *> \date September 2012
 *
+*  @generated from dgeevx.f, fortran d -> s, Tue Apr 19 01:47:44 2016
+*
 *> \ingroup realGEeigen
 *
 *  =====================================================================
 *     .. Scalar Arguments ..
       CHARACTER          BALANC, JOBVL, JOBVR, SENSE
       INTEGER            IHI, ILO, INFO, LDA, LDVL, LDVR, LWORK, N
-      REAL               ABNRM
+      REAL   ABNRM
 *     ..
 *     .. Array Arguments ..
       INTEGER            IWORK( * )
-      REAL               A( LDA, * ), RCONDE( * ), RCONDV( * ),
+      REAL   A( LDA, * ), RCONDE( * ), RCONDV( * ),
      $                   SCALE( * ), VL( LDVL, * ), VR( LDVR, * ),
      $                   WI( * ), WORK( * ), WR( * )
 *     ..
 *  =====================================================================
 *
 *     .. Parameters ..
-      REAL               ZERO, ONE
+      REAL   ZERO, ONE
       PARAMETER          ( ZERO = 0.0E0, ONE = 1.0E0 )
 *     ..
 *     .. Local Scalars ..
       LOGICAL            LQUERY, SCALEA, WANTVL, WANTVR, WNTSNB, WNTSNE,
      $                   WNTSNN, WNTSNV
       CHARACTER          JOB, SIDE
-      INTEGER            HSWORK, I, ICOND, IERR, ITAU, IWRK, K, 
+      INTEGER            HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
      $                   LWORK_TREVC, MAXWRK, MINWRK, NOUT
-      REAL               ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
+      REAL   ANRM, BIGNUM, CS, CSCALE, EPS, R, SCL, SMLNUM,
      $                   SN
 *     ..
 *     .. Local Arrays ..
       LOGICAL            SELECT( 1 )
-      REAL               DUM( 1 )
+      REAL   DUM( 1 )
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           SGEBAK, SGEBAL, SGEHRD, SHSEQR, SLABAD, SLACPY,
 *     ..
 *     .. External Functions ..
       LOGICAL            LSAME
-      INTEGER            ILAENV, ISAMAX
-      REAL               SLAMCH, SLANGE, SLAPY2, SNRM2
-      EXTERNAL           LSAME, ILAENV, ISAMAX, SLAMCH, SLANGE, SLAPY2,
+      INTEGER            ISAMAX, ILAENV
+      REAL   SLAMCH, SLANGE, SLAPY2, SNRM2
+      EXTERNAL           LSAME, ISAMAX, ILAENV, SLAMCH, SLANGE, SLAPY2,
      $                   SNRM2
 *     ..
 *     .. Intrinsic Functions ..
index 71b547d73912462c997fda55b88cd8b2911e6c1e..72d0dbfec0d885b6d2e0d649fdf3f0e490ee5e65 100644 (file)
       LOGICAL            LQUERY, WANTU1, WANTU2, WANTV1T
 *     ..
 *     .. Local Arrays ..
-      REAL               DUM( 1 )
+      REAL               DUM1(1), DUM2(1,1)
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           SBBCSD, SCOPY, SLACPY, SLAPMR, SLAPMT, SORBDB1,
          LORGLQOPT = 1
          IF( R .EQ. Q ) THEN
             CALL SORBDB1( M, P, Q, X11, LDX11, X21, LDX21, THETA,
-     $                    DUM, DUM, DUM, DUM, WORK, -1,
+     $                    DUM1, DUM1, DUM1, DUM1, WORK, -1,
      $                    CHILDINFO )
             LORBDB = INT( WORK(1) )
             IF( WANTU1 .AND. P .GT. 0 ) THEN
-               CALL SORGQR( P, P, Q, U1, LDU1, DUM, WORK(1), -1,
+               CALL SORGQR( P, P, Q, U1, LDU1, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             ENDIF
             IF( WANTU2 .AND. M-P .GT. 0 ) THEN
-               CALL SORGQR( M-P, M-P, Q, U2, LDU2, DUM, WORK(1), -1,
+               CALL SORGQR( M-P, M-P, Q, U2, LDU2, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, M-P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTV1T .AND. Q .GT. 0 ) THEN
                CALL SORGLQ( Q-1, Q-1, Q-1, V1T, LDV1T,
-     $                      DUM, WORK(1), -1, CHILDINFO )
+     $                      DUM1, WORK(1), -1, CHILDINFO )
                LORGLQMIN = MAX( LORGLQMIN, Q-1 )
                LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
             END IF
             CALL SBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA,
-     $                   DUM, U1, LDU1, U2, LDU2, V1T, LDV1T, DUM,
-     $                   1, DUM, DUM, DUM, DUM, DUM,
-     $                   DUM, DUM, DUM, WORK(1), -1, CHILDINFO
+     $                   DUM1, U1, LDU1, U2, LDU2, V1T, LDV1T, DUM2,
+     $                   1, DUM1, DUM1, DUM1, DUM1, DUM1,
+     $                   DUM1, DUM1, DUM1, WORK(1), -1, CHILDINFO
      $                 )
             LBBCSD = INT( WORK(1) )
          ELSE IF( R .EQ. P ) THEN
             CALL SORBDB2( M, P, Q, X11, LDX11, X21, LDX21, THETA,
-     $                    DUM, DUM, DUM, DUM, WORK(1), -1,
+     $                    DUM1, DUM1, DUM1, DUM1, WORK(1), -1,
      $                    CHILDINFO )
             LORBDB = INT( WORK(1) )
             IF( WANTU1 .AND. P .GT. 0 ) THEN
-               CALL SORGQR( P-1, P-1, P-1, U1(2,2), LDU1, DUM,
+               CALL SORGQR( P-1, P-1, P-1, U1(2,2), LDU1, DUM1,
      $                      WORK(1), -1, CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, P-1 )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTU2 .AND. M-P .GT. 0 ) THEN
-               CALL SORGQR( M-P, M-P, Q, U2, LDU2, DUM, WORK(1), -1,
+               CALL SORGQR( M-P, M-P, Q, U2, LDU2, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, M-P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTV1T .AND. Q .GT. 0 ) THEN
-               CALL SORGLQ( Q, Q, R, V1T, LDV1T, DUM, WORK(1), -1,
+               CALL SORGLQ( Q, Q, R, V1T, LDV1T, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGLQMIN = MAX( LORGLQMIN, Q )
                LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
             END IF
             CALL SBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA,
-     $                   DUM, V1T, LDV1T, DUM, 1, U1, LDU1, U2,
-     $                   LDU2, DUM, DUM, DUM, DUM, DUM,
-     $                   DUM, DUM, DUM, WORK(1), -1, CHILDINFO
+     $                   DUM1, V1T, LDV1T, DUM2, 1, U1, LDU1, U2,
+     $                   LDU2, DUM1, DUM1, DUM1, DUM1, DUM1,
+     $                   DUM1, DUM1, DUM1, WORK(1), -1, CHILDINFO
      $                 )
             LBBCSD = INT( WORK(1) )
          ELSE IF( R .EQ. M-P ) THEN
             CALL SORBDB3( M, P, Q, X11, LDX11, X21, LDX21, THETA,
-     $                    DUM, DUM, DUM, DUM, WORK(1), -1,
+     $                    DUM1, DUM1, DUM1, DUM1, WORK(1), -1,
      $                    CHILDINFO )
             LORBDB = INT( WORK(1) )
             IF( WANTU1 .AND. P .GT. 0 ) THEN
-               CALL SORGQR( P, P, Q, U1, LDU1, DUM, WORK(1), -1,
+               CALL SORGQR( P, P, Q, U1, LDU1, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTU2 .AND. M-P .GT. 0 ) THEN
-               CALL SORGQR( M-P-1, M-P-1, M-P-1, U2(2,2), LDU2, DUM,
+               CALL SORGQR( M-P-1, M-P-1, M-P-1, U2(2,2), LDU2, DUM1,
      $                      WORK(1), -1, CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, M-P-1 )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTV1T .AND. Q .GT. 0 ) THEN
-               CALL SORGLQ( Q, Q, R, V1T, LDV1T, DUM, WORK(1), -1,
+               CALL SORGLQ( Q, Q, R, V1T, LDV1T, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGLQMIN = MAX( LORGLQMIN, Q )
                LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
             END IF
             CALL SBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P,
-     $                   THETA, DUM, DUM, 1, V1T, LDV1T, U2, LDU2,
-     $                   U1, LDU1, DUM, DUM, DUM, DUM,
-     $                   DUM, DUM, DUM, DUM, WORK(1), -1,
+     $                   THETA, DUM1, DUM2, 1, V1T, LDV1T, U2, LDU2,
+     $                   U1, LDU1, DUM1, DUM1, DUM1, DUM1,
+     $                   DUM1, DUM1, DUM1, DUM1, WORK(1), -1,
      $                   CHILDINFO )
             LBBCSD = INT( WORK(1) )
          ELSE
             CALL SORBDB4( M, P, Q, X11, LDX11, X21, LDX21, THETA,
-     $                    DUM, DUM, DUM, DUM, DUM,
+     $                    DUM1, DUM1, DUM1, DUM1, DUM1,
      $                    WORK(1), -1, CHILDINFO )
             LORBDB = M + INT( WORK(1) )
             IF( WANTU1 .AND. P .GT. 0 ) THEN
-               CALL SORGQR( P, P, M-Q, U1, LDU1, DUM, WORK(1), -1,
+               CALL SORGQR( P, P, M-Q, U1, LDU1, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTU2 .AND. M-P .GT. 0 ) THEN
-               CALL SORGQR( M-P, M-P, M-Q, U2, LDU2, DUM, WORK(1),
+               CALL SORGQR( M-P, M-P, M-Q, U2, LDU2, DUM1, WORK(1),
      $                      -1, CHILDINFO )
                LORGQRMIN = MAX( LORGQRMIN, M-P )
                LORGQROPT = MAX( LORGQROPT, INT( WORK(1) ) )
             END IF
             IF( WANTV1T .AND. Q .GT. 0 ) THEN
-               CALL SORGLQ( Q, Q, Q, V1T, LDV1T, DUM, WORK(1), -1,
+               CALL SORGLQ( Q, Q, Q, V1T, LDV1T, DUM1, WORK(1), -1,
      $                      CHILDINFO )
                LORGLQMIN = MAX( LORGLQMIN, Q )
                LORGLQOPT = MAX( LORGLQOPT, INT( WORK(1) ) )
             END IF
             CALL SBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q,
-     $                   THETA, DUM, U2, LDU2, U1, LDU1, DUM, 1,
-     $                   V1T, LDV1T, DUM, DUM, DUM, DUM,
-     $                   DUM, DUM, DUM, DUM, WORK(1), -1,
+     $                   THETA, DUM1, U2, LDU2, U1, LDU1, DUM2, 1,
+     $                   V1T, LDV1T, DUM1, DUM1, DUM1, DUM1,
+     $                   DUM1, DUM1, DUM1, DUM1, WORK(1), -1,
      $                   CHILDINFO )
             LBBCSD = INT( WORK(1) )
          END IF
 *   
          CALL SBBCSD( JOBU1, JOBU2, JOBV1T, 'N', 'N', M, P, Q, THETA,
      $                WORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T,
-     $                DUM, 1, WORK(IB11D), WORK(IB11E), WORK(IB12D),
+     $                DUM2, 1, WORK(IB11D), WORK(IB11E), WORK(IB12D),
      $                WORK(IB12E), WORK(IB21D), WORK(IB21E),
      $                WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD,
      $                CHILDINFO )
 *        Simultaneously diagonalize X11 and X21.
 *   
          CALL SBBCSD( JOBV1T, 'N', JOBU1, JOBU2, 'T', M, Q, P, THETA,
-     $                WORK(IPHI), V1T, LDV1T, DUM, 1, U1, LDU1, U2,
+     $                WORK(IPHI), V1T, LDV1T, DUM1, 1, U1, LDU1, U2,
      $                LDU2, WORK(IB11D), WORK(IB11E), WORK(IB12D),
      $                WORK(IB12E), WORK(IB21D), WORK(IB21E),
      $                WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD,
 *        Simultaneously diagonalize X11 and X21.
 *   
          CALL SBBCSD( 'N', JOBV1T, JOBU2, JOBU1, 'T', M, M-Q, M-P,
-     $                THETA, WORK(IPHI), DUM, 1, V1T, LDV1T, U2,
+     $                THETA, WORK(IPHI), DUM1, 1, V1T, LDV1T, U2,
      $                LDU2, U1, LDU1, WORK(IB11D), WORK(IB11E),
      $                WORK(IB12D), WORK(IB12E), WORK(IB21D),
      $                WORK(IB21E), WORK(IB22D), WORK(IB22E),
 *        Simultaneously diagonalize X11 and X21.
 *   
          CALL SBBCSD( JOBU2, JOBU1, 'N', JOBV1T, 'N', M, M-P, M-Q,
-     $                THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM, 1,
+     $                THETA, WORK(IPHI), U2, LDU2, U1, LDU1, DUM1, 1,
      $                V1T, LDV1T, WORK(IB11D), WORK(IB11E), WORK(IB12D),
      $                WORK(IB12E), WORK(IB21D), WORK(IB21E),
      $                WORK(IB22D), WORK(IB22E), WORK(IBBCSD), LBBCSD,
index caed1818f2fc1d188ce495f0b29dc60ce4fc684a..7baa68898883d5f366e7861c85b0390234afd8f4 100644 (file)
 *
 *> \date November 2011
 *
+*  @precisions fortran z -> c
+*
 *> \ingroup complex16GEeigen
 *
 *  =====================================================================
       EXTERNAL           LSAME, IDAMAX, ILAENV, DLAMCH, DZNRM2, ZLANGE
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          DBLE, DCMPLX, DCONJG, DIMAG, MAX, SQRT
+      INTRINSIC          DBLE, DCMPLX, CONJG, AIMAG, MAX, SQRT
 *     ..
 *     .. Executable Statements ..
 *
             CALL ZDSCAL( N, SCL, VL( 1, I ), 1 )
             DO 10 K = 1, N
                RWORK( IRWORK+K-1 ) = DBLE( VL( K, I ) )**2 +
-     $                               DIMAG( VL( K, I ) )**2
+     $                               AIMAG( VL( K, I ) )**2
    10       CONTINUE
             K = IDAMAX( N, RWORK( IRWORK ), 1 )
-            TMP = DCONJG( VL( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) )
+            TMP = CONJG( VL( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) )
             CALL ZSCAL( N, TMP, VL( 1, I ), 1 )
             VL( K, I ) = DCMPLX( DBLE( VL( K, I ) ), ZERO )
    20    CONTINUE
             CALL ZDSCAL( N, SCL, VR( 1, I ), 1 )
             DO 30 K = 1, N
                RWORK( IRWORK+K-1 ) = DBLE( VR( K, I ) )**2 +
-     $                               DIMAG( VR( K, I ) )**2
+     $                               AIMAG( VR( K, I ) )**2
    30       CONTINUE
             K = IDAMAX( N, RWORK( IRWORK ), 1 )
-            TMP = DCONJG( VR( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) )
+            TMP = CONJG( VR( K, I ) ) / SQRT( RWORK( IRWORK+K-1 ) )
             CALL ZSCAL( N, TMP, VR( 1, I ), 1 )
             VR( K, I ) = DCMPLX( DBLE( VR( K, I ) ), ZERO )
    40    CONTINUE
index cb750650f2c2190f5f9c1e60b813c4fc548e0ca5..a0baa3443282d062306e5af42088f4f2a095f30d 100644 (file)
 *
 *> \date November 2011
 *
+*  @precisions fortran z -> c
+*
 *> \ingroup complex16GEeigen
 *
 *  =====================================================================
       LOGICAL            LQUERY, SCALEA, WANTVL, WANTVR, WNTSNB, WNTSNE,
      $                   WNTSNN, WNTSNV
       CHARACTER          JOB, SIDE
-      INTEGER            HSWORK, I, ICOND, IERR, ITAU, IWRK, K, 
+      INTEGER            HSWORK, I, ICOND, IERR, ITAU, IWRK, K,
      $                   LWORK_TREVC, MAXWRK, MINWRK, NOUT
       DOUBLE PRECISION   ANRM, BIGNUM, CSCALE, EPS, SCL, SMLNUM
       COMPLEX*16         TMP
       EXTERNAL           LSAME, IDAMAX, ILAENV, DLAMCH, DZNRM2, ZLANGE
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          DBLE, DCMPLX, DCONJG, DIMAG, MAX, SQRT
+      INTRINSIC          DBLE, DCMPLX, CONJG, AIMAG, MAX, SQRT
 *     ..
 *     .. Executable Statements ..
 *
             CALL ZDSCAL( N, SCL, VL( 1, I ), 1 )
             DO 10 K = 1, N
                RWORK( K ) = DBLE( VL( K, I ) )**2 +
-     $                      DIMAG( VL( K, I ) )**2
+     $                      AIMAG( VL( K, I ) )**2
    10       CONTINUE
             K = IDAMAX( N, RWORK, 1 )
-            TMP = DCONJG( VL( K, I ) ) / SQRT( RWORK( K ) )
+            TMP = CONJG( VL( K, I ) ) / SQRT( RWORK( K ) )
             CALL ZSCAL( N, TMP, VL( 1, I ), 1 )
             VL( K, I ) = DCMPLX( DBLE( VL( K, I ) ), ZERO )
    20    CONTINUE
             CALL ZDSCAL( N, SCL, VR( 1, I ), 1 )
             DO 30 K = 1, N
                RWORK( K ) = DBLE( VR( K, I ) )**2 +
-     $                      DIMAG( VR( K, I ) )**2
+     $                      AIMAG( VR( K, I ) )**2
    30       CONTINUE
             K = IDAMAX( N, RWORK, 1 )
-            TMP = DCONJG( VR( K, I ) ) / SQRT( RWORK( K ) )
+            TMP = CONJG( VR( K, I ) ) / SQRT( RWORK( K ) )
             CALL ZSCAL( N, TMP, VR( 1, I ), 1 )
             VR( K, I ) = DCMPLX( DBLE( VR( K, I ) ), ZERO )
    40    CONTINUE
index 8c0a2c07e907dd3c454603d2bd53a5428ca6aa68..b0d3615ba090a67fcae4ec62d8406c0d04e3c610 100644 (file)
 *     ..
 *     .. Local Arrays ..
       DOUBLE PRECISION   DUM( 1 )
-      COMPLEX*16         CDUM( 1 )
+      COMPLEX*16         CDUM( 1, 1 )
 *     ..
 *     .. External Subroutines ..
       EXTERNAL           ZBBCSD, ZCOPY, ZLACPY, ZLAPMR, ZLAPMT, ZUNBDB1,
index 91214b0cfbc4d12bcefb93458c12c7e88c66d99c..743296535f1f8f9cad5c7004af0eca820f603361 100644 (file)
          MAXTYP = 26
          NTYPES = MIN( MAXTYP, NTYPES )
          CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
+         CALL XLAENV(1,1)
          IF( TSTCHK .AND. TSTERR )
      $      CALL CERRGG( C3, NOUT )
          DO 350 I = 1, NPARMS
 *     
 * Blocked version
 *            
+            CALL XLAENV(16,2)
             CALL CDRGES3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
      $                    A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
      $                    A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
 *     
 * Blocked version
 *            
+            CALL XLAENV(16,2)
             CALL CDRGEV3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
      $                    A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
      $                    A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
 *        GSV:  Generalized Singular Value Decomposition
 *        ----------------------------------------------
 *
+         CALL XLAENV(1,1)
          IF( TSTERR )
      $      CALL CERRGG( 'GSV', NOUT )
          CALL CCKGSV( NN, MVAL, PVAL, NVAL, NTYPES, ISEED, THRESH, NMAX,
index a60c4eb27862a509f51ebb1ff085f2da2b5304ac..0901af94382d36047d41b57195e7fa26187aa572 100644 (file)
@@ -83,7 +83,7 @@
 *     ..
 *     .. Local Arrays ..
       LOGICAL            BW( NMAX ), SEL( NMAX )
-      INTEGER            IW( LW )
+      INTEGER            IW( LW ), IDUM(NMAX)
       REAL               LS( NMAX ), R1( NMAX ), R2( NMAX ),
      $                   RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
       COMPLEX            A( NMAX, NMAX ), ALPHA( NMAX ),
          SRNAMT = 'CGGSVD3'
          INFOT = 1
          CALL CGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 2
          CALL CGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 3
          CALL CGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 4
          CALL CGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 5
          CALL CGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 6
          CALL CGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 10
          CALL CGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 12
          CALL CGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 16
          CALL CGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
-     $                 2, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 18
          CALL CGGSVD3( 'N', 'V', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
-     $                 2, R1, R2, U, 2, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 2, R1, R2, U, 2, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 20
          CALL CGGSVD3( 'N', 'N', 'Q', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
-     $                 2, R1, R2, U, 2, V, 2, Q, 1, W, RW, IW, LWORK,
+     $                 2, R1, R2, U, 2, V, 2, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'CGGSVD3', INFOT, NOUT, LERR, OK )
          NT = NT + 11
          INFOT = 7
          CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 -1, 0, 0, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 8
          CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, -1, 0, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 9
          CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, -1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 11
          CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, -1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 20
          CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, -1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 22
          CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, -1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 24
          CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, -1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 26
          CALL CUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 -1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'CUNCSD', INFOT, NOUT, LERR, OK )
index 14272bc48a79dc89d67e7d20f835805c77d7f7ae..c344bfea64fcaf54f5a40bc89290382cdfa12f63 100644 (file)
          MAXTYP = 26
          NTYPES = MIN( MAXTYP, NTYPES )
          CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
+         CALL XLAENV(1,1)
          IF( TSTCHK .AND. TSTERR )
      $      CALL DERRGG( C3, NOUT )
          DO 350 I = 1, NPARMS
 *
 *     Blocked version
 *
+            CALL XLAENV(16, 2)
             CALL DDRGES3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
      $                    A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
      $                    A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
 *        GSV:  Generalized Singular Value Decomposition
 *        ----------------------------------------------
 *
+         CALL XLAENV(1,1)
          IF( TSTERR )
      $      CALL DERRGG( 'GSV', NOUT )
          CALL DCKGSV( NN, MVAL, PVAL, NVAL, NTYPES, ISEED, THRESH, NMAX,
index 6d671f3b255708f54a7f4fd48c9d865d5cffeb49..dc552a9845e5ab18bc3974ce8a37810c49e93f77 100644 (file)
      $      / '21 = | S - Spartial | / ( min(M,N) ulp |S| )', 
      $      / '22 = 0 if S contains min(M,N) nonnegative values in',
      $      ' decreasing order, else 1/ulp',
-     $      / '23 = | A - U diag(S) VT | / ( |A| max(M,N) ulp ),'
+     $      / '23 = | A - U diag(S) VT | / ( |A| max(M,N) ulp ),',
      $      ' DGESVDX(V,V,A) ',
      $      / '24 = | I - U**T U | / ( M ulp ) ',
      $      / '25 = | I - VT VT**T | / ( N ulp ) ',
index 917cf0480bac844ef84a86f7420976268df7f84e..10a5fe78519389ed835c401847357d42b76e1018 100644 (file)
@@ -83,7 +83,7 @@
 *     ..
 *     .. Local Arrays ..
       LOGICAL            BW( NMAX ), SEL( NMAX )
-      INTEGER            IW( NMAX )
+      INTEGER            IW( NMAX ), IDUM(NMAX)
       DOUBLE PRECISION   A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
      $                   Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
      $                   R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
          SRNAMT = 'DGGSVD3'
          INFOT = 1
          CALL DGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 2
          CALL DGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 3
          CALL DGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 4
          CALL DGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 5
          CALL DGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 6
          CALL DGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 10
          CALL DGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 12
          CALL DGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 16
          CALL DGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
-     $                 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 18
          CALL DGGSVD3( 'N', 'V', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
-     $                 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 20
          CALL DGGSVD3( 'N', 'N', 'Q', 1, 2, 1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'DGGSVD3', INFOT, NOUT, LERR, OK )
          NT = NT + 11
 *
index 0bd994cc434509e6dcc758bb2f2dbae18eab9c6a..b235c320f728dd63bc5dd4d91bcbe8e0f052d8f7 100644 (file)
          MAXTYP = 26
          NTYPES = MIN( MAXTYP, NTYPES )
          CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
+         CALL XLAENV(1,1)
          IF( TSTCHK .AND. TSTERR )
-     $      CALL SERRGG( C3, NOUT )
+     &      CALL SERRGG( C3, NOUT )
          DO 350 I = 1, NPARMS
             CALL XLAENV( 1, NBVAL( I ) )
             CALL XLAENV( 2, NBMIN( I ) )
 *     
 *     Blocked version
 *            
+            CALL XLAENV(16,1)
             CALL SDRGES3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
      $                    A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
      $                    A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
 *        GSV:  Generalized Singular Value Decomposition
 *        ----------------------------------------------
 *
+         CALL XLAENV( 1, 1 )
          IF( TSTERR )
      $      CALL SERRGG( 'GSV', NOUT )
          CALL SCKGSV( NN, MVAL, PVAL, NVAL, NTYPES, ISEED, THRESH, NMAX,
index aede817b6c743bfdde52a6e0120c0fc22fb103d8..5b9a8956fc61a8f1d109aa2bcca20beafa1f0e4f 100644 (file)
 *     .. Local Scalars ..
       CHARACTER*2        C2
       INTEGER            DUMMYK, DUMMYL, I, IFST, ILO, IHI, ILST, INFO,
-     $                   J, M, NCYCLE, NT, SDIM, LWORK
+     $                   J, M, NCYCLE, NT, SDIM, LWORK, JDUM
       REAL               ANRM, BNRM, DIF, SCALE, TOLA, TOLB
 *     ..
 *     .. Local Arrays ..
       LOGICAL            BW( NMAX ), SEL( NMAX )
-      INTEGER            IW( NMAX )
+      INTEGER            IW( NMAX ), IDUM(NMAX)
       REAL               A( NMAX, NMAX ), B( NMAX, NMAX ), LS( NMAX ),
      $                   Q( NMAX, NMAX ), R1( NMAX ), R2( NMAX ),
      $                   R3( NMAX ), RCE( 2 ), RCV( 2 ), RS( NMAX ),
          SRNAMT = 'SGGSVD3'
          INFOT = 1
          CALL SGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 2
          CALL SGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 3
          CALL SGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 4
          CALL SGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 5
          CALL SGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 6
          CALL SGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $        1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 10
          CALL SGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $             1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 12
          CALL SGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $            1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 16
          CALL SGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
-     $                 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 18
          CALL SGGSVD3( 'N', 'V', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
-     $                 2, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 20
          CALL SGGSVD3( 'N', 'N', 'Q', 1, 2, 1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, IW, LWORK, INFO )
+     $               1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, IDUM, INFO )
          CALL CHKXER( 'SGGSVD3', INFOT, NOUT, LERR, OK )
          NT = NT + 11
 *
index 67221276efab3e85f91c1436d585c1ef62f9b623..bcfecf80741478d6e56c5d6f091bb5d5bd856941 100644 (file)
          MAXTYP = 26
          NTYPES = MIN( MAXTYP, NTYPES )
          CALL ALAREQ( C3, NTYPES, DOTYPE, MAXTYP, NIN, NOUT )
+         CALL XLAENV(1,1)
          IF( TSTCHK .AND. TSTERR )
      $      CALL ZERRGG( C3, NOUT )
          DO 350 I = 1, NPARMS
 *
 * Blocked version
 *            
+            CALL XLAENV(16,2)
             CALL ZDRGEV3( NN, NVAL, MAXTYP, DOTYPE, ISEED, THRESH, NOUT,
      $                    A( 1, 1 ), NMAX, A( 1, 2 ), A( 1, 3 ),
      $                    A( 1, 4 ), A( 1, 7 ), NMAX, A( 1, 8 ),
 *        GSV:  Generalized Singular Value Decomposition
 *        ----------------------------------------------
 *
+         CALL XLAENV(1,1)
          IF( TSTERR )
      $      CALL ZERRGG( 'GSV', NOUT )
          CALL ZCKGSV( NN, MVAL, PVAL, NVAL, NTYPES, ISEED, THRESH, NMAX,
index 3366c77165d37bba1628fb90b6878c53623dd974..e0589348f3aa86ad00d0411382c9ec4d5eb41ea6 100644 (file)
@@ -83,7 +83,7 @@
 *     ..
 *     .. Local Arrays ..
       LOGICAL            BW( NMAX ), SEL( NMAX )
-      INTEGER            IW( LW )
+      INTEGER            IW( LW ), IDUM(NMAX)
       DOUBLE PRECISION   LS( NMAX ), R1( NMAX ), R2( NMAX ),
      $                   RCE( NMAX ), RCV( NMAX ), RS( NMAX ), RW( LW )
       COMPLEX*16         A( NMAX, NMAX ), ALPHA( NMAX ),
          SRNAMT = 'ZGGSVD3'
          INFOT = 1
          CALL ZGGSVD3( '/', 'N', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 2
          CALL ZGGSVD3( 'N', '/', 'N', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 3
          CALL ZGGSVD3( 'N', 'N', '/', 0, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 4
          CALL ZGGSVD3( 'N', 'N', 'N', -1, 0, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 5
          CALL ZGGSVD3( 'N', 'N', 'N', 0, -1, 0, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 6
          CALL ZGGSVD3( 'N', 'N', 'N', 0, 0, -1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 10
          CALL ZGGSVD3( 'N', 'N', 'N', 2, 1, 1, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 12
          CALL ZGGSVD3( 'N', 'N', 'N', 1, 1, 2, DUMMYK, DUMMYL, A, 1, B,
-     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 1, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 16
          CALL ZGGSVD3( 'U', 'N', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
-     $                 2, R1, R2, U, 1, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 2, R1, R2, U, 1, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 18
          CALL ZGGSVD3( 'N', 'V', 'N', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
-     $                 2, R1, R2, U, 2, V, 1, Q, 1, W, RW, IW, LWORK,
+     $                 2, R1, R2, U, 2, V, 1, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          INFOT = 20
          CALL ZGGSVD3( 'N', 'N', 'Q', 2, 2, 2, DUMMYK, DUMMYL, A, 2, B,
-     $                 2, R1, R2, U, 2, V, 2, Q, 1, W, RW, IW, LWORK,
+     $                 2, R1, R2, U, 2, V, 2, Q, 1, W, LWORK, RW, IDUM,
      $                 INFO )
          CALL CHKXER( 'ZGGSVD3', INFOT, NOUT, LERR, OK )
          NT = NT + 11
          INFOT = 7
          CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 -1, 0, 0, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 8
          CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, -1, 0, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 9
          CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, -1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 11
          CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, -1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 20
          CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, -1, A, 1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 22
          CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, -1, A, 1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 24
          CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, -1, A,
      $                 1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )
          INFOT = 26
          CALL ZUNCSD( 'Y', 'Y', 'Y', 'Y', 'N', 'N',
      $                 1, 1, 1, A, 1, A,
-     $                 1, A, 1, A, 1, A,
+     $                 1, A, 1, A, 1, RS,
      $                 A, 1, A, 1, A, 1, A,
      $                 -1, W, LW, RW, LW, IW, INFO )
          CALL CHKXER( 'ZUNCSD', INFOT, NOUT, LERR, OK )