1 subroutine cwidth ( w,b,nequ,ncols,integs,nbloks, d, x,iflag )
112 integer iflag,integs(2,nbloks),ncols,nequ, i,ii,icount,ipvteq
113 & ,ipvtp1,istar,j,jmax,lastcl,lasteq,lasti,nexteq,nrowad
114 double precision b(nequ),d(nequ),w(nequ,ncols),x(nequ),
115 & awi1od,colmax,ratio,rowmax,sum,temp
128 do 10 icount=1,nrowad
129 nexteq = lasteq + icount
132 5 rowmax = dmax1(rowmax,dabs(w(nexteq,j)))
133 if (rowmax .eq. 0.0d+00)
go to 999
134 10 d(nexteq) = rowmax
135 lasteq = lasteq + nrowad
148 if (ipvteq .lt. lasteq)
go to 11
149 if ( dabs(w(ipvteq,1))+d(ipvteq) .gt. d(ipvteq) )
158 11 colmax = dabs(w(ipvteq,1))/d(ipvteq)
161 do 13 ii=ipvtp1,lasteq
162 awi1od = dabs(w(ii,1))/d(ii)
163 if (awi1od .le. colmax)
go to 13
167 if ( dabs(w(istar,1))+d(istar) .eq. d(istar) )
169 if (istar .eq. ipvteq)
go to 16
179 w(istar,j) = w(ipvteq,j)
180 14 w(ipvteq,j) = temp
187 16
do 20 ii=ipvtp1,lasteq
188 ratio = w(ii,1)/w(ipvteq,1)
190 18 w(ii,j-1) = w(ii,j) - ratio*w(ipvteq,j)
191 w(ii,lastcl) = 0.0d+00
192 20 b(ii) = b(ii) - ratio*b(ipvteq)
193 30 lastcl = lastcl - 1
203 59 lasti = integs(2,i)
207 if (jmax .eq. 0)
go to 61
209 60 sum = sum + x(ipvteq+j)*w(ipvteq,j+1)
210 61 x(ipvteq) = (b(ipvteq)-sum)/w(ipvteq,1)
212 70 ipvteq = ipvteq - 1
214 if (i .gt. 0)
go to 59
subroutine cwidth(w, b, nequ, ncols, integs, nbloks, d, x, iflag)