|
|
| |
| # lines: |
152 | | # code: |
152 | | # comment: | 0 | |
# blank: | 0 |
| # Variables: | 52 |
| # Callers: | 1 |
| # Callings: | 0 |
| # Words: | 44 |
| # 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)
|
|
|
|
01 SUBROUTINE PDLAEDZ( 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 DOUBLE PRECISION Q( LDQ , * ) , WORK( * ) , Z( * )
14 * ..
15
16 * Purpose
17 * === ====
18
19 * PDLAEDZ 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 , DCOPY , DGEBR2D , DGEBS2D ,
43 $DGERV2D , DGESD2D , INFOG2L
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_*
52
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
61
62 CALL DGEBS2D( ICTXT , 'All' , ' ' , N , 1 , Z , N )
63 ELSE
63
64 CALL DGEBR2D( ICTXT , 'All' , ' ' , N , 1 , Z , N , IQROW , IQCOL )
65 END IF
66
67 RETURN
68
69 * End of PDLAEDZ
70
71 END12
3
|
|
Variables in Routine PDLAEDZ()
| Summary Report |
| Data Type | Quantity | Size(byte) |
| DOUBLE PRECISION | 3 | 12 |
| INTEGER | 49 | 196 |
| TOTAL | 52 | 208 |
List of Variables
DOUBLE PRECISION
| Q( LDQ, * ) | WORK( * ) | Z( * ) | | |
INTEGER
| BLOCK_CYCLIC_2D | COL | CSRC_ | CTXT_ | DESCQ( * ) |
| DLEN_ | DTYPE_ | I | IBUF | ICTXT |
| ID | IIQ | IIZ1 | IIZ2 | IQ |
| IQCOL | IQROW | IZ | IZ1 | IZ1COL |
| IZ1ROW | IZ2 | IZ2COL | IZ2ROW | J |
| JJQ | JJZ1 | JJZ2 | JQ | LDQ |
| LLD_ | M_ | MB_ | MYCOL | MYROW |
| N | N_ | N1 | N2 | NB |
| NB_ | NBLOC | NPCOL | NPROW | NQ1 |
| NQ2 | NUMROC | RSRC_ | ZSIZ | |
Variables Dependence Graph Put the mouse over a right hand side variable to display the corresponding line of the dependence | | - | | - | - | | ICTXT | <--- | CTXT_ICTXT = DESCQ( CTXT_ ), DESCQICTXT = DESCQ( CTXT_ ) |
| N2 | <--- | NN2 = N - N1, N1N2 = N - N1 |
| NB | <--- | NB_NB = DESCQ( NB_ ), DESCQNB = DESCQ( NB_ ) |
|
|
Analysis elements of the routine PDLAEDZ() Put the mouse over each element to display detailed matching information
Assigned variables |
| | | BLOCK_CYCLIC_2D , CSRC_ , CTXT_ , DLEN_ , DTYPE_ , ICTXT , LLD_ , M_ , MB_ , N_ , N2 , NB , NB_ , RSRC_ |
|
Active variables |
| | | BLOCK_CYCLIC_2D , COL , CSRC_ , CTXT_ , DESCQ , DLEN_ , DTYPE_ , I , IBUF , ICTXT , ID , IIQ , IIZ1 , IIZ2 , IQ , IQCOL , IQROW , IZ , IZ1 , IZ1COL , IZ1ROW , IZ2 , IZ2COL , IZ2ROW , J , JJQ , JJZ1 , JJZ2 , JQ , LDQ , LLD_ , M_ , MB_ , MYCOL , MYROW , N , N_ , N1 , N2 , NB , NB_ , NBLOC , NPCOL , NPROW , NQ1 , NQ2 , NUMROC , Q , RSRC_ , WORK , Z , ZSIZ |
|
Accessed arrays [ array name : associated index ] |
| | DESCQ | : * , CTXT_ , NB_ |
| | Q | : LDQ, * |
| | WORK | : * |
| | Z | : * |
|
Conditional statements [ statement : associated predicate ] |
| | if | : ( BLOCK_CYCLIC_2D*CSRC_*CTXT_*DLEN_*DTYPE_*LLD_*MB_*M_*NB_*N_* ) , ( MYROW.EQ.IQROW .AND. MYCOL.EQ.IQCOL ) |
|
| List of variables | BLOCK_CYCLIC_2D COL CSRC_ CTXT_ DESCQ( * ) DLEN_ DTYPE_
| I IBUF ICTXT ID IIQ IIZ1 IIZ2 IQ
| IQCOL IQROW IZ IZ1 IZ1COL IZ1ROW IZ2 IZ2COL
| IZ2ROW J JJQ JJZ1 JJZ2 JQ LDQ LLD_
| M_ MB_ MYCOL MYROW N N_ N1 N2
| NB NB_ NBLOC NPCOL NPROW NQ1 NQ2 NUMROC
| Q( LDQ, * ) RSRC_ WORK( * ) Z( * ) ZSIZ | | close
| |
BLOCK_CYCLIC_2D
COL
CSRC_
CTXT_
DESCQ( * )
DLEN_
DTYPE_
I
IBUF
ICTXT
ID
IIQ
IIZ1
IIZ2
IQ
IQCOL
IQROW
IZ
IZ1
IZ1COL
IZ1ROW
IZ2
IZ2COL
IZ2ROW
J
JJQ
JJZ1
JJZ2
JQ
LDQ
LLD_
M_
MB_
MYCOL
MYROW
N
N_
N1
N2
NB
NB_
NBLOC
NPCOL
NPROW
NQ1
NQ2
NUMROC
Q( LDQ, * )
RSRC_
WORK( * )
Z( * )
ZSIZ
| |