PZLAWIL(3) ScaLAPACK routine of NEC Numeric Library Collection PZLAWIL(3) NAME PZLAWIL - get the transform given by H44,H33, & H43H34 into V starting at row M SYNOPSIS SUBROUTINE PZLAWIL( II, JJ, M, A, DESCA, H44, H33, H43H34, V ) INTEGER II, JJ, M COMPLEX*16 H33, H43H34, H44 INTEGER DESCA( * ) COMPLEX*16 A( * ), V( * ) PURPOSE PZLAWIL gets the transform given by H44,H33, & H43H34 into V starting at row M. Notes ===== Each global data object is described by an associated description vec- tor. This vector stores the information required to establish the map- ping between an object element and its corresponding process and memory location. Let A be a generic term for any 2D block cyclicly distributed array. Such a global array has an associated description vector DESCA. In the following comments, the character _ should be read as "of the global array". NOTATION STORED IN EXPLANATION --------------- -------------- -------------------------------------- DTYPE_A(global) DESCA( DTYPE_ )The descriptor type. In this case, DTYPE_A = 1. CTXT_A (global) DESCA( CTXT_ ) The BLACS context handle, indicating the BLACS process grid A is distribu- ted over. The context itself is glo- bal, but the handle (the integer value) may vary. M_A (global) DESCA( M_ ) The number of rows in the global array A. N_A (global) DESCA( N_ ) The number of columns in the global array A. MB_A (global) DESCA( MB_ ) The blocking factor used to distribute the rows of the array. NB_A (global) DESCA( NB_ ) The blocking factor used to distribute the columns of the array. RSRC_A (global) DESCA( RSRC_ ) The process row over which the first row of the array A is distributed. CSRC_A (global) DESCA( CSRC_ ) The process column over which the first column of the array A is distributed. LLD_A (local) DESCA( LLD_ ) The leading dimension of the local array. LLD_A >= MAX(1,LOCr(M_A)). Let K be the number of rows or columns of a distributed matrix, and assume that its process grid has dimension p x q. LOCr( K ) denotes the number of elements of K that a process would receive if K were distributed over the p processes of its process col- umn. Similarly, LOCc( K ) denotes the number of elements of K that a process would receive if K were distributed over the q processes of its process row. The values of LOCr() and LOCc() may be determined via a call to the ScaLAPACK tool function, NUMROC: LOCr( M ) = NUMROC( M, MB_A, MYROW, RSRC_A, NPROW ), LOCc( N ) = NUMROC( N, NB_A, MYCOL, CSRC_A, NPCOL ). An upper bound for these quantities may be computed by: LOCr( M ) <= ceil( ceil(M/MB_A)/NPROW )*MB_A LOCc( N ) <= ceil( ceil(N/NB_A)/NPCOL )*NB_A ARGUMENTS II (global input) INTEGER Row owner of H(M+2,M+2) JJ (global input) INTEGER Column owner of H(M+2,M+2) M (global input) INTEGER On entry, this is where the transform starts (row M.) Unchanged on exit. A (global input) COMPLEX*16 array, dimension (DESCA(LLD_),*) On entry, the Hessenberg matrix. Unchanged on exit. DESCA (global and local input) INTEGER array of dimension DLEN_. The array descriptor for the distributed matrix A. Unchanged on exit. H44 H33 H43H34 (global input) COMPLEX*16 These three values are for the double shift QR iteration. Unchanged on exit. V (global output) COMPLEX*16 array of size 3. Contains the transform on ouput. FURTHER DETAILS Implemented by: M. Fahey, May 28, 1999 ScaLAPACK routine 31 October 2017 PZLAWIL(3)