Download dbbcd.eso

Back to the list

   1 : C DBBCD     SOURCE    PV        07/08/03    21:15:03     5835           
   2 : *  dedualise les valeurs d'un champ en fonction d'un meleme de dedoublement de noeuds
   3 : *
   4 :       subroutine dbbcd(mchpoi,ipt8)
   5 :       IMPLICIT INTEGER(I-N)
   6 :       IMPLICIT REAL*8 (A-H,O-Z)
   7 : -INC CCOPTIO
   8 : -INC SMELEME
   9 : -INC SMCHPOI
  10 : -INC SMCOORD
  11 :       segment valc(ipt8.num(/2))
  12 :       segment ivalc(ipt8.num(/2))
  13 :       segment trav
  14 :       integer lag1(xcoor(/1)/(idim+1))
  15 :       endsegment
  16 : *  ne fonctionne que pour des FLX, on suppose qu'il n'y a qu'une inconnue
  17 : *  par noeud dédoublé
  18 :       if (ipt8.eq.0) return
  19 :       segact mchpoi,ipt8
  19 : **    call echpo(mchpoi,1)
  19 : **    call ecmail(ipt8,1)
  20 : **    segact mchpoi,ipt8
  21 :       segini valc,ivalc
  22 :       segini trav
  23 :       do 300 i=1,ipt8.num(/2)
  24 :       lag1(ipt8.num(1,i))=i
  25 :       lag1(ipt8.num(2,i))=i
  26 :  300  continue
  27 :       do 10 isoupo=1,ipchp(/1)
  28 :        msoupo=ipchp(isoupo)
  29 :        segact msoupo*mod
  30 :        if (nocomp(/2).ne.1) goto 11
  31 :        if (nocomp(1).ne.'FLX') goto 11
  32 :        meleme=igeoc
  33 :        mpoval=ipoval
  34 :        segini,ipt1=meleme,mpova1=mpoval
  35 :        nbnn=ipt1.num(/1)
  36 :        nbelem=ipt1.num(/2)
  37 :        nbele=nbelem
  38 :        nbsous=0
  39 :        nbref=0
  40 :        ic=0
  41 :        do 100 j=1,nbele
  42 :        val=mpova1.vpocha(j,1)
  43 :        if (lag1(ipt1.num(1,j)).ne.0) then
  44 :        jj=lag1(ipt1.num(1,j))
  45 :          valc(jj)=  +val
  46 :          if (ivalc(jj).ne.0) then
  47 :            ipt1.num(1,ivalc(jj))=ipt8.num(1,jj)
  48 :            mpova1.vpocha(ivalc(jj),1)=valc(jj)
  49 :            goto 100
  50 :          endif
  51 :          ivalc(jj)=ic+1
  52 :         endif
  53 :  110   continue
  54 :         ic=ic+1
  55 :         ipt1.num(1,ic)=ipt1.num(1,j)
  56 :         mpova1.vpocha(ic,1)=val
  57 :  100   continue
  58 :        nbelem=ic
  59 :        segadj ipt1
  60 :        segdes ipt1
  61 :        n=ic
  62 :        nc=1
  63 :        segadj mpova1
  64 :        segdes mpova1
  65 :        igeoc=ipt1
  66 :        ipoval=mpova1
  67 :        segsup mpoval
  68 :        segdes meleme
  69 :   11   continue
  70 :        segdes msoupo
  71 :   10   continue 
  72 :        segsup valc,ivalc,trav
  73 :        return
  74 :        end
  75 : 
  76 :  
  77 :  
  78 :  
  79 :  
  80 :  

© Cast3M 2003 - All rights reserved.
Disclaimer