@@ -452,14 +452,17 @@ SUBROUTINE ZHETRF_AA_2STAGE( UPLO, N, A, LDA, TB, LTB, IPIV,
452452* > Apply pivots to previous columns of L
453453 CALL ZSWAP( K-1 , A( (J+1 )* NB+1 , I1 ), 1 ,
454454 $ A( (J+1 )* NB+1 , I2 ), 1 )
455- * > Swap A(I1+1:M, I1) with A(I2, I1+1:M)
456- CALL ZSWAP( I2- I1-1 , A( I1, I1+1 ), LDA,
457- $ A( I1+1 , I2 ), 1 )
458- CALL ZLACGV( I2- I1, A( I1, I1+1 ), LDA )
459- CALL ZLACGV( I2- I1-1 , A( I1+1 , I2 ), 1 )
455+ * > Swap A(I1+1:M, I1) with A(I2, I1+1:M)
456+ IF ( I2.GT. (I1+1 ) ) THEN
457+ CALL ZSWAP( I2- I1-1 , A( I1, I1+1 ), LDA,
458+ $ A( I1+1 , I2 ), 1 )
459+ CALL ZLACGV( I2- I1, A( I1, I1+1 ), LDA )
460+ CALL ZLACGV( I2- I1-1 , A( I1+1 , I2 ), 1 )
461+ END IF
460462* > Swap A(I2+1:M, I1) with A(I2+1:M, I2)
461- CALL ZSWAP( N- I2, A( I1, I2+1 ), LDA,
462- $ A( I2, I2+1 ), LDA )
463+ IF ( I2.LT. N )
464+ $ CALL ZSWAP( N- I2, A( I1, I2+1 ), LDA,
465+ $ A( I2, I2+1 ), LDA )
463466* > Swap A(I1, I1) with A(I2, I2)
464467 PIV = A( I1, I1 )
465468 A( I1, I1 ) = A( I2, I2 )
@@ -629,14 +632,17 @@ SUBROUTINE ZHETRF_AA_2STAGE( UPLO, N, A, LDA, TB, LTB, IPIV,
629632* > Apply pivots to previous columns of L
630633 CALL ZSWAP( K-1 , A( I1, (J+1 )* NB+1 ), LDA,
631634 $ A( I2, (J+1 )* NB+1 ), LDA )
632- * > Swap A(I1+1:M, I1) with A(I2, I1+1:M)
633- CALL ZSWAP( I2- I1-1 , A( I1+1 , I1 ), 1 ,
634- $ A( I2, I1+1 ), LDA )
635- CALL ZLACGV( I2- I1, A( I1+1 , I1 ), 1 )
636- CALL ZLACGV( I2- I1-1 , A( I2, I1+1 ), LDA )
635+ * > Swap A(I1+1:M, I1) with A(I2, I1+1:M)
636+ IF ( I2.GT. (I1+1 ) ) THEN
637+ CALL ZSWAP( I2- I1-1 , A( I1+1 , I1 ), 1 ,
638+ $ A( I2, I1+1 ), LDA )
639+ CALL ZLACGV( I2- I1, A( I1+1 , I1 ), 1 )
640+ CALL ZLACGV( I2- I1-1 , A( I2, I1+1 ), LDA )
641+ END IF
637642* > Swap A(I2+1:M, I1) with A(I2+1:M, I2)
638- CALL ZSWAP( N- I2, A( I2+1 , I1 ), 1 ,
639- $ A( I2+1 , I2 ), 1 )
643+ IF ( I2.LT. N )
644+ $ CALL ZSWAP( N- I2, A( I2+1 , I1 ), 1 ,
645+ $ A( I2+1 , I2 ), 1 )
640646* > Swap A(I1, I1) with A(I2, I2)
641647 PIV = A( I1, I1 )
642648 A( I1, I1 ) = A( I2, I2 )
0 commit comments