Skip to content

Commit 2dafa3d

Browse files
authored
Merge pull request #543 from Matthew-Badin/dev/explicit-cast
Add Explicit Casts For Complex To Real Cases
2 parents 7b16a30 + c1b96f8 commit 2dafa3d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

86 files changed

+265
-260
lines changed

SRC/cgebd2.f

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ SUBROUTINE CGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
245245
ALPHA = A( I, I )
246246
CALL CLARFG( M-I+1, ALPHA, A( MIN( I+1, M ), I ), 1,
247247
$ TAUQ( I ) )
248-
D( I ) = ALPHA
248+
D( I ) = REAL( ALPHA )
249249
A( I, I ) = ONE
250250
*
251251
* Apply H(i)**H to A(i:m,i+1:n) from the left
@@ -264,7 +264,7 @@ SUBROUTINE CGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
264264
ALPHA = A( I, I+1 )
265265
CALL CLARFG( N-I, ALPHA, A( I, MIN( I+2, N ) ),
266266
$ LDA, TAUP( I ) )
267-
E( I ) = ALPHA
267+
E( I ) = REAL( ALPHA )
268268
A( I, I+1 ) = ONE
269269
*
270270
* Apply G(i) to A(i+1:m,i+1:n) from the right
@@ -289,7 +289,7 @@ SUBROUTINE CGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
289289
ALPHA = A( I, I )
290290
CALL CLARFG( N-I+1, ALPHA, A( I, MIN( I+1, N ) ), LDA,
291291
$ TAUP( I ) )
292-
D( I ) = ALPHA
292+
D( I ) = REAL( ALPHA )
293293
A( I, I ) = ONE
294294
*
295295
* Apply G(i) to A(i+1:m,i:n) from the right
@@ -308,7 +308,7 @@ SUBROUTINE CGEBD2( M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO )
308308
ALPHA = A( I+1, I )
309309
CALL CLARFG( M-I, ALPHA, A( MIN( I+2, M ), I ), 1,
310310
$ TAUQ( I ) )
311-
E( I ) = ALPHA
311+
E( I ) = REAL( ALPHA )
312312
A( I+1, I ) = ONE
313313
*
314314
* Apply H(i)**H to A(i+1:m,i+1:n) from the left

SRC/cgees.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ SUBROUTINE CGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, VS,
282282
*
283283
CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS,
284284
$ WORK, -1, IEVAL )
285-
HSWORK = WORK( 1 )
285+
HSWORK = REAL( WORK( 1 ) )
286286
*
287287
IF( .NOT.WANTVS ) THEN
288288
MAXWRK = MAX( MAXWRK, HSWORK )

SRC/cgeesx.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ SUBROUTINE CGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, W,
337337
*
338338
CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS,
339339
$ WORK, -1, IEVAL )
340-
HSWORK = WORK( 1 )
340+
HSWORK = REAL( WORK( 1 ) )
341341
*
342342
IF( .NOT.WANTVS ) THEN
343343
MAXWRK = MAX( MAXWRK, HSWORK )

