C NOEPR2E SOURCE PV 13/11/21 21:15:20 7868 subroutine noepr2e(iadj,jadjc,pivot,nrelong,noelon,isens, > dimlon,masq,nodes,ipos,nbtot,lfront,lfron,londim,fcout2,lpiv, > ipoint,noel2,bool,fcout,ldim2,ith,nbthr,npoint,npoint2, > imax) implicit real*8 (a-h,o-z) -INC CCASSIS parameter (ixrant=16) real*8 xran(0:ixrant) integer dimlon,diml2,bool integer pivot(*),pivots integer iadj(*),jadjc(*),nrelong(*),noelon(*),noel2(*) logical masq(*) integer ipos(*),londim(*) * write (6,*) ' noepr2 dimlon lfront ipoint ',dimlon,lfront,ipoint nbess= real(dimlon)**0.5 ** write (6,*) ' noepr2e nbthr ',nbthr if (nbthr.gt.1) nbess=nbess/nbthr+1 diml2=dimlon do 520 ii=1,nbess fcout2=1d50 ithl=0 if (mod(ii,ixrant).eq.1) then idum=0 if (nbesc.ne.0) call ooogll(1) do jj=1,min(ixrant,nbess-(ii/ixrant)*ixrant) xran(jj-1)=tdran1(idum) * write (6,*) ' thread nbess ii xran ',ith,nbess,ii,xran(jj) enddo if (nbesc.ne.0) call ooogll(0) endif * write (6,*) ' thread ',ith,' xran ',xran nbz=diml2 xalea=xran(mod(ii-1,ixrant)) i=min(max(1,int((nbz+1)*xalea)),nbz) pivots=pivot(ipoint) pivot(ipoint)=noel2(i) *** if (ii.ne.1) pivot(ipoint)=noelon(i) call noepr2(iadj(1),jadjc(1),pivot,nrelong(1),noelon(1), > isens,dimlon,masq(1),nodes,ipos(1),nbtot,lfront,lfron, > londim(1),fcout2,lpiv) if (fcout2.lt.fcout.or.(fcout2.eq.fcout.and. > pivots.ne.pivot(ipoint))) then if (fcout2.ne.fcout) bool=2 fcout=fcout2 ldim2=londim(2) if (npoint.lt.50.and.imax.eq.0) npoint2=npoint+1 pivot(npoint2)=0 else pivot(ipoint)=pivots endif 520 continue end