next up previous contents index
Next: Driver dsdrv1 Up: Symmetric Drivers Previous: Identify OP and B

The Reverse Communication Interface

  The use of the reverse communication interface for the regular and shift-invert modes was illustrated in Chapter 2 and 3, respectively. The most general structure of the reverse communication loop is presented in Figure A.1.
  
 10   continue 
c
c        %---------------------------------------------%
c        | Repeatedly call the routine DSAUPD and take |
c        | actions indicated by parameter IDO until    |
c        | either convergence is indicated or maxitr   |
c        | has been exceeded.                          |
c        %---------------------------------------------%
c
         call dsaupd ( ido, bmat, n, which, nev, tol, resid,
     &                 ncv, v, ldv, iparam, ipntr, workd, workl,
     &                 lworkl, info )
c
         if (ido .eq. -1) then
c
            w <--- OP*v
c
c           % ----- L O O P \hspace{.05in} B A C K to call DSAUPD again. ----- %
c
            goto 10
c
         else if ( ido .eq. 1 ) then
c
            w <--- OP*v
c
c           % ----- L O O P \hspace{.05in} B A C K to call DSAUPD again. ----- %
c
            goto 10
c
         else if ( ido .eq. 2 ) then
c
            w <--- B*v
c
c           % ----- L O O P \hspace{.05in} B A C K to call DSAUPD again. ----- %
c
            goto 10
c
         end if
Figure A.1: Reverse communication structure

The specific actions to be taken within the reverse communication loop vary with each of the different drivers. Each action in Figure A.1 corresponds to an ido value returned from the call to dsaupd. These actions involve matrix vector operations such as and The matrix vector operation must be performed on the correct portion of the work array workd. Below, we list the the specific matrix-vector operations that must be performed in each driver for a given returned value of the reverse communication parameter ido.



 

Chao Yang
11/7/1997