aboutsummaryrefslogtreecommitdiff
path: root/SRC/ztprfb.f
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2012-09-21 02:21:29 +0000
committerjulie <julielangou@users.noreply.github.com>2012-09-21 02:21:29 +0000
commit44948e7c8e4cff62a9a944030e22ef7a93903c37 (patch)
treeca5dc5ca7137ff29789696ab951b7dfbe30f5224 /SRC/ztprfb.f
parentf045e14fbd8316f88bdcef003049b3959d57a67c (diff)
Diffstat (limited to 'SRC/ztprfb.f')
-rw-r--r--SRC/ztprfb.f21
1 files changed, 20 insertions, 1 deletions
diff --git a/SRC/ztprfb.f b/SRC/ztprfb.f
index 9110f494..d3d84505 100644
--- a/SRC/ztprfb.f
+++ b/SRC/ztprfb.f
@@ -184,6 +184,11 @@
*> The leading dimension of the array WORK.
*> If SIDE = 'L', LDWORK >= K;
*> if SIDE = 'R', LDWORK >= M.
+*>
+*> If LDWORK = -1, then a workspace query is assumed; the routine
+*> only calculates the optimal size of 2nd dimension of the WORK array,
+*> returns this value as the first entry of the WORK array, and no
+*> error message related to LDWORK is issued by XERBLA.
*> \endverbatim
*
* Authors:
@@ -273,7 +278,7 @@
* ..
* .. Local Scalars ..
INTEGER I, J, MP, NP, KP
- LOGICAL LEFT, FORWARD, COLUMN, RIGHT, BACKWARD, ROW
+ LOGICAL LEFT, LQUERY, FORWARD, COLUMN, RIGHT, BACKWARD, ROW
* ..
* .. External Functions ..
LOGICAL LSAME
@@ -287,6 +292,7 @@
* ..
* .. Executable Statements ..
*
+ LQUERY = ( LDWORK.EQ.-1 )
* Quick return if possible
*
IF( M.LE.0 .OR. N.LE.0 .OR. K.LE.0 .OR. L.LT.0 ) RETURN
@@ -323,6 +329,19 @@
FORWARD = .FALSE.
BACKWARD = .FALSE.
END IF
+* ---------------------------------------------------------------------------
+*
+* Workspace Query
+*
+ IF( LQUERY .AND. LEFT ) THEN
+ LDWORK=MAX(1,K)
+ ELSE IF ( LQUERY .AND. RIGHT ) THEN
+ LDWORK=MAX(1,M)
+ END IF
+
+ IF( LQUERY ) THEN
+ RETURN
+ END IF
*
* ---------------------------------------------------------------------------
*