Added Jasons patches to bring work and rwork down to 2*N in the complex refinement...
authordeaglanhalligan <deaglanhalligan@8a072113-8704-0410-8d35-dd094bca7971>
Wed, 11 Feb 2009 06:06:54 +0000 (06:06 +0000)
committerdeaglanhalligan <deaglanhalligan@8a072113-8704-0410-8d35-dd094bca7971>
Wed, 11 Feb 2009 06:06:54 +0000 (06:06 +0000)
40 files changed:
SRC/cgbrfsx.f
SRC/cgbsvxx.f
SRC/cgerfsx.f
SRC/cgesvxx.f
SRC/cherfsx.f
SRC/chesvxx.f
SRC/cla_gbrcond_c.f
SRC/cla_gbrcond_x.f
SRC/cla_gercond_c.f
SRC/cla_gercond_x.f
SRC/cla_hercond_c.f
SRC/cla_hercond_x.f
SRC/cla_porcond_c.f
SRC/cla_porcond_x.f
SRC/cla_syrcond_c.f
SRC/cla_syrcond_x.f
SRC/cporfsx.f
SRC/cposvxx.f
SRC/csyrfsx.f
SRC/csysvxx.f
SRC/zgbrfsx.f
SRC/zgbsvxx.f
SRC/zgerfsx.f
SRC/zgesvxx.f
SRC/zherfsx.f
SRC/zhesvxx.f
SRC/zla_gbrcond_c.f
SRC/zla_gbrcond_x.f
SRC/zla_gercond_c.f
SRC/zla_gercond_x.f
SRC/zla_hercond_c.f
SRC/zla_hercond_x.f
SRC/zla_porcond_c.f
SRC/zla_porcond_x.f
SRC/zla_syrcond_c.f
SRC/zla_syrcond_x.f
SRC/zporfsx.f
SRC/zposvxx.f
SRC/zsyrfsx.f
SRC/zsysvxx.f

index 6b07ddb75038fa28e152a2dd0c6c9b9faae193b2..adfc943a05556848cc3d491feb9d0163009aa95a 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) REAL array, dimension (4*N)
+*     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, CGBCON, CLA_GBRFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
             CALL CLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N, KL, KU,
      $           NRHS, AB, LDAB, AFB, LDAFB, IPIV, COLEQU, C, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+     $           TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
      $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          ELSE
             CALL CLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N, KL, KU,
      $           NRHS, AB, LDAB, AFB, LDAFB, IPIV, ROWEQU, R, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+     $           TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
      $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          END IF
index f038cc265085758abac7166c374fcddd02e30730..29272e3e04c9f98a83da07f74d8dddfbd9da7be7 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) REAL array, dimension (4*N)
+*     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index eb11121b0ecd10f6e5b520bcc25b6b6416e8d9d8..910297ef553a46d4ffd2fe6f26184a71b550879a 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) REAL array, dimension (4*N)
+*     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, CGECON, CLA_GERFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
             CALL CLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N,
      $           NRHS, A, LDA, AF, LDAF, IPIV, COLEQU, C, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+     $           TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
      $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          ELSE
             CALL CLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N,
      $           NRHS, A, LDA, AF, LDAF, IPIV, ROWEQU, R, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+     $           TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
      $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          END IF
index cda6917c7854f6e024643688a4f1234555be74ec..7daaea198951610931841376d6fc82f022172817 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) COMPLEX array, dimension (3*N)
+*     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     RWORK   (workspace) REAL array, dimension (3*N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index 3db6eb73af09d7c6c9ede72d5abcb993724b2f51..92fe9529a5456bc57da6f54040af050df525ad6f 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) REAL array, dimension (4*N)
+*     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, CHECON, CLA_HERFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
          CALL CLA_HERFSX_EXTENDED( PREC_TYPE, UPLO,  N,
      $        NRHS, A, LDA, AF, LDAF, IPIV, RCEQU, S, B,
      $        LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
-     $        WORK(N+1), WORK(1), WORK(2*N+1), WORK(1), RCOND,
+     $        WORK, RWORK, WORK(N+1),
+     $        TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
      $        ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $        INFO )
       END IF
