c c What if a wrong DESCRA is passed? c c * * SUBROUTINE ZCOOMM(TRANSA,M,K,N,ALPHA,DESCRA,AR, * IA,JA,INFOA,B,LDB,BETA,C,LDC,WORK,LWORK) C C C .. Scalar Arguments .. COMPLEX*16 ALPHA, BETA INTEGER K, LDB, LDC, M, N, LWORK CHARACTER TRANSA C .. Array Arguments .. COMPLEX*16 AR(*), B(LDB,*), C(LDC,*), WORK(*) INTEGER IA(*), JA(*),INFOA(*) CHARACTER DESCRA*11 C .. Local Scalars .. INTEGER I, J CHARACTER DIAG, TRANS C .. External Subroutines .. EXTERNAL ZCOOMV C .. Executable Statements .. C C C IF (DESCRA(1:1).EQ.'G') TRANS = TRANSA IF (DESCRA(1:1).EQ.'S' .AND. DESCRA(2:2).EQ.'U') TRANS = 'U' IF (DESCRA(1:1).EQ.'S' .AND. DESCRA(2:2).EQ.'L') TRANS = 'L' c c Does DSRMV manage this case too?