1 : C NOEPR2E SOURCE PV 13/11/21 21:15:20 7868 2 : subroutine noepr2e(iadj,jadjc,pivot,nrelong,noelon,isens, 3 : > dimlon,masq,nodes,ipos,nbtot,lfront,lfron,londim,fcout2,lpiv, 4 : > ipoint,noel2,bool,fcout,ldim2,ith,nbthr,npoint,npoint2, 5 : > imax) 6 : implicit real*8 (a-h,o-z) 7 : -INC CCASSIS 8 : parameter (ixrant=16) 9 : real*8 xran(0:ixrant) 10 : integer dimlon,diml2,bool 11 : integer pivot(*),pivots 12 : integer iadj(*),jadjc(*),nrelong(*),noelon(*),noel2(*) 13 : logical masq(*) 14 : integer ipos(*),londim(*) 15 : 16 : * write (6,*) ' noepr2 dimlon lfront ipoint ',dimlon,lfront,ipoint 17 : nbess= real(dimlon)**0.5 18 : ** write (6,*) ' noepr2e nbthr ',nbthr 19 : if (nbthr.gt.1) nbess=nbess/nbthr+1 20 : diml2=dimlon 21 : do 520 ii=1,nbess 22 : fcout2=1d50 23 : ithl=0 24 : if (mod(ii,ixrant).eq.1) then 25 : idum=0 25 : if (nbesc.ne.0) call ooogll(1) 26 : do jj=1,min(ixrant,nbess-(ii/ixrant)*ixrant) 27 : xran(jj-1)=tdran1(idum) 28 : * write (6,*) ' thread nbess ii xran ',ith,nbess,ii,xran(jj) 29 : enddo 29 : if (nbesc.ne.0) call ooogll(0) 30 : endif 31 : * write (6,*) ' thread ',ith,' xran ',xran 32 : nbz=diml2 33 : xalea=xran(mod(ii-1,ixrant)) 34 : i=min(max(1,int((nbz+1)*xalea)),nbz) 35 : pivots=pivot(ipoint) 36 : pivot(ipoint)=noel2(i) 37 : *** if (ii.ne.1) pivot(ipoint)=noelon(i) 37 : call noepr2(iadj(1),jadjc(1),pivot,nrelong(1),noelon(1), 38 : > isens,dimlon,masq(1),nodes,ipos(1),nbtot,lfront,lfron, 39 : > londim(1),fcout2,lpiv) 40 : if (fcout2.lt.fcout.or.(fcout2.eq.fcout.and. 41 : > pivots.ne.pivot(ipoint))) then 42 : if (fcout2.ne.fcout) bool=2 43 : fcout=fcout2 44 : ldim2=londim(2) 45 : if (npoint.lt.50.and.imax.eq.0) npoint2=npoint+1 46 : pivot(npoint2)=0 47 : else 48 : pivot(ipoint)=pivots 49 : endif 50 : 520 continue 51 : end 52 : 53 : 54 :
© Cast3M 2003 - All rights reserved.
Disclaimer