| @@ -238,7 +238,7 @@ | |||||
| $ GO TO 40 | $ GO TO 40 | ||||
| IF( I.LT.ILO ) | IF( I.LT.ILO ) | ||||
| $ I = ILO - II | $ I = ILO - II | ||||
| K = SCALE( I ) | |||||
| K = INT( SCALE( I ) ) | |||||
| IF( K.EQ.I ) | IF( K.EQ.I ) | ||||
| $ GO TO 40 | $ GO TO 40 | ||||
| CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | ||||
| @@ -252,7 +252,7 @@ | |||||
| $ GO TO 50 | $ GO TO 50 | ||||
| IF( I.LT.ILO ) | IF( I.LT.ILO ) | ||||
| $ I = ILO - II | $ I = ILO - II | ||||
| K = SCALE( I ) | |||||
| K = INT( SCALE( I ) ) | |||||
| IF( K.EQ.I ) | IF( K.EQ.I ) | ||||
| $ GO TO 50 | $ GO TO 50 | ||||
| CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | ||||
| @@ -282,7 +282,7 @@ | |||||
| * | * | ||||
| CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS, | CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS, | ||||
| $ WORK, -1, IEVAL ) | $ WORK, -1, IEVAL ) | ||||
| HSWORK = REAL( WORK( 1 ) ) | |||||
| HSWORK = INT( WORK( 1 ) ) | |||||
| * | * | ||||
| IF( .NOT.WANTVS ) THEN | IF( .NOT.WANTVS ) THEN | ||||
| MAXWRK = MAX( MAXWRK, HSWORK ) | MAXWRK = MAX( MAXWRK, HSWORK ) | ||||
| @@ -337,7 +337,7 @@ | |||||
| * | * | ||||
| CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS, | CALL CHSEQR( 'S', JOBVS, N, 1, N, A, LDA, W, VS, LDVS, | ||||
| $ WORK, -1, IEVAL ) | $ WORK, -1, IEVAL ) | ||||
| HSWORK = REAL( WORK( 1 ) ) | |||||
| HSWORK = INT( WORK( 1 ) ) | |||||
| * | * | ||||
| IF( .NOT.WANTVS ) THEN | IF( .NOT.WANTVS ) THEN | ||||
| MAXWRK = MAX( MAXWRK, HSWORK ) | MAXWRK = MAX( MAXWRK, HSWORK ) | ||||
| @@ -704,11 +704,11 @@ | |||||
| IF ( LQUERY ) THEN | IF ( LQUERY ) THEN | ||||
| CALL CGEQP3( M, N, A, LDA, IWORK, CDUMMY, CDUMMY, -1, | CALL CGEQP3( M, N, A, LDA, IWORK, CDUMMY, CDUMMY, -1, | ||||
| $ RDUMMY, IERR ) | $ RDUMMY, IERR ) | ||||
| LWRK_CGEQP3 = REAL( CDUMMY(1) ) | |||||
| LWRK_CGEQP3 = INT( CDUMMY(1) ) | |||||
| CALL CGEQRF( N, N, A, LDA, CDUMMY, CDUMMY,-1, IERR ) | CALL CGEQRF( N, N, A, LDA, CDUMMY, CDUMMY,-1, IERR ) | ||||
| LWRK_CGEQRF = REAL( CDUMMY(1) ) | |||||
| LWRK_CGEQRF = INT( CDUMMY(1) ) | |||||
| CALL CGELQF( N, N, A, LDA, CDUMMY, CDUMMY,-1, IERR ) | CALL CGELQF( N, N, A, LDA, CDUMMY, CDUMMY,-1, IERR ) | ||||
| LWRK_CGELQF = REAL( CDUMMY(1) ) | |||||
| LWRK_CGELQF = INT( CDUMMY(1) ) | |||||
| END IF | END IF | ||||
| MINWRK = 2 | MINWRK = 2 | ||||
| OPTWRK = 2 | OPTWRK = 2 | ||||
| @@ -724,7 +724,7 @@ | |||||
| IF ( LQUERY ) THEN | IF ( LQUERY ) THEN | ||||
| CALL CGESVJ( 'L', 'N', 'N', N, N, A, LDA, SVA, N, V, | CALL CGESVJ( 'L', 'N', 'N', N, N, A, LDA, SVA, N, V, | ||||
| $ LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | $ LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | ||||
| LWRK_CGESVJ = REAL( CDUMMY(1) ) | |||||
| LWRK_CGESVJ = INT( CDUMMY(1) ) | |||||
| IF ( ERREST ) THEN | IF ( ERREST ) THEN | ||||
| OPTWRK = MAX( N+LWRK_CGEQP3, N**2+LWCON, | OPTWRK = MAX( N+LWRK_CGEQP3, N**2+LWCON, | ||||
| $ N+LWRK_CGEQRF, LWRK_CGESVJ ) | $ N+LWRK_CGEQRF, LWRK_CGESVJ ) | ||||
| @@ -760,10 +760,10 @@ | |||||
| IF ( LQUERY ) THEN | IF ( LQUERY ) THEN | ||||
| CALL CGESVJ( 'L', 'U', 'N', N,N, U, LDU, SVA, N, A, | CALL CGESVJ( 'L', 'U', 'N', N,N, U, LDU, SVA, N, A, | ||||
| $ LDA, CDUMMY, -1, RDUMMY, -1, IERR ) | $ LDA, CDUMMY, -1, RDUMMY, -1, IERR ) | ||||
| LWRK_CGESVJ = REAL( CDUMMY(1) ) | |||||
| LWRK_CGESVJ = INT( CDUMMY(1) ) | |||||
| CALL CUNMLQ( 'L', 'C', N, N, N, A, LDA, CDUMMY, | CALL CUNMLQ( 'L', 'C', N, N, N, A, LDA, CDUMMY, | ||||
| $ V, LDV, CDUMMY, -1, IERR ) | $ V, LDV, CDUMMY, -1, IERR ) | ||||
| LWRK_CUNMLQ = REAL( CDUMMY(1) ) | |||||
| LWRK_CUNMLQ = INT( CDUMMY(1) ) | |||||
| IF ( ERREST ) THEN | IF ( ERREST ) THEN | ||||
| OPTWRK = MAX( N+LWRK_CGEQP3, LWCON, LWRK_CGESVJ, | OPTWRK = MAX( N+LWRK_CGEQP3, LWCON, LWRK_CGESVJ, | ||||
| $ N+LWRK_CGELQF, 2*N+LWRK_CGEQRF, | $ N+LWRK_CGELQF, 2*N+LWRK_CGEQRF, | ||||
| @@ -799,10 +799,10 @@ | |||||
| IF ( LQUERY ) THEN | IF ( LQUERY ) THEN | ||||
| CALL CGESVJ( 'L', 'U', 'N', N,N, U, LDU, SVA, N, A, | CALL CGESVJ( 'L', 'U', 'N', N,N, U, LDU, SVA, N, A, | ||||
| $ LDA, CDUMMY, -1, RDUMMY, -1, IERR ) | $ LDA, CDUMMY, -1, RDUMMY, -1, IERR ) | ||||
| LWRK_CGESVJ = REAL( CDUMMY(1) ) | |||||
| LWRK_CGESVJ = INT( CDUMMY(1) ) | |||||
| CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U, | CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U, | ||||
| $ LDU, CDUMMY, -1, IERR ) | $ LDU, CDUMMY, -1, IERR ) | ||||
| LWRK_CUNMQRM = REAL( CDUMMY(1) ) | |||||
| LWRK_CUNMQRM = INT( CDUMMY(1) ) | |||||
| IF ( ERREST ) THEN | IF ( ERREST ) THEN | ||||
| OPTWRK = N + MAX( LWRK_CGEQP3, LWCON, N+LWRK_CGEQRF, | OPTWRK = N + MAX( LWRK_CGEQP3, LWCON, N+LWRK_CGEQRF, | ||||
| $ LWRK_CGESVJ, LWRK_CUNMQRM ) | $ LWRK_CGESVJ, LWRK_CUNMQRM ) | ||||
| @@ -861,26 +861,26 @@ | |||||
| IF ( LQUERY ) THEN | IF ( LQUERY ) THEN | ||||
| CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U, | CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U, | ||||
| $ LDU, CDUMMY, -1, IERR ) | $ LDU, CDUMMY, -1, IERR ) | ||||
| LWRK_CUNMQRM = REAL( CDUMMY(1) ) | |||||
| LWRK_CUNMQRM = INT( CDUMMY(1) ) | |||||
| CALL CUNMQR( 'L', 'N', N, N, N, A, LDA, CDUMMY, U, | CALL CUNMQR( 'L', 'N', N, N, N, A, LDA, CDUMMY, U, | ||||
| $ LDU, CDUMMY, -1, IERR ) | $ LDU, CDUMMY, -1, IERR ) | ||||
| LWRK_CUNMQR = REAL( CDUMMY(1) ) | |||||
| LWRK_CUNMQR = INT( CDUMMY(1) ) | |||||
| IF ( .NOT. JRACC ) THEN | IF ( .NOT. JRACC ) THEN | ||||
| CALL CGEQP3( N,N, A, LDA, IWORK, CDUMMY,CDUMMY, -1, | CALL CGEQP3( N,N, A, LDA, IWORK, CDUMMY,CDUMMY, -1, | ||||
| $ RDUMMY, IERR ) | $ RDUMMY, IERR ) | ||||
| LWRK_CGEQP3N = REAL( CDUMMY(1) ) | |||||
| LWRK_CGEQP3N = INT( CDUMMY(1) ) | |||||
| CALL CGESVJ( 'L', 'U', 'N', N, N, U, LDU, SVA, | CALL CGESVJ( 'L', 'U', 'N', N, N, U, LDU, SVA, | ||||
| $ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | $ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | ||||
| LWRK_CGESVJ = REAL( CDUMMY(1) ) | |||||
| LWRK_CGESVJ = INT( CDUMMY(1) ) | |||||
| CALL CGESVJ( 'U', 'U', 'N', N, N, U, LDU, SVA, | CALL CGESVJ( 'U', 'U', 'N', N, N, U, LDU, SVA, | ||||
| $ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | $ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | ||||
| LWRK_CGESVJU = REAL( CDUMMY(1) ) | |||||
| LWRK_CGESVJU = INT( CDUMMY(1) ) | |||||
| CALL CGESVJ( 'L', 'U', 'V', N, N, U, LDU, SVA, | CALL CGESVJ( 'L', 'U', 'V', N, N, U, LDU, SVA, | ||||
| $ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | $ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | ||||
| LWRK_CGESVJV = REAL( CDUMMY(1) ) | |||||
| LWRK_CGESVJV = INT( CDUMMY(1) ) | |||||
| CALL CUNMLQ( 'L', 'C', N, N, N, A, LDA, CDUMMY, | CALL CUNMLQ( 'L', 'C', N, N, N, A, LDA, CDUMMY, | ||||
| $ V, LDV, CDUMMY, -1, IERR ) | $ V, LDV, CDUMMY, -1, IERR ) | ||||
| LWRK_CUNMLQ = REAL( CDUMMY(1) ) | |||||
| LWRK_CUNMLQ = INT( CDUMMY(1) ) | |||||
| IF ( ERREST ) THEN | IF ( ERREST ) THEN | ||||
| OPTWRK = MAX( N+LWRK_CGEQP3, N+LWCON, | OPTWRK = MAX( N+LWRK_CGEQP3, N+LWCON, | ||||
| $ 2*N+N**2+LWCON, 2*N+LWRK_CGEQRF, | $ 2*N+N**2+LWCON, 2*N+LWRK_CGEQRF, | ||||
| @@ -909,13 +909,13 @@ | |||||
| ELSE | ELSE | ||||
| CALL CGESVJ( 'L', 'U', 'V', N, N, U, LDU, SVA, | CALL CGESVJ( 'L', 'U', 'V', N, N, U, LDU, SVA, | ||||
| $ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | $ N, V, LDV, CDUMMY, -1, RDUMMY, -1, IERR ) | ||||
| LWRK_CGESVJV = REAL( CDUMMY(1) ) | |||||
| LWRK_CGESVJV = INT( CDUMMY(1) ) | |||||
| CALL CUNMQR( 'L', 'N', N, N, N, CDUMMY, N, CDUMMY, | CALL CUNMQR( 'L', 'N', N, N, N, CDUMMY, N, CDUMMY, | ||||
| $ V, LDV, CDUMMY, -1, IERR ) | $ V, LDV, CDUMMY, -1, IERR ) | ||||
| LWRK_CUNMQR = REAL( CDUMMY(1) ) | |||||
| LWRK_CUNMQR = INT( CDUMMY(1) ) | |||||
| CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U, | CALL CUNMQR( 'L', 'N', M, N, N, A, LDA, CDUMMY, U, | ||||
| $ LDU, CDUMMY, -1, IERR ) | $ LDU, CDUMMY, -1, IERR ) | ||||
| LWRK_CUNMQRM = REAL( CDUMMY(1) ) | |||||
| LWRK_CUNMQRM = INT( CDUMMY(1) ) | |||||
| IF ( ERREST ) THEN | IF ( ERREST ) THEN | ||||
| OPTWRK = MAX( N+LWRK_CGEQP3, N+LWCON, | OPTWRK = MAX( N+LWRK_CGEQP3, N+LWCON, | ||||
| $ 2*N+LWRK_CGEQRF, 2*N+N**2, | $ 2*N+LWRK_CGEQRF, 2*N+N**2, | ||||
| @@ -253,7 +253,7 @@ | |||||
| IF( ILO.EQ.1 ) | IF( ILO.EQ.1 ) | ||||
| $ GO TO 50 | $ GO TO 50 | ||||
| DO 40 I = ILO - 1, 1, -1 | DO 40 I = ILO - 1, 1, -1 | ||||
| K = RSCALE( I ) | |||||
| K = INT( RSCALE( I ) ) | |||||
| IF( K.EQ.I ) | IF( K.EQ.I ) | ||||
| $ GO TO 40 | $ GO TO 40 | ||||
| CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | ||||
| @@ -263,7 +263,7 @@ | |||||
| IF( IHI.EQ.N ) | IF( IHI.EQ.N ) | ||||
| $ GO TO 70 | $ GO TO 70 | ||||
| DO 60 I = IHI + 1, N | DO 60 I = IHI + 1, N | ||||
| K = RSCALE( I ) | |||||
| K = INT( RSCALE( I ) ) | |||||
| IF( K.EQ.I ) | IF( K.EQ.I ) | ||||
| $ GO TO 60 | $ GO TO 60 | ||||
| CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | ||||
| @@ -277,7 +277,7 @@ | |||||
| IF( ILO.EQ.1 ) | IF( ILO.EQ.1 ) | ||||
| $ GO TO 90 | $ GO TO 90 | ||||
| DO 80 I = ILO - 1, 1, -1 | DO 80 I = ILO - 1, 1, -1 | ||||
| K = LSCALE( I ) | |||||
| K = INT( LSCALE( I ) ) | |||||
| IF( K.EQ.I ) | IF( K.EQ.I ) | ||||
| $ GO TO 80 | $ GO TO 80 | ||||
| CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | ||||
| @@ -287,7 +287,7 @@ | |||||
| IF( IHI.EQ.N ) | IF( IHI.EQ.N ) | ||||
| $ GO TO 110 | $ GO TO 110 | ||||
| DO 100 I = IHI + 1, N | DO 100 I = IHI + 1, N | ||||
| K = LSCALE( I ) | |||||
| K = INT( LSCALE( I ) ) | |||||
| IF( K.EQ.I ) | IF( K.EQ.I ) | ||||
| $ GO TO 100 | $ GO TO 100 | ||||
| CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV ) | ||||
| @@ -535,7 +535,7 @@ | |||||
| IRAB = ICAMAX( N-ILO+1, B( I, ILO ), LDB ) | IRAB = ICAMAX( N-ILO+1, B( I, ILO ), LDB ) | ||||
| RAB = MAX( RAB, ABS( B( I, IRAB+ILO-1 ) ) ) | RAB = MAX( RAB, ABS( B( I, IRAB+ILO-1 ) ) ) | ||||
| LRAB = INT( LOG10( RAB+SFMIN ) / BASL+ONE ) | LRAB = INT( LOG10( RAB+SFMIN ) / BASL+ONE ) | ||||
| IR = LSCALE( I ) + SIGN( HALF, LSCALE( I ) ) | |||||
| IR = INT( LSCALE( I ) + SIGN( HALF, LSCALE( I ) ) ) | |||||
| IR = MIN( MAX( IR, LSFMIN ), LSFMAX, LSFMAX-LRAB ) | IR = MIN( MAX( IR, LSFMIN ), LSFMAX, LSFMAX-LRAB ) | ||||
| LSCALE( I ) = SCLFAC**IR | LSCALE( I ) = SCLFAC**IR | ||||
| ICAB = ICAMAX( IHI, A( 1, I ), 1 ) | ICAB = ICAMAX( IHI, A( 1, I ), 1 ) | ||||
| @@ -543,7 +543,7 @@ | |||||
| ICAB = ICAMAX( IHI, B( 1, I ), 1 ) | ICAB = ICAMAX( IHI, B( 1, I ), 1 ) | ||||
| CAB = MAX( CAB, ABS( B( ICAB, I ) ) ) | CAB = MAX( CAB, ABS( B( ICAB, I ) ) ) | ||||
| LCAB = INT( LOG10( CAB+SFMIN ) / BASL+ONE ) | LCAB = INT( LOG10( CAB+SFMIN ) / BASL+ONE ) | ||||
| JC = RSCALE( I ) + SIGN( HALF, RSCALE( I ) ) | |||||
| JC = INT( RSCALE( I ) + SIGN( HALF, RSCALE( I ) ) ) | |||||
| JC = MIN( MAX( JC, LSFMIN ), LSFMAX, LSFMAX-LCAB ) | JC = MIN( MAX( JC, LSFMIN ), LSFMAX, LSFMAX-LCAB ) | ||||
| RSCALE( I ) = SCLFAC**JC | RSCALE( I ) = SCLFAC**JC | ||||
| 360 CONTINUE | 360 CONTINUE | ||||
| @@ -289,7 +289,7 @@ | |||||
| * | * | ||||
| CALL CGGQRF( N, M, P, A, LDA, WORK, B, LDB, WORK( M+1 ), | CALL CGGQRF( N, M, P, A, LDA, WORK, B, LDB, WORK( M+1 ), | ||||
| $ WORK( M+NP+1 ), LWORK-M-NP, INFO ) | $ WORK( M+NP+1 ), LWORK-M-NP, INFO ) | ||||
| LOPT = REAL( WORK( M+NP+1 ) ) | |||||
| LOPT = INT( WORK( M+NP+1 ) ) | |||||
| * | * | ||||
| * Update left-hand-side vector d = Q**H*d = ( d1 ) M | * Update left-hand-side vector d = Q**H*d = ( d1 ) M | ||||
| * ( d2 ) N-M | * ( d2 ) N-M | ||||
| @@ -511,7 +511,7 @@ | |||||
| * | * | ||||
| IF( JJ.GT.0 ) THEN | IF( JJ.GT.0 ) THEN | ||||
| DO I = JJ, 1, -1 | DO I = JJ, 1, -1 | ||||
| C = DBLE( A( J+1+I, J ) ) | |||||
| C = REAL( A( J+1+I, J ) ) | |||||
| CALL CROT( IHI-TOP, A( TOP+1, J+I+1 ), 1, | CALL CROT( IHI-TOP, A( TOP+1, J+I+1 ), 1, | ||||
| $ A( TOP+1, J+I ), 1, C, | $ A( TOP+1, J+I ), 1, C, | ||||
| $ -CONJG( B( J+1+I, J ) ) ) | $ -CONJG( B( J+1+I, J ) ) ) | ||||
| @@ -276,7 +276,7 @@ | |||||
| * | * | ||||
| CALL CGGRQF( P, M, N, B, LDB, WORK, A, LDA, WORK( P+1 ), | CALL CGGRQF( P, M, N, B, LDB, WORK, A, LDA, WORK( P+1 ), | ||||
| $ WORK( P+MN+1 ), LWORK-P-MN, INFO ) | $ WORK( P+MN+1 ), LWORK-P-MN, INFO ) | ||||
| LOPT = REAL( WORK( P+MN+1 ) ) | |||||
| LOPT = INT( WORK( P+MN+1 ) ) | |||||
| * | * | ||||
| * Update c = Z**H *c = ( c1 ) N-P | * Update c = Z**H *c = ( c1 ) N-P | ||||
| * ( c2 ) M+P-N | * ( c2 ) M+P-N | ||||
| @@ -276,7 +276,7 @@ | |||||
| * QR factorization of N-by-M matrix A: A = Q*R | * QR factorization of N-by-M matrix A: A = Q*R | ||||
| * | * | ||||
| CALL CGEQRF( N, M, A, LDA, TAUA, WORK, LWORK, INFO ) | CALL CGEQRF( N, M, A, LDA, TAUA, WORK, LWORK, INFO ) | ||||
| LOPT = REAL( WORK( 1 ) ) | |||||
| LOPT = INT( WORK( 1 ) ) | |||||
| * | * | ||||
| * Update B := Q**H*B. | * Update B := Q**H*B. | ||||
| * | * | ||||
| @@ -360,9 +360,9 @@ | |||||
| CALL CHEGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) | CALL CHEGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO ) | ||||
| CALL CHEEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, LRWORK, | CALL CHEEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, LRWORK, | ||||
| $ IWORK, LIWORK, INFO ) | $ IWORK, LIWORK, INFO ) | ||||
| LOPT = MAX( REAL( LOPT ), REAL( WORK( 1 ) ) ) | |||||
| LROPT = MAX( REAL( LROPT ), REAL( RWORK( 1 ) ) ) | |||||
| LIOPT = MAX( REAL( LIOPT ), REAL( IWORK( 1 ) ) ) | |||||
| LOPT = INT( MAX( REAL( LOPT ), REAL( WORK( 1 ) ) ) ) | |||||
| LROPT = INT( MAX( REAL( LROPT ), REAL( RWORK( 1 ) ) ) ) | |||||
| LIOPT = INT( MAX( REAL( LIOPT ), REAL( IWORK( 1 ) ) ) ) | |||||
| * | * | ||||
| IF( WANTZ .AND. INFO.EQ.0 ) THEN | IF( WANTZ .AND. INFO.EQ.0 ) THEN | ||||
| * | * | ||||
| @@ -280,7 +280,7 @@ | |||||
| LWKOPT = 1 | LWKOPT = 1 | ||||
| ELSE | ELSE | ||||
| CALL CHETRF_RK( UPLO, N, A, LDA, E, IPIV, WORK, -1, INFO ) | CALL CHETRF_RK( UPLO, N, A, LDA, E, IPIV, WORK, -1, INFO ) | ||||
| LWKOPT = REAL( WORK(1) ) | |||||
| LWKOPT = INT( WORK( 1 ) ) | |||||
| END IF | END IF | ||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| @@ -335,9 +335,9 @@ | |||||
| CALL CHPGST( ITYPE, UPLO, N, AP, BP, INFO ) | CALL CHPGST( ITYPE, UPLO, N, AP, BP, INFO ) | ||||
| CALL CHPEVD( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, RWORK, | CALL CHPEVD( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, RWORK, | ||||
| $ LRWORK, IWORK, LIWORK, INFO ) | $ LRWORK, IWORK, LIWORK, INFO ) | ||||
| LWMIN = MAX( REAL( LWMIN ), REAL( WORK( 1 ) ) ) | |||||
| LRWMIN = MAX( REAL( LRWMIN ), REAL( RWORK( 1 ) ) ) | |||||
| LIWMIN = MAX( REAL( LIWMIN ), REAL( IWORK( 1 ) ) ) | |||||
| LWMIN = INT( MAX( REAL( LWMIN ), REAL( WORK( 1 ) ) ) ) | |||||
| LRWMIN = INT( MAX( REAL( LRWMIN ), REAL( RWORK( 1 ) ) ) ) | |||||
| LIWMIN = INT( MAX( REAL( LIWMIN ), REAL( IWORK( 1 ) ) ) ) | |||||
| * | * | ||||
| IF( WANTZ ) THEN | IF( WANTZ ) THEN | ||||
| * | * | ||||
| @@ -223,7 +223,7 @@ | |||||
| LWKOPT = 1 | LWKOPT = 1 | ||||
| ELSE | ELSE | ||||
| CALL CSYTRF( UPLO, N, A, LDA, IPIV, WORK, -1, INFO ) | CALL CSYTRF( UPLO, N, A, LDA, IPIV, WORK, -1, INFO ) | ||||
| LWKOPT = REAL( WORK(1) ) | |||||
| LWKOPT = INT( WORK( 1 ) ) | |||||
| END IF | END IF | ||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| @@ -280,7 +280,7 @@ | |||||
| LWKOPT = 1 | LWKOPT = 1 | ||||
| ELSE | ELSE | ||||
| CALL CSYTRF_RK( UPLO, N, A, LDA, E, IPIV, WORK, -1, INFO ) | CALL CSYTRF_RK( UPLO, N, A, LDA, E, IPIV, WORK, -1, INFO ) | ||||
| LWKOPT = REAL( WORK(1) ) | |||||
| LWKOPT = INT( WORK( 1 ) ) | |||||
| END IF | END IF | ||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| @@ -256,7 +256,7 @@ | |||||
| LWKOPT = 1 | LWKOPT = 1 | ||||
| ELSE | ELSE | ||||
| CALL CSYTRF_ROOK( UPLO, N, A, LDA, IPIV, WORK, -1, INFO ) | CALL CSYTRF_ROOK( UPLO, N, A, LDA, IPIV, WORK, -1, INFO ) | ||||
| LWKOPT = REAL( WORK(1) ) | |||||
| LWKOPT = INT( WORK( 1 ) ) | |||||
| END IF | END IF | ||||
| WORK( 1 ) = LWKOPT | WORK( 1 ) = LWKOPT | ||||
| END IF | END IF | ||||
| @@ -233,7 +233,7 @@ | |||||
| END IF | END IF | ||||
| END IF | END IF | ||||
| END IF | END IF | ||||
| LWKOPT = REAL( WORK( 1 ) ) | |||||
| LWKOPT = INT( WORK( 1 ) ) | |||||
| LWKOPT = MAX (LWKOPT, MN) | LWKOPT = MAX (LWKOPT, MN) | ||||
| END IF | END IF | ||||
| * | * | ||||