SRC/cgejsv.f

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -704,11 +704,11 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
704704
IF ( LQUERY ) THEN
705705
CALL CGEQP3( M, N, A, LDA, IWORK, CDUMMY, CDUMMY, -1,
706706
$ RDUMMY, IERR )
707-
LWRK_CGEQP3 = CDUMMY(1)
707+
LWRK_CGEQP3 = REAL( CDUMMY(1) )
708708
CALL CGEQRF( N, N, A, LDA, CDUMMY, CDUMMY,-1, IERR )
709-
LWRK_CGEQRF = CDUMMY(1)
709+
LWRK_CGEQRF = REAL( CDUMMY(1) )
710710
CALL CGELQF( N, N, A, LDA, CDUMMY, CDUMMY,-1, IERR )
711-
LWRK_CGELQF = CDUMMY(1)
711+
LWRK_CGELQF = REAL( CDUMMY(1) )
712712
END IF
713713
MINWRK = 2
714714
OPTWRK = 2
@@ -724,7 +724,7 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
724724
IF ( LQUERY ) THEN
725725
CALL CGESVJ( 'L', 'N', 'N', N, N, A, LDA, SVA, N, V,
726726
$ LDV, CDUMMY, -1, RDUMMY, -1, IERR )
727-
LWRK_CGESVJ = CDUMMY(1)
727+
LWRK_CGESVJ = REAL( CDUMMY(1) )
728728
IF ( ERREST ) THEN
729729
OPTWRK = MAX( N+LWRK_CGEQP3, N**2+LWCON,
730730
$ N+LWRK_CGEQRF, LWRK_CGESVJ )
@@ -760,10 +760,10 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
760760
IF ( LQUERY ) THEN
761761
CALL CGESVJ( 'L', 'U', 'N', N,N, U, LDU, SVA, N, A,
762762
$ LDA, CDUMMY, -1, RDUMMY, -1, IERR )
763-
LWRK_CGESVJ = CDUMMY(1)
763+
LWRK_CGESVJ = REAL( CDUMMY(1) )
764764
CALL CUNMLQ( 'L', 'C', N, N, N, A, LDA, CDUMMY,
765765
$ V, LDV, CDUMMY, -1, IERR )
766-
LWRK_CUNMLQ = CDUMMY(1)
766+
LWRK_CUNMLQ = REAL( CDUMMY(1) )
767767
IF ( ERREST ) THEN
768768
OPTWRK = MAX( N+LWRK_CGEQP3, LWCON, LWRK_CGESVJ,
769769
$ N+LWRK_CGELQF, 2*N+LWRK_CGEQRF,
@@ -799,10 +799,10 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
799799
IF ( LQUERY ) THEN
800800
CALL CGESVJ( 'L', 'U', 'N', N,N, U, LDU, SVA, N, A,
801801
$ LDA, CDUMMY, -1, RDUMMY, -1, IERR )
802-
LWRK_CGESVJ = CDUMMY(1)
802+
LWRK_CGESVJ = REAL( CDUMMY(1) )
803803
CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U,
804804
$ LDU, CDUMMY, -1, IERR )
805-
LWRK_CUNMQRM = CDUMMY(1)
805+
LWRK_CUNMQRM = REAL( CDUMMY(1) )
806806
IF ( ERREST ) THEN
807807
OPTWRK = N + MAX( LWRK_CGEQP3, LWCON, N+LWRK_CGEQRF,
808808
$ LWRK_CGESVJ, LWRK_CUNMQRM )
@@ -861,26 +861,26 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
861861
IF ( LQUERY ) THEN
862862
CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U,
863863
$ LDU, CDUMMY, -1, IERR )
864-
LWRK_CUNMQRM = CDUMMY(1)
864+
LWRK_CUNMQRM = REAL( CDUMMY(1) )
865865
CALL CUNMQR( 'L', 'N', N, N, N, A, LDA, CDUMMY, U,
866866
$ LDU, CDUMMY, -1, IERR )
867-
LWRK_CUNMQR = CDUMMY(1)
867+
LWRK_CUNMQR = REAL( CDUMMY(1) )
868868
IF ( .NOT. JRACC ) THEN
869869
CALL CGEQP3( N,N, A, LDA, IWORK, CDUMMY,CDUMMY, -1,
870870
$ RDUMMY, IERR )
871-
LWRK_CGEQP3N = CDUMMY(1)
871+
LWRK_CGEQP3N = REAL( CDUMMY(1) )
872872
CALL CGESVJ( 'L', 'U', 'N', N, N, U, LDU, SVA,
873873
$ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR )
874-
LWRK_CGESVJ = CDUMMY(1)
874+
LWRK_CGESVJ = REAL( CDUMMY(1) )
875875
CALL CGESVJ( 'U', 'U', 'N', N, N, U, LDU, SVA,
876876
$ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR )
877-
LWRK_CGESVJU = CDUMMY(1)
877+
LWRK_CGESVJU = REAL( CDUMMY(1) )
878878
CALL CGESVJ( 'L', 'U', 'V', N, N, U, LDU, SVA,
879879
$ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR )
880-
LWRK_CGESVJV = CDUMMY(1)
880+
LWRK_CGESVJV = REAL( CDUMMY(1) )
881881
CALL CUNMLQ( 'L', 'C', N, N, N, A, LDA, CDUMMY,
882882
$ V, LDV, CDUMMY, -1, IERR )
883-
LWRK_CUNMLQ = CDUMMY(1)
883+
LWRK_CUNMLQ = REAL( CDUMMY(1) )
884884
IF ( ERREST ) THEN
885885
OPTWRK = MAX( N+LWRK_CGEQP3, N+LWCON,
886886
$ 2*N+N**2+LWCON, 2*N+LWRK_CGEQRF,
@@ -909,13 +909,13 @@ SUBROUTINE CGEJSV( JOBA, JOBU, JOBV, JOBR, JOBT, JOBP,
909909
ELSE
910910
CALL CGESVJ( 'L', 'U', 'V', N, N, U, LDU, SVA,
911911
$ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR )
912-
LWRK_CGESVJV = CDUMMY(1)
912+
LWRK_CGESVJV = REAL( CDUMMY(1) )
913913
CALL CUNMQR( 'L', 'N', N, N, N, CDUMMY, N, CDUMMY,
914914
$ V, LDV, CDUMMY, -1, IERR )
915-
LWRK_CUNMQR = CDUMMY(1)
915+
LWRK_CUNMQR = REAL( CDUMMY(1) )
916916
CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U,
917917
$ LDU, CDUMMY, -1, IERR )
918-
LWRK_CUNMQRM = CDUMMY(1)
918+
LWRK_CUNMQRM = REAL( CDUMMY(1) )
919919
IF ( ERREST ) THEN
920920
OPTWRK = MAX( N+LWRK_CGEQP3, N+LWCON,
921921
$ 2*N+LWRK_CGEQRF, 2*N+N**2,

SRC/cgelss.f

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -266,11 +266,11 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
266266
*
267267
* Compute space needed for CGEQRF
268268
CALL CGEQRF( M, N, A, LDA, DUM(1), DUM(1), -1, INFO )
269-
LWORK_CGEQRF=DUM(1)
269+
LWORK_CGEQRF = REAL( DUM(1) )
270270
* Compute space needed for CUNMQR
271271
CALL CUNMQR( 'L', 'C', M, NRHS, N, A, LDA, DUM(1), B,
272272
$ LDB, DUM(1), -1, INFO )
273-
LWORK_CUNMQR=DUM(1)
273+
LWORK_CUNMQR = REAL( DUM(1) )
274274
MM = N
275275
MAXWRK = MAX( MAXWRK, N + N*ILAENV( 1, 'CGEQRF', ' ', M,
276276
$ N, -1, -1 ) )
@@ -284,15 +284,15 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
284284
* Compute space needed for CGEBRD
285285
CALL CGEBRD( MM, N, A, LDA, S, S, DUM(1), DUM(1), DUM(1),
286286
$ -1, INFO )
287-
LWORK_CGEBRD=DUM(1)
287+
LWORK_CGEBRD = REAL( DUM(1) )
288288
* Compute space needed for CUNMBR
289289
CALL CUNMBR( 'Q', 'L', 'C', MM, NRHS, N, A, LDA, DUM(1),
290290
$ B, LDB, DUM(1), -1, INFO )
291-
LWORK_CUNMBR=DUM(1)
291+
LWORK_CUNMBR = REAL( DUM(1) )
292292
* Compute space needed for CUNGBR
293293
CALL CUNGBR( 'P', N, N, N, A, LDA, DUM(1),
294294
$ DUM(1), -1, INFO )
295-
LWORK_CUNGBR=DUM(1)
295+
LWORK_CUNGBR = REAL( DUM(1) )
296296
* Compute total workspace needed
297297
MAXWRK = MAX( MAXWRK, 2*N + LWORK_CGEBRD )
298298
MAXWRK = MAX( MAXWRK, 2*N + LWORK_CUNMBR )
@@ -310,23 +310,23 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
310310
* Compute space needed for CGELQF
311311
CALL CGELQF( M, N, A, LDA, DUM(1), DUM(1),
312312
$ -1, INFO )
313-
LWORK_CGELQF=DUM(1)
313+
LWORK_CGELQF = REAL( DUM(1) )
314314
* Compute space needed for CGEBRD
315315
CALL CGEBRD( M, M, A, LDA, S, S, DUM(1), DUM(1),
316316
$ DUM(1), -1, INFO )
317-
LWORK_CGEBRD=DUM(1)
317+
LWORK_CGEBRD = REAL( DUM(1) )
318318
* Compute space needed for CUNMBR
319319
CALL CUNMBR( 'Q', 'L', 'C', M, NRHS, N, A, LDA,
320320
$ DUM(1), B, LDB, DUM(1), -1, INFO )
321-
LWORK_CUNMBR=DUM(1)
321+
LWORK_CUNMBR = REAL( DUM(1) )
322322
* Compute space needed for CUNGBR
323323
CALL CUNGBR( 'P', M, M, M, A, LDA, DUM(1),
324324
$ DUM(1), -1, INFO )
325-
LWORK_CUNGBR=DUM(1)
325+
LWORK_CUNGBR = REAL( DUM(1) )
326326
* Compute space needed for CUNMLQ
327327
CALL CUNMLQ( 'L', 'C', N, NRHS, M, A, LDA, DUM(1),
328328
$ B, LDB, DUM(1), -1, INFO )
329-
LWORK_CUNMLQ=DUM(1)
329+
LWORK_CUNMLQ = REAL( DUM(1) )
330330
* Compute total workspace needed
331331
MAXWRK = M + LWORK_CGELQF
332332
MAXWRK = MAX( MAXWRK, 3*M + M*M + LWORK_CGEBRD )
@@ -345,15 +345,15 @@ SUBROUTINE CGELSS( M, N, NRHS, A, LDA, B, LDB, S, RCOND, RANK,
345345
* Compute space needed for CGEBRD
346346
CALL CGEBRD( M, N, A, LDA, S, S, DUM(1), DUM(1),
347347
$ DUM(1), -1, INFO )
348-
LWORK_CGEBRD=DUM(1)
348+
LWORK_CGEBRD = REAL( DUM(1) )
349349
* Compute space needed for CUNMBR
350350
CALL CUNMBR( 'Q', 'L', 'C', M, NRHS, M, A, LDA,
351351
$ DUM(1), B, LDB, DUM(1), -1, INFO )
352-
LWORK_CUNMBR=DUM(1)
352+
LWORK_CUNMBR = REAL( DUM(1) )
353353
* Compute space needed for CUNGBR
354354
CALL CUNGBR( 'P', M, N, M, A, LDA, DUM(1),
355355
$ DUM(1), -1, INFO )
356-
LWORK_CUNGBR=DUM(1)
356+
LWORK_CUNGBR = REAL( DUM(1) )
357357
MAXWRK = 2*M + LWORK_CGEBRD
358358
MAXWRK = MAX( MAXWRK, 2*M + LWORK_CUNMBR )
359359
MAXWRK = MAX( MAXWRK, 2*M + LWORK_CUNGBR )

SRC/cggglm.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ SUBROUTINE CGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK,
289289
*
290290
CALL CGGQRF( N, M, P, A, LDA, WORK, B, LDB, WORK( M+1 ),
291291
$ WORK( M+NP+1 ), LWORK-M-NP, INFO )
292-
LOPT = WORK( M+NP+1 )
292+
LOPT = REAL( WORK( M+NP+1 ) )
293293
*
294294
* Update left-hand-side vector d = Q**H*d = ( d1 ) M
295295
* ( d2 ) N-M

SRC/cgglse.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ SUBROUTINE CGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK,
276276
*
277277
CALL CGGRQF( P, M, N, B, LDB, WORK, A, LDA, WORK( P+1 ),
278278
$ WORK( P+MN+1 ), LWORK-P-MN, INFO )
279-
LOPT = WORK( P+MN+1 )
279+
LOPT = REAL( WORK( P+MN+1 ) )
280280
*
281281
* Update c = Z**H *c = ( c1 ) N-P
282282
* ( c2 ) M+P-N

SRC/cggqrf.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ SUBROUTINE CGGQRF( N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK,
276276
* QR factorization of N-by-M matrix A: A = Q*R
277277
*
278278
CALL CGEQRF( N, M, A, LDA, TAUA, WORK, LWORK, INFO )
279-
LOPT = WORK( 1 )
279+
LOPT = REAL( WORK( 1 ) )
280280
*
281281
* Update B := Q**H*B.
282282
*

SRC/cggrqf.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ SUBROUTINE CGGRQF( M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK,
275275
* RQ factorization of M-by-N matrix A: A = R*Q
276276
*
277277
CALL CGERQF( M, N, A, LDA, TAUA, WORK, LWORK, INFO )
278-
LOPT = WORK( 1 )
278+
LOPT = REAL( WORK( 1 ) )
279279
*
280280
* Update B := B*Q**H
281281
*

SRC/chbev.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,9 +220,9 @@ SUBROUTINE CHBEV( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK,
220220
*
221221
IF( N.EQ.1 ) THEN
222222
IF( LOWER ) THEN
223-
W( 1 ) = AB( 1, 1 )
223+
W( 1 ) = REAL( AB( 1, 1 ) )
224224
ELSE
225-
W( 1 ) = AB( KD+1, 1 )
225+
W( 1 ) = REAL( AB( KD+1, 1 ) )
226226
END IF
227227
IF( WANTZ )
228228
$ Z( 1, 1 ) = ONE

SRC/chbevd.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ SUBROUTINE CHBEVD( JOBZ, UPLO, N, KD, AB, LDAB, W, Z, LDZ, WORK,
320320
$ RETURN
321321
*
322322
IF( N.EQ.1 ) THEN
323-
W( 1 ) = AB( 1, 1 )
323+
W( 1 ) = REAL( AB( 1, 1 ) )
324324
IF( WANTZ )
325325
$ Z( 1, 1 ) = CONE
326326
RETURN

SRC/chbevx.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ SUBROUTINE CHBEVX( JOBZ, RANGE, UPLO, N, KD, AB, LDAB, Q, LDQ, VL,
379379
$ M = 0
380380
END IF
381381
IF( M.EQ.1 ) THEN
382-
W( 1 ) = CTMP1
382+
W( 1 ) = REAL( CTMP1 )
383383
IF( WANTZ )
384384
$ Z( 1, 1 ) = CONE
385385
END IF

SRC/chbtrd.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ SUBROUTINE CHBTRD( VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ,
456456
* copy diagonal elements to D
457457
*
458458
DO 120 I = 1, N
459-
D( I ) = AB( KD1, I )
459+
D( I ) = REAL( AB( KD1, I ) )
460460
120 CONTINUE
461461
*
462462
ELSE
@@ -663,7 +663,7 @@ SUBROUTINE CHBTRD( VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ,
663663
* copy diagonal elements to D
664664
*
665665
DO 240 I = 1, N
666-
D( I ) = AB( 1, I )
666+
D( I ) = REAL( AB( 1, I ) )
667667
240 CONTINUE
668668
END IF
669669
*

SRC/cheequb.f

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ SUBROUTINE CHEEQUB( UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO )
263263
* avg = s^T beta / n
264264
AVG = 0.0E0
265265
DO I = 1, N
266-
AVG = AVG + S( I )*WORK( I )
266+
AVG = AVG + REAL( S( I )*WORK( I ) )
267267
END DO
268268
AVG = AVG / N
269269

@@ -280,8 +280,8 @@ SUBROUTINE CHEEQUB( UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO )
280280
T = CABS1( A( I, I ) )
281281
SI = S( I )
282282
C2 = ( N-1 ) * T
283-
C1 = ( N-2 ) * ( WORK( I ) - T*SI )
284-
C0 = -(T*SI)*SI + 2*WORK( I )*SI - N*AVG
283+
C1 = REAL( ( N-2 ) * ( WORK( I ) - T*SI ) )
284+
C0 = REAL( -(T*SI)*SI + 2*WORK( I )*SI - N*AVG )
285285
D = C1*C1 - 4*C0*C2
286286

287287
IF ( D .LE. 0 ) THEN
@@ -316,7 +316,7 @@ SUBROUTINE CHEEQUB( UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO )
316316
END DO
317317
END IF
318318

319-
AVG = AVG + ( U + WORK( I ) ) * D / N
319+
AVG = AVG + REAL( ( U + WORK( I ) ) * D / N )
320320
S( I ) = SI
321321
END DO
322322
END DO

SRC/cheev.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ SUBROUTINE CHEEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK,
221221
END IF
222222
*
223223
IF( N.EQ.1 ) THEN
224-
W( 1 ) = A( 1, 1 )
224+
W( 1 ) = REAL( A( 1, 1 ) )
225225
WORK( 1 ) = 1
226226
IF( WANTZ )
227227
$ A( 1, 1 ) = CONE

SRC/cheevd.f

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ SUBROUTINE CHEEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK,
314314
$ RETURN
315315
*
316316
IF( N.EQ.1 ) THEN
317-
W( 1 ) = A( 1, 1 )
317+
W( 1 ) = REAL( A( 1, 1 ) )
318318
IF( WANTZ )
319319
$ A( 1, 1 ) = CONE
320320
RETURN

SRC/cheevx.f

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,12 +378,12 @@ SUBROUTINE CHEEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU,
378378
IF( N.EQ.1 ) THEN
379379
IF( ALLEIG .OR. INDEIG ) THEN
380380
M = 1
381-
W( 1 ) = A( 1, 1 )
381+
W( 1 ) = REAL( A( 1, 1 ) )
382382
ELSE IF( VALEIG ) THEN
383383
IF( VL.LT.REAL( A( 1, 1 ) ) .AND. VU.GE.REAL( A( 1, 1 ) ) )
384384
$ THEN
385385
M = 1
386-
W( 1 ) = A( 1, 1 )
386+
W( 1 ) = REAL( A( 1, 1 ) )
387387
END IF
388388
END IF
389389
IF( WANTZ )

0 commit comments

Comments
 (0)