Routine: PDLATRS()  File: SRC\pdlatrs.f

 
 
# 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

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

 
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 )
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 )
52       $        NP = NP - IROFF
53                IF( MYCOL.EQ.IXCOL ) THEN
54                    CALL DGEBS2D( ICTXT , 'R' , ' ' , NP , 1 , X( IIX + (JJX - 1)*LDX ) ,
55       $            LDX )
56                ELSE
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            END