SCALAPACK 2.2.2
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ pbstr2bt()

subroutine pbstr2bt ( integer  icontxt,
character*1  adist,
character*1  trans,
integer  m,
integer  n,
integer  nb,
real, dimension( lda, * )  a,
integer  lda,
real  beta,
real, dimension( ldb, * )  b,
integer  ldb,
integer  intv 
)

Definition at line 703 of file pbstran.f.

705*
706* -- PB-BLAS routine (version 2.1) --
707* University of Tennessee, Knoxville, Oak Ridge National Laboratory.
708* April 28, 1996
709*
710* .. Scalar Arguments ..
711 CHARACTER*1 ADIST, TRANS
712 INTEGER ICONTXT, INTV, LDA, LDB, M, N, NB
713 REAL BETA
714* ..
715* .. Array Arguments ..
716 REAL A( LDA, * ), B( LDB, * )
717* ..
718*
719* Purpose
720* =======
721*
722* PBSTR2BT forms T <== A^T + beta*T or A^C + beta*T, where T is a
723* ((conjugate) transposed) condensed block row (or column), copied from
724* a scattered block column (or row) of A
725*
726* =====================================================================
727*
728* .. Parameters ..
729 REAL ONE
730 parameter( one = 1.0e+0 )
731* ..
732* .. Local Scalars ..
733 INTEGER IA, IB, K
734* ..
735* .. External Functions ..
736 LOGICAL LSAME
737 INTEGER ICEIL
738 EXTERNAL lsame, iceil
739* ..
740* .. External Subroutines ..
741 EXTERNAL pbsmatadd
742* ..
743* .. Intrinsic Functions ..
744 INTRINSIC min
745* ..
746* .. Excutable Statements ..
747*
748 IF( intv.EQ.nb ) THEN
749 CALL pbsmatadd( icontxt, trans, n, m, one, a, lda, beta, b,
750 $ ldb )
751*
752 ELSE
753*
754* If A is a column block ( ADIST = 'C' ),
755*
756 IF( lsame( adist, 'C' ) ) THEN
757 ia = 1
758 ib = 1
759 DO 10 k = 1, iceil( m, intv )
760 CALL pbsmatadd( icontxt, trans, n, min( m-ia+1, nb ),
761 $ one, a(ia,1), lda, beta, b(1,ib), ldb )
762 ia = ia + intv
763 ib = ib + nb
764 10 CONTINUE
765*
766* If A is a row block (ADIST = 'R'),
767*
768 ELSE
769 ia = 1
770 ib = 1
771 DO 20 k = 1, iceil( n, intv )
772 CALL pbsmatadd( icontxt, trans, min( n-ia+1, nb ), m,
773 $ one, a(1,ia), lda, beta, b(ib,1), ldb )
774 ia = ia + intv
775 ib = ib + nb
776 20 CONTINUE
777 END IF
778 END IF
779*
780 RETURN
781*
782* End of PBSTR2BT
783*
integer function iceil(inum, idenom)
Definition iceil.f:2
subroutine pbsmatadd(icontxt, mode, m, n, alpha, a, lda, beta, b, ldb)
Definition pbsmatadd.f:3
#define min(A, B)
Definition pcgemr.c:181
logical function lsame(ca, cb)
Definition tools.f:1724
Here is the call graph for this function:
Here is the caller graph for this function: