|
|
| |
| # lines: |
87 | | # code: |
87 | | # comment: | 0 | |
# blank: | 0 |
| # Variables: | 31 |
| # Callers: | 3 |
| # Callings: | 0 |
| # Words: | 61 |
| # Keywords: | 22 |
|
|
|
|
|
.. Local Scalars ..
..
.. External Functions ..
..
.. External Subroutines ..
..
.. Executable Statements ..
Get grid parameters
Quick return if possible
|
|
|
|
01 SUBROUTINE PDLATRS( UPLO , TRANS , DIAG , NORMIN , N , A , IA ,
02 $JA , DESCA , X , IX , JX , DESCX , SCALE , CNORM ,
03 $WORK )
04
05 * -- ScaLAPACK auxiliary routine(version 1.7) --
06 * University of Tennessee , Knoxville , Oak Ridge National Laboratory ,
07 * and University of California , Berkeley.
08 * May 1 , 1997
09
10 * .. Scalar Arguments ..
11 CHARACTER DIAG , NORMIN , TRANS , UPLO
12 INTEGER IA , IX , JA , JX , N
13 DOUBLE PRECISION SCALE
14 * ..
15 * .. Array Arguments ..
16 INTEGER DESCA( * ) , DESCX( * )
17 DOUBLE PRECISION A( * ) , CNORM( * ) ,
18 $X( * ) , WORK( * )
19 * ..
20
21 * Purpose
22 * === ====
23
24 * PDLATRS solves a triangular system. This routine in unfinished
25 * at this time , but will be part of the next release.
26
27 * === ==================================================================
28
29 * .. Parameters ..
30 INTEGER BLOCK_CYCLIC_2D , CSRC_ , CTXT_ , DLEN_ , DTYPE_ ,
31 $LLD_ , MB_ , M_ , NB_ , N_ , RSRC_
32 PARAMETER( BLOCK_CYCLIC_2D = 1 , DLEN_ = 9 , DTYPE_ = 1 ,
33 $CTXT_ = 2 , M_ = 3 , N_ = 4 , MB_ = 5 , NB_ = 6 ,
34 $RSRC_ = 7 , CSRC_ = 8 , LLD_ = 9 )
35 DOUBLE PRECISION ONE
36 PARAMETER( ONE = 1.0D + 0 )
37 IF( N.EQ.0 )
37
38 $ RETURN
39
40 * ***** NO SCALING ***** Call PDTRSV for all cases *****
41
42 SCALE = ONE
43 CALL PDTRSV( UPLO , TRANS , DIAG , N , A , IA , JA , DESCA , X , IX , JX ,
44 $ DESCX , 1 )
45
46 CALL INFOG2L( IX , JX , DESCX , NPROW , NPCOL , MYROW , MYCOL , IIX , JJX ,
47 $ IXROW , IXCOL )
48 LDX = DESCX( LLD_ )
49 IROFF = MOD( IX - 1 , DESCX(MB_) )
50 NP = NUMROC( N + IROFF , DESCX( MB_ ) , MYROW , IXROW , NPROW )
51 IF( MYROW.EQ.IXROW )
51
52 $ NP = NP - IROFF
53 IF( MYCOL.EQ.IXCOL ) THEN
53
54 CALL DGEBS2D( ICTXT , 'R' , ' ' , NP , 1 , X( IIX + (JJX - 1)*LDX ) ,
55 $ LDX )
56 ELSE
56
57 CALL DGEBR2D( ICTXT , 'R' , ' ' , NP , 1 , X( IIX + (JJX - 1)*LDX ) ,
58 $ LDX , MYROW , IXCOL )
59 END IF
60
61 RETURN
62
63 * End of PDLATRS
64
65 END12
4
|
|
Variables in Routine PDLATRS()
| Summary Report |
| Data Type | Quantity | Size(byte) |
| CHARACTER | 4 | 4 |
| DOUBLE PRECISION | 6 | 24 |
| INTEGER | 21 | 84 |
| TOTAL | 31 | 112 |
List of Variables
CHARACTER
DOUBLE PRECISION
| A( * ) | CNORM( * ) | ONE | SCALE | WORK( * ) |
| X( * ) | | | | |
INTEGER
| BLOCK_CYCLIC_2D | CSRC_ | CTXT_ | DESCA( * ) | DESCX( * ) |
| DLEN_ | DTYPE_ | IA | IROFF | IX |
| JA | JX | LDX | LLD_ | M_ |
| MB_ | N | N_ | NB_ | NP |
| RSRC_ | | | | |
Variables Dependence Graph Put the mouse over a right hand side variable to display the corresponding line of the dependence | | - | | - | - | | IROFF | <--- | IXIROFF = MOD( IX-1, DESCX(MB_) ), MB_IROFF = MOD( IX-1, DESCX(MB_) ), DESCXIROFF = MOD( IX-1, DESCX(MB_) ) |
| LDX | <--- | LLD_LDX = DESCX( LLD_ ), DESCXLDX = DESCX( LLD_ ) |
| NP | <--- | IROFFNP = NUMROC( N+IROFF, DESCX( MB_ ), MYROW, IXROW, NPROW ), MB_NP = NUMROC( N+IROFF, DESCX( MB_ ), MYROW, IXROW, NPROW ), NNP = NUMROC( N+IROFF, DESCX( MB_ ), MYROW, IXROW, NPROW ), DESCXNP = NUMROC( N+IROFF, DESCX( MB_ ), MYROW, IXROW, NPROW ) |
| SCALE | <--- | ONESCALE = ONE |
|
|
Analysis elements of the routine PDLATRS() Put the mouse over each element to display detailed matching information
Assigned variables |
| | | BLOCK_CYCLIC_2D , CSRC_ , CTXT_ , DLEN_ , DTYPE_ , IROFF , LDX , LLD_ , M_ , MB_ , N_ , NB_ , NP , ONE , RSRC_ , SCALE |
|
Active variables |
| | | A , BLOCK_CYCLIC_2D , CNORM , CSRC_ , CTXT_ , DESCA , DESCX , DIAG , DLEN_ , DTYPE_ , IA , IROFF , IX , JA , JX , LDX , LLD_ , M_ , MB_ , N , N_ , NB_ , NORMIN , NP , ONE , RSRC_ , SCALE , TRANS , UPLO , WORK , X |
|
Accessed arrays [ array name : associated index ] |
| | A | : * |
| | CNORM | : * |
| | DESCA | : * |
| | DESCX | : * , LLD_ , MB_ , MB_ |
| | WORK | : * |
| | X | : * , IIX+(JJX-1)*LDX , IIX+(JJX-1)*LDX |
|
Conditional statements [ statement : associated predicate ] |
| | for | : ( all cases ***** ) |
| | if | : ( N.EQ.0 ) , ( MYROW.EQ.IXROW ) , ( MYCOL.EQ.IXCOL ) |
|
| List of variables | A( * ) BLOCK_CYCLIC_2D CNORM( * ) CSRC_ CTXT_ DESCA( * ) DESCX( * )
| DIAG DLEN_ DTYPE_ IA IROFF IX JA JX
| LDX LLD_ M_ MB_ N N_ NB_ NORMIN
| NP ONE RSRC_ SCALE TRANS UPLO WORK( * ) X( * ) | | close
| |
A( * )
BLOCK_CYCLIC_2D
CNORM( * )
CSRC_
CTXT_
DESCA( * )
DESCX( * )
DIAG
DLEN_
DTYPE_
IA
IROFF
IX
JA
JX
LDX
LLD_
M_
MB_
N
N_
NB_
NORMIN
NP
ONE
RSRC_
SCALE
TRANS
UPLO
WORK( * )
X( * )
| |