706
  707
  708
  709
  710
  711
  712      CHARACTER*1        ADIST, TRANS
  713      INTEGER            ICONTXT, INTV, LDA, LDB, M, N, NB
  714      COMPLEX*16         BETA
  715
  716
  717      COMPLEX*16         A( LDA, * ), B( LDB, * )
  718
  719
  720
  721
  722
  723
  724
  725
  726
  727
  728
  729
  730      COMPLEX*16         ONE
  731      parameter( one  = ( 1.0d+0, 0.0d+0 ) )
  732
  733
  734      INTEGER            IA, IB, K
  735
  736
  737      LOGICAL            LSAME
  738      INTEGER            ICEIL
  740
  741
  743
  744
  746
  747
  748
  749      IF( intv.EQ.nb ) THEN
  750         CALL pbzmatadd( icontxt, trans, n, m, one, a, lda, beta, b,
 
  751     $                   ldb )
  752
  753      ELSE
  754
  755
  756
  757         IF( 
lsame( adist, 
'C' ) ) 
THEN 
  758            ia = 1
  759            ib = 1
  760            DO 10 k = 1, 
iceil( m, intv )
 
  762     $                         one, a(ia,1), lda, beta, b(1,ib), ldb )
  763               ia = ia + intv
  764               ib = ib + nb
  765   10       CONTINUE
  766
  767
  768
  769         ELSE
  770            ia = 1
  771            ib = 1
  772            DO 20 k = 1, 
iceil( n, intv )
 
  774     $                         one, a(1,ia), lda, beta, b(ib,1), ldb )
  775               ia = ia + intv
  776               ib = ib + nb
  777   20       CONTINUE
  778         END IF
  779      END IF
  780
  781      RETURN
  782
  783
  784
integer function iceil(inum, idenom)
 
subroutine pbzmatadd(icontxt, mode, m, n, alpha, a, lda, beta, b, ldb)