@@ -184,14 +184,14 @@ SUBROUTINE CTRSYL3( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C,
184184* .. External Functions ..
185185 LOGICAL LSAME
186186 INTEGER ILAENV
187- REAL SLAMCH, SLARMM, CLANGE
188- EXTERNAL SLAMCH, SLARMM, ILAENV, LSAME, CLANGE
187+ REAL CLANGE, SLAMCH, SLARMM
188+ EXTERNAL CLANGE, ILAENV, LSAME, SLAMCH, SLARMM
189189* ..
190190* .. External Subroutines ..
191- EXTERNAL XERBLA, CSSCAL, CGEMM, CLASCL, CTRSYL
191+ EXTERNAL CSSCAL, CGEMM, CLASCL, CTRSYL, XERBLA
192192* ..
193193* .. Intrinsic Functions ..
194- INTRINSIC ABS, EXPONENT, REAL , AIMAG, MAX, MIN
194+ INTRINSIC ABS, AIMAG, EXPONENT, MAX, MIN, REAL
195195* ..
196196* .. Executable Statements ..
197197*
@@ -237,8 +237,6 @@ SUBROUTINE CTRSYL3( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C,
237237 INFO = - 9
238238 ELSE IF ( LDC.LT. MAX ( 1 , M ) ) THEN
239239 INFO = - 11
240- ELSE IF ( .NOT. LQUERY .AND. LDSWORK.LT. MAX ( NBA, NBB ) ) THEN
241- INFO = - 16
242240 END IF
243241 IF ( INFO.NE. 0 ) THEN
244242 CALL XERBLA( ' CTRSYL3' , - INFO )
@@ -249,12 +247,14 @@ SUBROUTINE CTRSYL3( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB, C,
249247*
250248* Quick return if possible
251249*
250+ SCALE = ONE
252251 IF ( M.EQ. 0 .OR. N.EQ. 0 )
253252 $ RETURN
254253*
255- * Use unblocked code for small problems
254+ * Use unblocked code for small problems or if insufficient
255+ * workspace is provided
256256*
257- IF ( NBA.EQ. 1 .OR. NBB .EQ. 1 ) THEN
257+ IF ( MIN ( NBA, NBB ) .EQ. 1 .OR. LDSWORK .LT. MAX ( NBA, NBB ) ) THEN
258258 CALL CTRSYL( TRANA, TRANB, ISGN, M, N, A, LDA, B, LDB,
259259 $ C, LDC, SCALE, INFO )
260260 RETURN
0 commit comments