Provided by: scalapack-doc_1.5-10_all bug

NAME

       SLAMSH - send multiple shifts through a small (single node) matrix to  see how consecutive
       small subdiagonal elements are modified by  subsequent shifts in an effort to maximize the
       number of bulges  that can be sent through

SYNOPSIS

       SUBROUTINE SLAMSH ( S, LDS, NBULGE, JBLK, H, LDH, N, ULP )

           INTEGER       LDS, NBULGE, JBLK, LDH, N

           REAL          ULP

           REAL          S(LDS,*), H(LDH,*)

PURPOSE

       SLAMSH sends multiple shifts through a small (single node) matrix to
          see how consecutive small subdiagonal elements are modified by
          subsequent shifts in an effort to maximize the number of bulges
          that  can  be  sent  through.   SLAMSH  should  only  be called when there are multiple
       shifts/bulges
          (NBULGE > 1) and the first shift is starting in the middle of an
          unreduced Hessenberg matrix because of two or more consecutive small
          subdiagonal elements.

ARGUMENTS

       S       (local input/output) REAL array, (LDS,*)
               On entry, the matrix of shifts.  Only the 2x2 diagonal of S is referenced.  It  is
               assumed  that  S has JBLK double shifts (size 2).  On exit, the data is rearranged
               in the best order for applying.

       LDS     (local input) INTEGER
               On entry, the leading dimension of S.  Unchanged on exit.  1 < NBULGE <=  JBLK  <=
               LDS/2

       NBULGE  (local input/output) INTEGER
               On  entry,  the  number of bulges to send through H ( >1 ).  NBULGE should be less
               than the maximum determined (JBLK).  1 < NBULGE <= JBLK  <=  LDS/2  On  exit,  the
               maximum number of bulges that can be sent through.

       JBLK    (local input) INTEGER
               On entry, the number of shifts determined for S.  Unchanged on exit.

       H       (local input/output) REAL array (LDH,N)
               On  entry,  the  local matrix to apply the shifts on.  H should be aligned so that
               the starting row is 2.  On exit, the data is destroyed.

       LDS     (local input) INTEGER
               On entry, the leading dimension of S.  Unchanged on exit.

       N       (local input) INTEGER
               On entry, the size of H.  If all the bulges are expected to go through,  N  should
               be at least 4*NBULGE+2.  Otherwise, NBULGE may be reduced by this routine.

       ULP     (local input) REAL
               On entry, machine precision Unchanged on exit.

               Implemented by:  G. Henry, May 1, 1997