Download verlx.eso

Back to the list

   1 : C VERLX     SOURCE    CHAT      09/10/09    21:25:49     6519           
   2 : *  verification LX nuls
   3 : *
   4 :       subroutine verlx(mrigid,mchpoi,mchpo1,noen,ipt8)
   5 : *
   6 : *  verification que les LX apparaissant dand mrigid sont nuls
   7 : *  mcphpo1 sert a construire le critere en deplacemento
   8 : *
   9 :       implicit real*8 (a-h,o-z)
  10 : -INC CCOPTIO
  11 : -INC SMCHPOI
  12 : -INC SMRIGID
  13 : -INC SMELEME
  14 : -INC SMCOORD
  15 : -INC CCREEL
  16 :       segment vpoch(xcoor(/1)/(idim+1))
  17 :       nbnn=1
  18 :       nbsous=0 
  19 :       nbref=0
  20 :       xmcrit=xpetit
  21 :       segact mcoord
  22 :       segini vpoch
  23 : *  expension des LX du chpoint
  24 :       segact mchpoi
  25 :       do 10 isoupo=1,ipchp(/1)
  26 :        msoupo=ipchp(isoupo)
  27 :        segact msoupo
  28 :        if (nocomp(/2).ne.1) goto 10
  29 :        if (nocomp(1).ne.'FLX') goto 10
  30 :        mpoval=ipoval
  31 :        segact mpoval
  32 :        meleme=igeoc
  33 :        segact meleme
  34 :        do 15 i=1,vpocha(/1)
  35 :         vpoch(num(1,i))=vpocha(i,1)
  36 :         xmcrit=max(xmcrit,abs(vpocha(i,1)))
  37 :  15    continue
  38 :  10   continue
  39 : *  calcul du critere
  40 :       segact mchpo1
  41 :       do 50 isoupo=1,mchpo1.ipchp(/1)
  42 :        msoupo=mchpo1.ipchp(isoupo)
  43 :        segact msoupo
  44 : *      write (6,*) ' verlx nocomp(1) ',nocomp(1)
  45 :        if (nocomp(1).eq.'FLX') goto 50
  46 :        mpoval=ipoval
  47 :        segact mpoval
  48 :        do 55 i=1,vpocha(/1)
  49 :        do 55 j=1,vpocha(/2)
  50 :         xmcrit=max(xmcrit,abs(vpocha(i,j)))
  51 :  55    continue
  52 :  50   continue
  53 :       xmcrit=xmcrit*1d-6
  54 : *     write (6,*) ' xmcrit dans verlx ',xmcrit
  55 : *  balayer les matrices pour tester les LX y apparaissant
  56 :       segact mrigid
  57 :       do 100 irige=1,irigel(/2)
  58 :        meleme=irigel(1,irige)
  59 :        descr=irigel(3,irige)
  60 :        segact descr
  61 :        if (lisinc(1).ne.'LX') goto 100
  62 :        segact meleme
  63 :        do 110 iel=1,num(/2)
  64 :         if (abs(vpoch(num(1,iel))).gt.xmcrit) then
  65 :          if (noen.eq.0) then
  66 :              nbelem=ipt8.num(/2)+1
  67 :              segadj ipt8
  68 :              ipt8.num(1,nbelem)=num(1,iel)
  69 :          else
  70 :           interr(1)=num(1,iel)
  71 :           moterr(1:4)='LX'
  71 :           call erreur(143)
  72 :          endif
  73 :         else
  74 :           vpoch(num(1,iel))=0.d0
  75 :         endif
  76 :  110   continue
  77 :  100  continue
  78 : *  remise à zero des petits FLX
  79 :       do 210 isoupo=1,ipchp(/1)
  80 :        msoupo=ipchp(isoupo)
  81 :        segact msoupo
  82 :        if (nocomp(/2).ne.1) goto 210
  83 :        if (nocomp(1).ne.'FLX') goto 210
  84 :        mpoval=ipoval
  85 :        segact mpoval*mod
  86 :        meleme=igeoc
  87 :        segact meleme
  88 :        do 215 i=1,vpocha(/1)
  89 :         vpocha(i,1)=vpoch(num(1,i))
  90 :  215   continue
  91 :  210  continue
  92 :       segsup vpoch
  93 :       end
  94 :  
  95 :  
  96 :  
  97 :  

© Cast3M 2003 - All rights reserved.
Disclaimer