Download noepr2e.eso

Back to the list

   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