|
|
c\Routines called: | c\Routines called: |
c zgetv0 ARPACK routine to generate the initial vector. | c zgetv0 ARPACK routine to generate the initial vector. |
c ivout ARPACK utility routine that prints integers. | c ivout ARPACK utility routine that prints integers. |
c second ARPACK utility routine for timing. |
c arscnd ARPACK utility routine for timing. |
c zmout ARPACK utility routine that prints matrices | c zmout ARPACK utility routine that prints matrices |
c zvout ARPACK utility routine that prints vectors. | c zvout ARPACK utility routine that prints vectors. |
c zlanhs LAPACK routine that computes various norms of a matrix. | c zlanhs LAPACK routine that computes various norms of a matrix. |
|
|
c %----------------------% | c %----------------------% |
c | c |
external zaxpy, zcopy, zscal, zdscal, zgemv, zgetv0, | external zaxpy, zcopy, zscal, zdscal, zgemv, zgetv0, |
& dlabad, zvout, zmout, ivout, second |
& dlabad, zvout, zmout, ivout, arscnd |
c | c |
c %--------------------% | c %--------------------% |
c | External Functions | | c | External Functions | |
|
|
c | & message level for debugging | | c | & message level for debugging | |
c %-------------------------------% | c %-------------------------------% |
c | c |
call second (t0) |
call arscnd (t0) |
msglvl = mcaitr | msglvl = mcaitr |
c | c |
c %------------------------------% | c %------------------------------% |
|
|
c %------------------------------------------------% | c %------------------------------------------------% |
c | c |
info = j - 1 | info = j - 1 |
call second (t1) |
call arscnd (t1) |
tcaitr = tcaitr + (t1 - t0) | tcaitr = tcaitr + (t1 - t0) |
ido = 99 | ido = 99 |
go to 9000 | go to 9000 |
|
|
c | c |
step3 = .true. | step3 = .true. |
nopx = nopx + 1 | nopx = nopx + 1 |
call second (t2) |
call arscnd (t2) |
call zcopy (n, v(1,j), 1, workd(ivj), 1) | call zcopy (n, v(1,j), 1, workd(ivj), 1) |
ipntr(1) = ivj | ipntr(1) = ivj |
ipntr(2) = irj | ipntr(2) = irj |
|
|
c | if step3 = .true. | | c | if step3 = .true. | |
c %----------------------------------% | c %----------------------------------% |
c | c |
call second (t3) |
call arscnd (t3) |
tmvopx = tmvopx + (t3 - t2) | tmvopx = tmvopx + (t3 - t2) |
| |
step3 = .false. | step3 = .false. |
|
|
c | factorization to length j. | | c | factorization to length j. | |
c %---------------------------------------% | c %---------------------------------------% |
c | c |
call second (t2) |
call arscnd (t2) |
if (bmat .eq. 'G') then | if (bmat .eq. 'G') then |
nbx = nbx + 1 | nbx = nbx + 1 |
step4 = .true. | step4 = .true. |
|
|
c %----------------------------------% | c %----------------------------------% |
c | c |
if (bmat .eq. 'G') then | if (bmat .eq. 'G') then |
call second (t3) |
call arscnd (t3) |
tmvbx = tmvbx + (t3 - t2) | tmvbx = tmvbx + (t3 - t2) |
end if | end if |
c | c |
|
|
c | c |
if (j .gt. 1) h(j,j-1) = dcmplx(betaj, rzero) | if (j .gt. 1) h(j,j-1) = dcmplx(betaj, rzero) |
c | c |
call second (t4) |
call arscnd (t4) |
c | c |
orth1 = .true. | orth1 = .true. |
c | c |
call second (t2) |
call arscnd (t2) |
if (bmat .eq. 'G') then | if (bmat .eq. 'G') then |
nbx = nbx + 1 | nbx = nbx + 1 |
call zcopy (n, resid, 1, workd(irj), 1) | call zcopy (n, resid, 1, workd(irj), 1) |
|
|
c %---------------------------------------------------% | c %---------------------------------------------------% |
c | c |
if (bmat .eq. 'G') then | if (bmat .eq. 'G') then |
call second (t3) |
call arscnd (t3) |
tmvbx = tmvbx + (t3 - t2) | tmvbx = tmvbx + (t3 - t2) |
end if | end if |
c | c |
|
|
call zaxpy (j, one, workd(irj), 1, h(1,j), 1) | call zaxpy (j, one, workd(irj), 1, h(1,j), 1) |
c | c |
orth2 = .true. | orth2 = .true. |
call second (t2) |
call arscnd (t2) |
if (bmat .eq. 'G') then | if (bmat .eq. 'G') then |
nbx = nbx + 1 | nbx = nbx + 1 |
call zcopy (n, resid, 1, workd(irj), 1) | call zcopy (n, resid, 1, workd(irj), 1) |
|
|
c %---------------------------------------------------% | c %---------------------------------------------------% |
c | c |
if (bmat .eq. 'G') then | if (bmat .eq. 'G') then |
call second (t3) |
call arscnd (t3) |
tmvbx = tmvbx + (t3 - t2) | tmvbx = tmvbx + (t3 - t2) |
end if | end if |
c | c |
|
|
rstart = .false. | rstart = .false. |
orth2 = .false. | orth2 = .false. |
c | c |
call second (t5) |
call arscnd (t5) |
titref = titref + (t5 - t4) | titref = titref + (t5 - t4) |
c | c |
c %------------------------------------% | c %------------------------------------% |
|
|
c | c |
j = j + 1 | j = j + 1 |
if (j .gt. k+np) then | if (j .gt. k+np) then |
call second (t1) |
call arscnd (t1) |
tcaitr = tcaitr + (t1 - t0) | tcaitr = tcaitr + (t1 - t0) |
ido = 99 | ido = 99 |
do 110 i = max(1,k), k+np-1 | do 110 i = max(1,k), k+np-1 |