1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
|
subroutine getbmat(bmati, bmat)
integer bmati
character bmat
select case (bmati)
case (0)
bmat = 'I'
case (1)
bmat = 'G'
case default
bmat = 'I'
end select
end
subroutine getwhich(whichi, which)
integer whichi
character which*2
select case (whichi)
case (0)
which = 'LM'
case (1)
which = 'SM'
case (2)
which = 'LR'
case (3)
which = 'SR'
case (4)
which = 'LI'
case (5)
which = 'SI'
case (6)
which = 'LA'
case (7)
which = 'SA'
case (8)
which = 'BE'
case default
which = 'LM'
end select
end
subroutine gethowmny(howmnyi, howmny)
integer howmnyi
character howmny
select case (howmnyi)
case (0)
howmny = 'A'
case (1)
howmny = 'P'
case (2)
howmny = 'S'
case default
howmny = 'A'
end select
end
subroutine dsaupdwr
& ( ido, bmati, n, whichi, nev, tol, resid, ncv, v, ldv, iparam,
& ipntr, workd, workl, lworkl, info )
implicit none
integer ido, n, nev, ncv, ldv, iparam(11), ipntr(11), lworkl, info
integer bmati, whichi
character bmat, which*2
double precision tol, resid(n), v(ldv, ncv), workd(3*n),
& workl(lworkl)
external dsaupd, getbmat, getwhich
call getbmat(bmati, bmat)
call getwhich(whichi, which)
call dsaupd
& ( ido, bmat, n, which, nev, tol, resid, ncv, v, ldv, iparam,
& ipntr, workd, workl, lworkl, info )
end
subroutine dseupdwr(rvec , howmnyi, select, d ,
& z , ldz , sigma , bmati,
& n , whichi , nev , tol ,
& resid , ncv , v , ldv ,
& iparam, ipntr , workd , workl,
& lworkl, info )
implicit none
integer ldz, n, nev, ncv, ldv, iparam(7), ipntr(11), lworkl, info
double precision d(nev), z(ldz, nev), sigma, tol, resid(n)
double precision v(ldv, ncv), workd(2*n), workl(lworkl)
integer howmnyi, bmati, whichi
character howmny, bmat, which*2
logical rvec, select(ncv)
external dseupd, gethowmny, getbmat, getwhich
call gethowmny(howmnyi, howmny)
call getbmat(bmati, bmat)
call getwhich(whichi, which)
call dseupd(rvec , howmny, select, d ,
& z , ldz , sigma , bmat ,
& n , which , nev , tol ,
& resid , ncv , v , ldv ,
& iparam, ipntr , workd , workl,
& lworkl, info )
end
subroutine dnaupdwr
& ( ido, bmati, n, whichi, nev, tol, resid, ncv, v, ldv, iparam,
& ipntr, workd, workl, lworkl, info )
implicit none
integer ido, n, nev, ncv, ldv, iparam(11), ipntr(14), lworkl, info
integer bmati, whichi
character bmat, which*2
double precision tol, resid(n), v(ldv, ncv), workd(3*n),
& workl(lworkl)
external dnaupd, getbmat, getwhich
call getbmat(bmati, bmat)
call getwhich(whichi, which)
call dnaupd
& ( ido, bmat, n, which, nev, tol, resid, ncv, v, ldv, iparam,
& ipntr, workd, workl, lworkl, info )
end
subroutine dneupdwr(rvec , howmnyi, select, dr , di,
& z , ldz , sigmar, sigmai, workev,
& bmati, n , whichi, nev , tol,
& resid, ncv , v , ldv , iparam,
& ipntr, workd , workl , lworkl, info)
implicit none
integer ldz, n, nev, ncv, ldv, iparam(11), ipntr(14), lworkl, info
double precision dr(nev+1), di(nev+1), z(ldz,*), sigmar, sigmai
double precision workev(3*ncv), tol, resid(n), v(ldv, ncv)
double precision workd(3*n), workl(lworkl)
integer howmnyi, bmati, whichi
character howmny, bmat, which*2
logical rvec, select(ncv)
external dneupd, gethowmny, getbmat, getwhich
call gethowmny(howmnyi, howmny)
call getbmat(bmati, bmat)
call getwhich(whichi, which)
call dneupd (rvec , howmny, select, dr , di,
& z , ldz , sigmar, sigmai, workev,
& bmat , n , which , nev , tol,
& resid, ncv , v , ldv , iparam,
& ipntr, workd , workl , lworkl, info)
end
|