index 8c5c37170ed88312eb6b84b64e7be8ad6b07b0d8..1fffb046bdf0946ac2a150b83ab0dd27afb259c8 100644 (file)
 *
 *     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     RWORK   (workspace) REAL array, dimension (3*N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index ec53670196ded91ea80f50e43d48ea3f55e6fb10..5e929f0362c04d68c46f8e3c0e2316f94467b777 100644 (file)
@@ -36,7 +36,7 @@
 *
 *  WORK    COMPLEX workspace of size 2*N.
 *
-*  RWORK   REAL workspace of size 3*N.
+*   RWORK  REAL workspace of size N.
 *
 *  =====================================================================
 *
                   TMP = TMP + CABS1( AB( KD+I-J, J ) )
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( AB( KE-I+J, I ) )
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( NOTRANS ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 75d04617b4f16805cb27b6ff401293dc67aab07a..13eb5e2d56da615fc1bb51c4a58d31c61bd71ecd 100644 (file)
             DO J = MAX( I-KL, 1 ), MIN( I+KU, N )
                TMP = TMP + CABS1( AB( KD+I-J, J) * X( J ) )
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
             DO J = MAX( I-KL, 1 ), MIN( I+KU, N )
                TMP = TMP + CABS1( AB( KE-I+J, I ) * X( J ) )
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( NOTRANS ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 7c00bed234d28f05e3333f4724645c2ca86a1c18..9ff2cd629c889287e28256423862dce712796995 100644 (file)
@@ -35,7 +35,7 @@
 *
 *  WORK    COMPLEX workspace of size 2*N.
 *
-*  RWORK   REAL workspace of size 3*N.
+*  RWORK REAL workspace of size N.
 *
 *  =====================================================================
 *
@@ -94,7 +94,7 @@
                   TMP = TMP + CABS1( A( I, J ) )
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( A( J, I ) )
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF (NOTRANS) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index b95a6473bb51dae4ddb96fdfb68f749af437b621..8632734bb619e0fda26d430a426eafb840e4e702 100644 (file)
@@ -90,7 +90,7 @@
             DO J = 1, N
                TMP = TMP + CABS1( A( I, J ) * X( J ) )
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
@@ -99,7 +99,7 @@
             DO J = 1, N
                TMP = TMP + CABS1( A( J, I ) * X( J ) )
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
          IF( KASE.EQ.2 ) THEN
 *           Multiply by R.
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( NOTRANS ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index f4ffda94772afd40d7d80581e2b210be6a53fff1..a02e3ca31078d459bf9df95d3370f148787f26e9 100644 (file)
@@ -35,7 +35,7 @@
 *
 *  WORK    COMPLEX workspace of size 2*N.
 *
-*  RWORK   REAL workspace of size 3*N.
+*  RWORK REAL workspace of size N.
 *
 *  =====================================================================
 *
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 8ca18eba4322157eeefa15ef957a04359764a50c..ce305ccd06c5b03df7baf063c32396d5c694dc72 100644 (file)
@@ -91,7 +91,7 @@
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index d4d8072f9a2db25f7c892d625dce5708a12be63a..80c196aa1a134c0c7f01e72757cffd8608ce624b 100644 (file)
 *
 *     SLA_PORCOND_C Computes the infinity norm condition number of
 *     op(A) * inv(diag(C)) where C is a REAL vector
-*     WORK is a COMPLEX workspace of size 2*N, and
-*     RWORK is a REAL workspace of size 3*N.
+*
+*     WORK  COMPLEX workspace of size 2*N, and
+*
+*     RWORK REAL workspace of size 3*N.
 *
 *  =====================================================================
 *
@@ -95,7 +97,7 @@
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 5946bb522f2759d41049de4c4fc7ee4e2587727f..13931c513b932dc8eeabf519cd4e71eab1c58848 100644 (file)
@@ -83,7 +83,7 @@
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
@@ -96,7 +96,7 @@
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index bd2ba7ea3a21d496fddf74582285f397815ca8fb..6bbbf7e2f70d90acdbd043c893d8d1d6bc9b7868 100644 (file)
@@ -35,7 +35,7 @@
 *
 *  WORK    COMPLEX workspace of size 2*N.
 *
-*  RWORK   REAL workspace of size 3*N.
+*  RWORK REAL workspace of size N.
 *
 *  =====================================================================
 *
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index fad3211b7bd9327b5b6dfaa80eb2d8fb319afe3f..f678da04db2716b0f767145b6bb8b71e14856b42 100644 (file)
@@ -92,7 +92,7 @@
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 6d9c5d834b0e2ee04102cc34bcfdf9da54fafb08..740a347725ab35502256bbda6f6bc20b900b4bf4 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) REAL array, dimension (4*N)
+*     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, CPOCON, CLA_PORFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
          CALL CLA_PORFSX_EXTENDED( PREC_TYPE, UPLO, N,
      $        NRHS, A, LDA, AF, LDAF, RCEQU, S, B,
      $        LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
-     $        WORK(N+1), WORK(1), WORK(2*N+1), WORK(1), RCOND,
+     $        WORK, RWORK, WORK(N+1),
+     $        TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
      $        ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $        INFO )
       END IF
index 6e5c5c8cf381a1ea4e924593bc22570cc2ada754..8b2eae8f66b983bd51bbed074eba2a46b288e26c 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) REAL array, dimension (4*N)
+*     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index b19bf7031eb22ff85882a4b2cc350c4cb1f96f42..71b864f9b95f881ba9257eff84cb6df193fc102d 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) REAL array, dimension (4*N)
+*     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, CSYCON, CLA_SYRFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
          CALL CLA_SYRFSX_EXTENDED( PREC_TYPE, UPLO,  N,
      $        NRHS, A, LDA, AF, LDAF, IPIV, RCEQU, S, B,
      $        LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
-     $        WORK(N+1), RWORK, WORK(2*N+1), WORK(1), RCOND,
+     $        WORK, RWORK, WORK(N+1),
+     $        TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
      $        ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $        INFO )
       END IF
index 50a33c8827d0267b85809e6f8a7963235cfee9cf..42f3d89efdee10623215f9c558fecaf40c845833 100644 (file)
 *
 *     WORK    (workspace) COMPLEX array, dimension (2*N)
 *
-*     RWORK   (workspace) REAL array, dimension (3*N)
+*     RWORK   (workspace) REAL array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index cba1fe7701072bcb2477310b05ae92b611276f91..6ec6c24a843df48465ed9d5cfd81477d709470ea 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) DOUBLE PRECISION array, dimension (4*N)
+*     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, ZGBCON, ZLA_GBRFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
             CALL ZLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N, KL, KU,
      $           NRHS, AB, LDAB, AFB, LDAFB, IPIV, COLEQU, C, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+     $           TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
      $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          ELSE
             CALL ZLA_GBRFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N, KL, KU,
      $           NRHS, AB, LDAB, AFB, LDAFB, IPIV, ROWEQU, R, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+     $           TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
      $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          END IF
