Skip to content

Commit eb1921a

Browse files
xUNCSD2BY1: improve LRWORK handling
* check LRWORK * pass actual LRWORK value to xBBCSD
1 parent 6281084 commit eb1921a

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

SRC/cuncsd2by1.f

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,9 @@ SUBROUTINE CUNCSD2BY1( JOBU1, JOBU2, JOBV1T, M, P, Q, X11, LDX11,
513513
IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN
514514
INFO = -19
515515
END IF
516+
IF( LRWORK .LT. LRWORKMIN .AND. .NOT.LQUERY ) THEN
517+
INFO = -21
518+
END IF
516519
END IF
517520
IF( INFO .NE. 0 ) THEN
518521
CALL XERBLA( 'CUNCSD2BY1', -INFO )
@@ -566,8 +569,8 @@ SUBROUTINE CUNCSD2BY1( JOBU1, JOBU2, JOBV1T, M, P, Q, X11, LDX11,
566569
$ RWORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T, CDUM,
567570
$ 1, RWORK(IB11D), RWORK(IB11E), RWORK(IB12D),
568571
$ RWORK(IB12E), RWORK(IB21D), RWORK(IB21E),
569-
$ RWORK(IB22D), RWORK(IB22E), RWORK(IBBCSD), LBBCSD,
570-
$ CHILDINFO )
572+
$ RWORK(IB22D), RWORK(IB22E), RWORK(IBBCSD),
573+
$ LRWORK-IBBCSD+1, CHILDINFO )
571574
*
572575
* Permute rows and columns to place zero submatrices in
573576
* preferred positions

SRC/zuncsd2by1.f

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,9 @@ SUBROUTINE ZUNCSD2BY1( JOBU1, JOBU2, JOBV1T, M, P, Q, X11, LDX11,
511511
IF( LWORK .LT. LWORKMIN .AND. .NOT.LQUERY ) THEN
512512
INFO = -19
513513
END IF
514+
IF( LRWORK .LT. LRWORKMIN .AND. .NOT.LQUERY ) THEN
515+
INFO = -21
516+
END IF
514517
END IF
515518
IF( INFO .NE. 0 ) THEN
516519
CALL XERBLA( 'ZUNCSD2BY1', -INFO )
@@ -564,8 +567,8 @@ SUBROUTINE ZUNCSD2BY1( JOBU1, JOBU2, JOBV1T, M, P, Q, X11, LDX11,
564567
$ RWORK(IPHI), U1, LDU1, U2, LDU2, V1T, LDV1T, CDUM,
565568
$ 1, RWORK(IB11D), RWORK(IB11E), RWORK(IB12D),
566569
$ RWORK(IB12E), RWORK(IB21D), RWORK(IB21E),
567-
$ RWORK(IB22D), RWORK(IB22E), RWORK(IBBCSD), LBBCSD,
568-
$ CHILDINFO )
570+
$ RWORK(IB22D), RWORK(IB22E), RWORK(IBBCSD),
571+
$ LRWORK-IBBCSD+1, CHILDINFO )
569572
*
570573
* Permute rows and columns to place zero submatrices in
571574
* preferred positions

0 commit comments

Comments
 (0)