Routine: PSLAEDZ()  File: SRC\pslaedz.f

 
 
# lines: 153
  # code: 153
  # comment: 0
  # blank:0
# Variables:52
# Callers:1
# Callings:0
# Words:43
# Keywords:24
 

 

Form z1 which consist of the last row of Q1
     Proc (IQROW, IQCOL) receive the parts of z1
     Form z2 which consist of the first row of Q2
     Proc (IQROW, IQCOL) receive the parts of z2
     proc(IQROW,IQCOL) broadcast Z=(Z1,Z2)

 
Display dynamic version Find AutoScroll Reload FontSize: - + Hide Comments Hide Blanks Frame FullScreen MailPrint

 
01        SUBROUTINE PSLAEDZ( N , N1 , ID , Q , IQ , JQ , LDQ , DESCQ , Z , WORK )
02  
03  *     -- ScaLAPACK auxiliary routine(version 1.7) --
04  *     University of Tennessee , Knoxville , Oak Ridge National Laboratory ,
05  *     and University of California , Berkeley.
06  *     December 31 , 1998
07  
08  *     .. Scalar Arguments ..
09        INTEGER ID , IQ , JQ , LDQ , N , N1
10  *     ..
11  *     .. Array Arguments ..
12        INTEGER DESCQ( * )
13        REAL Q( LDQ , * ) , WORK( * ) , Z( * )
14  *     ..
15  
16  *     Purpose
17  *     === ====
18  
19  *     PSLAEDZ Form the z - vector which consists of the last row of Q_1
20  *     and the first row of Q_2.
21  *     === ==================================================================
22  
23  *     .. Parameters ..
24  
25        INTEGER BLOCK_CYCLIC_2D , DLEN_ , DTYPE_ , CTXT_ , M_ , N_ ,
26       $MB_ , NB_ , RSRC_ , CSRC_ , LLD_
27        PARAMETER( BLOCK_CYCLIC_2D = 1 , DLEN_ = 9 , DTYPE_ = 1 ,
28       $CTXT_ = 2 , M_ = 3 , N_ = 4 , MB_ = 5 , NB_ = 6 ,
29       $RSRC_ = 7 , CSRC_ = 8 , LLD_ = 9 )
30  *     ..
31  *     .. Local Scalars ..
32  
33        INTEGER COL , I , IBUF , ICTXT , IIQ , IIZ1 , IIZ2 , IQCOL ,
34       $IQROW , IZ , IZ1 , IZ1COL , IZ1ROW , IZ2 , IZ2COL ,
35       $IZ2ROW , J , JJQ , JJZ1 , JJZ2 , MYCOL , MYROW , N2 ,
36       $NB , NBLOC , NPCOL , NPROW , NQ1 , NQ2 , ZSIZ
37  *     ..
38  *     .. Intrinsic Functions ..
39        INTRINSIC MIN , MOD
40  *     ..
41  *     .. External Subroutines ..
42        EXTERNAL BLACS_GRIDINFO , INFOG2L , SCOPY , SGEBR2D ,
43       $SGEBS2D , SGERV2D , SGESD2D
44  *     ..
45  *     .. External Functions ..
46        INTEGER NUMROC
47        EXTERNAL NUMROC
48  *     ..
49  *     .. Executable Statements ..
50  
51  *     This is just to keep ftnchek and toolpack / 1 happy
52        IF( BLOCK_CYCLIC_2D*CSRC_*CTXT_*DLEN_*DTYPE_*LLD_*MB_*M_*NB_*N_*
53       $    RSRC_.LT.0 )RETURN
54  
55            ICTXT = DESCQ( CTXT_ )
56            NB = DESCQ( NB_ )
57            CALL BLACS_GRIDINFO( ICTXT , NPROW , NPCOL , MYROW , MYCOL )
58            CALL INFOG2L( ID , ID , DESCQ , NPROW , NPCOL , MYROW , MYCOL , IIQ , JJQ ,
59       $    IQROW , IQCOL )
60            N2 = N - N1
61            IF( MYROW.EQ.IQROW .AND. MYCOL.EQ.IQCOL ) THEN
62                CALL SGEBS2D( ICTXT , 'All' , ' ' , N , 1 , Z , N )
63            ELSE
64                CALL SGEBR2D( ICTXT , 'All' , ' ' , N , 1 , Z , N , IQROW , IQCOL )
65            END IF
66  
67            RETURN
68  
69  *         End of PSLAEDZ
70  
71        END