index f5229c922ef741b8f79cb898b30566972122ad97..f7812c9f1b6b814ead52b0ad74a64f277157de74 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) DOUBLE PRECISION array, dimension (4*N)
+*     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index 7f3dd5e7286cb695df16f4698963c79a3c577cc5..62046b310746b9775f4532de60f9d256c77b945f 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) DOUBLE PRECISION array, dimension (4*N)
+*     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, ZGECON, ZLA_GERFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
             CALL ZLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N,
      $           NRHS, A, LDA, AF, LDAF, IPIV, COLEQU, C, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+     $           TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
      $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          ELSE
             CALL ZLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE,  N,
      $           NRHS, A, LDA, AF, LDAF, IPIV, ROWEQU, R, B,
      $           LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM,
-     $           ERR_BNDS_COMP, WORK(N+1), RWORK, WORK(2*N+1), WORK(1),
+     $           ERR_BNDS_COMP, WORK, RWORK, WORK(N+1),
+     $           TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N),
      $           RCOND, ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $           INFO )
          END IF
index 6f74ea2e50af8715f451a3e68cd24379b1a69f4b..0a0594297a7b37169db921dee5f8acf99ba3b650 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) COMPLEX*16 array, dimension (3*N)
+*     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     RWORK   (workspace) DOUBLE PRECISION array, dimension (3*N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index f73e03b5d2e1b4356e0657e2eec424d40ef99636..35a1fd08ceae091f69a560f6ece4916809469d3c 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) DOUBLE PRECISION array, dimension (4*N)
+*     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, ZHECON, ZLA_HERFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
          CALL ZLA_HERFSX_EXTENDED( PREC_TYPE, UPLO,  N,
      $        NRHS, A, LDA, AF, LDAF, IPIV, RCEQU, S, B,
      $        LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
-     $        WORK(N+1), WORK(1), WORK(2*N+1), WORK(1), RCOND,
+     $        WORK, RWORK, WORK(N+1),
+     $        TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
      $        ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $        INFO )
       END IF
