diff options
author | Tim Hopkins, University of Kent <@> | 2016-06-17 17:10:39 -0400 |
---|---|---|
committer | Julien Langou <julien.langou@ucdenver.edu> | 2016-06-17 17:10:39 -0400 |
commit | d735f09838dcae48c8860266680b4b95d93f2c2b (patch) | |
tree | 78b4bc55a9535ab469031ad638b272b806640d79 /SRC | |
parent | 3ec6c79d228388e8ccfadfa10e49e6c8cc2596e0 (diff) | |
download | lapack-d735f09838dcae48c8860266680b4b95d93f2c2b.tar.gz lapack-d735f09838dcae48c8860266680b4b95d93f2c2b.tar.bz2 lapack-d735f09838dcae48c8860266680b4b95d93f2c2b.zip |
Patch from Tim Hopkins sent by email on March 14th, 2016
(merge from Julien on June 17th, 2016)
Diffstat (limited to 'SRC')
-rw-r--r-- | SRC/CMakeLists.txt | 8 | ||||
-rw-r--r-- | SRC/cgeev.f | 30 | ||||
-rw-r--r-- | SRC/cgeevx.f | 40 | ||||
-rw-r--r-- | SRC/cuncsd.f | 2 | ||||
-rw-r--r-- | SRC/cuncsd2by1.f | 2 | ||||
-rw-r--r-- | SRC/dgeev.f | 2 | ||||
-rw-r--r-- | SRC/dgeevx.f | 4 | ||||
-rw-r--r-- | SRC/dorcsd2by1.f | 76 | ||||
-rw-r--r-- | SRC/sgeev.f | 18 | ||||
-rw-r--r-- | SRC/sgeevx.f | 26 | ||||
-rw-r--r-- | SRC/sorcsd2by1.f | 66 | ||||
-rw-r--r-- | SRC/zgeev.f | 12 | ||||
-rw-r--r-- | SRC/zgeevx.f | 14 | ||||
-rw-r--r-- | SRC/zuncsd2by1.f | 2 |
14 files changed, 159 insertions, 143 deletions
diff --git a/SRC/CMakeLists.txt b/SRC/CMakeLists.txt index 4857f474..03441b94 100644 --- a/SRC/CMakeLists.txt +++ b/SRC/CMakeLists.txt @@ -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 diff --git a/SRC/cgeev.f b/SRC/cgeev.f index a888c64f..ec787ef9 100644 --- a/SRC/cgeev.f +++ b/SRC/cgeev.f @@ -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( * ) * .. * @@ -171,6 +171,8 @@ * *> \date November 2011 * +* @generated from zgeev.f, fortran z -> c, Tue Apr 19 01:47:44 2016 +* *> \ingroup complexGEeigen * * ===================================================================== @@ -188,15 +190,15 @@ 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 .. @@ -204,25 +206,25 @@ 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 .. * diff --git a/SRC/cgeevx.f b/SRC/cgeevx.f index b62f070c..0d63cd00 100644 --- a/SRC/cgeevx.f +++ b/SRC/cgeevx.f @@ -25,12 +25,12 @@ * .. 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( * ) * .. * @@ -134,7 +134,7 @@ *> 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 *> @@ -278,6 +278,8 @@ * *> \date November 2011 * +* @generated from zgeevx.f, fortran z -> c, Tue Apr 19 01:47:44 2016 +* *> \ingroup complexGEeigen * * ===================================================================== @@ -294,47 +296,47 @@ * .. 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 .. * diff --git a/SRC/cuncsd.f b/SRC/cuncsd.f index dd785857..a988b6c4 100644 --- a/SRC/cuncsd.f +++ b/SRC/cuncsd.f @@ -371,7 +371,7 @@ EXTERNAL LSAME * .. * .. Intrinsic Functions - INTRINSIC COS, INT, MAX, MIN, SIN + INTRINSIC INT, MAX, MIN * .. * .. Executable Statements .. * diff --git a/SRC/cuncsd2by1.f b/SRC/cuncsd2by1.f index 96af777f..05685927 100644 --- a/SRC/cuncsd2by1.f +++ b/SRC/cuncsd2by1.f @@ -290,7 +290,7 @@ * .. * .. Local Arrays .. REAL DUM( 1 ) - COMPLEX CDUM( 1 ) + COMPLEX CDUM( 1, 1 ) * .. * .. External Subroutines .. EXTERNAL CBBCSD, CCOPY, CLACPY, CLAPMR, CLAPMT, CUNBDB1, diff --git a/SRC/dgeev.f b/SRC/dgeev.f index 1c92b7e3..3640b7d1 100644 --- a/SRC/dgeev.f +++ b/SRC/dgeev.f @@ -183,6 +183,8 @@ * *> \date September 2012 * +* @precisions fortran d -> s +* *> \ingroup doubleGEeigen * * ===================================================================== diff --git a/SRC/dgeevx.f b/SRC/dgeevx.f index d2ba08f0..e8610de0 100644 --- a/SRC/dgeevx.f +++ b/SRC/dgeevx.f @@ -296,6 +296,8 @@ * *> \date September 2012 * +* @precisions fortran d -> s +* *> \ingroup doubleGEeigen * * ===================================================================== @@ -331,7 +333,7 @@ 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 diff --git a/SRC/dorcsd2by1.f b/SRC/dorcsd2by1.f index 809997d0..dd0cd351 100644 --- a/SRC/dorcsd2by1.f +++ b/SRC/dorcsd2by1.f @@ -267,7 +267,7 @@ 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, @@ -353,119 +353,119 @@ 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, @@ -531,7 +531,7 @@ * 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 ) @@ -584,7 +584,7 @@ * 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, @@ -639,7 +639,7 @@ * 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), @@ -708,7 +708,7 @@ * 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), diff --git a/SRC/sgeev.f b/SRC/sgeev.f index 1187f5c3..c9377b46 100644 --- a/SRC/sgeev.f +++ b/SRC/sgeev.f @@ -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( * ) * .. * @@ -183,6 +183,8 @@ * *> \date September 2012 * +* @generated from dgeev.f, fortran d -> s, Tue Apr 19 01:47:44 2016 +* *> \ingroup realGEeigen * * ===================================================================== @@ -200,14 +202,14 @@ 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 .. @@ -215,12 +217,12 @@ 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, @@ -229,9 +231,9 @@ * .. * .. 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 .. diff --git a/SRC/sgeevx.f b/SRC/sgeevx.f index eff3a9f4..f1ae89e7 100644 --- a/SRC/sgeevx.f +++ b/SRC/sgeevx.f @@ -25,11 +25,11 @@ * .. 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( * ) * .. @@ -210,7 +210,7 @@ *> \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 *> @@ -296,6 +296,8 @@ * *> \date September 2012 * +* @generated from dgeevx.f, fortran d -> s, Tue Apr 19 01:47:44 2016 +* *> \ingroup realGEeigen * * ===================================================================== @@ -312,11 +314,11 @@ * .. 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( * ) * .. @@ -324,21 +326,21 @@ * ===================================================================== * * .. 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, @@ -347,9 +349,9 @@ * .. * .. 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 .. diff --git a/SRC/sorcsd2by1.f b/SRC/sorcsd2by1.f index 71b547d7..72d0dbfe 100644 --- a/SRC/sorcsd2by1.f +++ b/SRC/sorcsd2by1.f @@ -265,7 +265,7 @@ 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, @@ -351,118 +351,118 @@ 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 @@ -529,7 +529,7 @@ * 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 ) @@ -582,7 +582,7 @@ * 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, @@ -637,7 +637,7 @@ * 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), @@ -706,7 +706,7 @@ * 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, diff --git a/SRC/zgeev.f b/SRC/zgeev.f index caed1818..7baa6889 100644 --- a/SRC/zgeev.f +++ b/SRC/zgeev.f @@ -171,6 +171,8 @@ * *> \date November 2011 * +* @precisions fortran z -> c +* *> \ingroup complex16GEeigen * * ===================================================================== @@ -222,7 +224,7 @@ 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 .. * @@ -448,10 +450,10 @@ 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 @@ -473,10 +475,10 @@ 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 diff --git a/SRC/zgeevx.f b/SRC/zgeevx.f index cb750650..a0baa344 100644 --- a/SRC/zgeevx.f +++ b/SRC/zgeevx.f @@ -278,6 +278,8 @@ * *> \date November 2011 * +* @precisions fortran z -> c +* *> \ingroup complex16GEeigen * * ===================================================================== @@ -313,7 +315,7 @@ 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 @@ -334,7 +336,7 @@ 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 .. * @@ -610,10 +612,10 @@ 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 @@ -633,10 +635,10 @@ 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 diff --git a/SRC/zuncsd2by1.f b/SRC/zuncsd2by1.f index 8c0a2c07..b0d3615b 100644 --- a/SRC/zuncsd2by1.f +++ b/SRC/zuncsd2by1.f @@ -289,7 +289,7 @@ * .. * .. Local Arrays .. DOUBLE PRECISION DUM( 1 ) - COMPLEX*16 CDUM( 1 ) + COMPLEX*16 CDUM( 1, 1 ) * .. * .. External Subroutines .. EXTERNAL ZBBCSD, ZCOPY, ZLACPY, ZLAPMR, ZLAPMT, ZUNBDB1, |