index d43df5283521973c413c58f43024b07274559aca..a703c97a1cd48808c3226f81b08a594baeb0ff70 100644 (file)
 *
 *     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     RWORK   (workspace) DOUBLE PRECISION array, dimension (3*N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index 3c2241c0601b2d935f5365281f5225d4c0a50d2d..16f3ff35282f19ab71e3ce91b9943e48de95ec14 100644 (file)
@@ -36,7 +36,7 @@
 *
 *   WORK   COMPLEX*16 workspace of size 2*N.
 *
-*   RWORK  DOUBLE PRECISION workspace of size 3*N.
+*   RWORK  DOUBLE PRECISION workspace of size N.
 *
 *  =====================================================================
 *
                   TMP = TMP + CABS1( AB( KD+I-J, J ) )
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( AB( KE-I+J, I ) )
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( NOTRANS ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 236508b3045c70000e33b7cd69722869c091f526..12af194d81dc4fe2049500f19f00a3e16cba5abe 100644 (file)
             DO J = MAX( I-KL, 1 ), MIN( I+KU, N )
                TMP = TMP + CABS1( AB( KD+I-J, J) * X( J ) )
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
             DO J = MAX( I-KL, 1 ), MIN( I+KU, N )
                TMP = TMP + CABS1( AB( KE-I+J, I ) * X( J ) )
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( NOTRANS ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index b141bd241742db747bfd2256387a03ce551012d1..26ec26b2b9cc223fb30725fc8c0c18b5b36ce461 100644 (file)
@@ -36,7 +36,7 @@
 *
 *  WORK  COMPLEX*16 workspace of size 2*N.
 *
-*  RWORK DOUBLE PRECISION workspace of size 3*N.
+*  RWORK DOUBLE PRECISION workspace of size N.
 *
 *  =====================================================================
 *
@@ -95,7 +95,7 @@
                   TMP = TMP + CABS1( A( I, J ) )
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( A( J, I ) )
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF (NOTRANS) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 93a1635f3d2cfaa85c1cc09ac136a1d94c25bc9f..19f69c9bbb2bef8fcbac3b1d1fcb058858a69421 100644 (file)
@@ -90,7 +90,7 @@
             DO J = 1, N
                TMP = TMP + CABS1( A( I, J ) * X( J ) )
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
@@ -99,7 +99,7 @@
             DO J = 1, N
                TMP = TMP + CABS1( A( J, I ) * X( J ) )
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
          IF( KASE.EQ.2 ) THEN
 *           Multiply by R.
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( NOTRANS ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index bef3c663409abccb88dbeeeb6e69d76a5782b053..2dce4c6170c325bc3a4ca74b991aa05ee669618c 100644 (file)
@@ -36,7 +36,7 @@
 *
 *  WORK  COMPLEX*16 workspace of size 2*N.
 *
-*  RWORK DOUBLE PRECISION workspace of size 3*N.
+*  RWORK DOUBLE PRECISION workspace of size N.
 *
 *  =====================================================================
 *
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index ea031ced59d0c9bfab6a8288dfde3a3c74b2b00b..2512915652c8b2f5207db82865f609930cd3f7e0 100644 (file)
@@ -91,7 +91,7 @@
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 81e38b02b1e9ac0bf0029b3e6720509c0c5222fc..b074a55473b2912015a46cdc31949f40e7fad0b2 100644 (file)
@@ -34,7 +34,7 @@
 *
 *  WORK  COMPLEX*16 workspace of size 2*N.
 *
-*  RWORK DOUBLE PRECISION workspace of size 3*N.
+*  RWORK DOUBLE PRECISION workspace of size N.
 *
 *  =====================================================================
 *
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index aa31f0a335e6a41f86f46e4f15559ea2cc1bcd21..2692dad65694f2635a1483bec3b8dca33a4416bb 100644 (file)
@@ -90,7 +90,7 @@
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 12ccdf26599cf7afa311b1ba40bde5bfadb4a532..037d8c6c3ac694740378473f957b22184314c5c7 100644 (file)
@@ -36,7 +36,7 @@
 *
 *  WORK  COMPLEX*16 workspace of size 2*N.
 *
-*  RWORK DOUBLE PRECISION workspace of size 3*N.
+*  RWORK DOUBLE PRECISION workspace of size N.
 *
 *  =====================================================================
 *
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   END IF
                END DO
             END IF
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 8a2fe8e2eb2821119e68a36ea7b087121608db73..bea7c1383ad728cd2dbc81d59dfb0a79affa7847 100644 (file)
@@ -92,7 +92,7 @@
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       ELSE
                   TMP = TMP + CABS1( A( I, J ) * X( J ) )
                END IF
             END DO
-            RWORK( 2*N+I ) = TMP
+            RWORK( I ) = TMP
             ANORM = MAX( ANORM, TMP )
          END DO
       END IF
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
 *
             IF ( UP ) THEN
 *           Multiply by R.
 *
             DO I = 1, N
-               WORK( I ) = WORK( I ) * RWORK( 2*N+I )
+               WORK( I ) = WORK( I ) * RWORK( I )
             END DO
          END IF
          GO TO 10
index 44334c6926d14e1b6cd18eb676e236bcc24cfa03..a66af9a88a21a14709d00cbe3b87593a811a4b7e 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) DOUBLE PRECISION array, dimension (4*N)
+*     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, ZPOCON, ZLA_PORFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
          CALL ZLA_PORFSX_EXTENDED( PREC_TYPE, UPLO, N,
      $        NRHS, A, LDA, AF, LDAF, RCEQU, S, B,
      $        LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
-     $        WORK(N+1), WORK(1), WORK(2*N+1), WORK(1), RCOND,
+     $        WORK, RWORK, WORK(N+1),
+     $        TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
      $        ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $        INFO )
       END IF
index e62ad3e7ce2ecfd1610695dc3f80eacedef92d26..1387c455bce0289814f3c7697a7539416662cb0f 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) DOUBLE PRECISION array, dimension (4*N)
+*     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
index 2d204ab23e05c57a5579d5ed5092a76bd0ad62af..e08f1784169073fb3e90a433bec80c3908e25d1e 100644 (file)
 *            is true, 0.0 is false.
 *         Default: 1.0 (attempt componentwise convergence)
 *
-*     WORK    (workspace) DOUBLE PRECISION array, dimension (4*N)
+*     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     IWORK   (workspace) INTEGER array, dimension (N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is
       EXTERNAL           XERBLA, ZSYCON, ZLA_SYRFSX_EXTENDED
 *     ..
 *     .. Intrinsic Functions ..
-      INTRINSIC          MAX, SQRT
+      INTRINSIC          MAX, SQRT, TRANSFER
 *     ..
 *     .. External Functions ..
       EXTERNAL           LSAME, BLAS_FPINFO_X, ILATRANS, ILAPREC
          CALL ZLA_SYRFSX_EXTENDED( PREC_TYPE, UPLO,  N,
      $        NRHS, A, LDA, AF, LDAF, IPIV, RCEQU, S, B,
      $        LDB, X, LDX, BERR, N_NORMS, ERR_BNDS_NORM, ERR_BNDS_COMP,
-     $        WORK(N+1), RWORK, WORK(2*N+1), WORK(1), RCOND,
+     $        WORK, RWORK, WORK(N+1),
+     $        TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
      $        ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
      $        INFO )
       END IF
index 3ca260b0c010f584c6d517a81f1af2a13a7d1f09..2ad998adba094b3547d983e58e643888c0f6b865 100644 (file)
 *
 *     WORK    (workspace) COMPLEX*16 array, dimension (2*N)
 *
-*     RWORK   (workspace) DOUBLE PRECISION array, dimension (3*N)
+*     RWORK   (workspace) DOUBLE PRECISION array, dimension (2*N)
 *
 *     INFO    (output) INTEGER
 *       = 0:  Successful exit. The solution to every right-hand side is