Download trprof.eso

Back to the list

   1 : C TRPROF    SOURCE    CHAT      09/10/09    21:25:40     6519           
   2 :       SUBROUTINE TRPROF 
   3 : 
   4 :       IMPLICIT INTEGER(I-N)
   5 : -INC SMRIGID
   6 : -INC SMMATRI
   7 : -INC SMELEME
   8 : -INC SMCOORD
   9 : -INC CCOPTIO
  10 : 
  10 :       call lirobj('RIGIDITE',mrigi0,1,iretou)
  11 :       if (ierr.ne.0) return
  12 : * creation d'un maillage résultat
  13 :       NBNN = 2
  14 :       NBELEM = 100 
  15 :       NBSOUS = 0
  16 :       NBREF = 0
  17 :       segini meleme
  18 :       ITYPEL = 2
  19 : 
  20 :       nbpts = xcoor(/1)/(idim+1)
  21 :       inbpt = nbpts
  22 :       nb0 = 0
  23 : 
  24 :       mrigid = mrigi0
  25 :     
  26 :       segact mrigid
  27 :       If ( (ichole .eq. 0) .and. (jrcond .ne. 0) ) then 
  28 :         ri1 = mrigid
  29 :         mrigid =  ri1.jrcond
  30 :         segact mrigid
  31 :         segdes ri1
  32 :       endif
  33 :       MMATRI = ICHOLE
  34 :       segdes mrigid
  35 :       if (MMATRI .eq. 0) GOTO 1000
  36 :       segact MMATRI
  37 : 
  38 :       MILIGN = IILIGN
  39 :       segact MILIGN
  40 : 
  41 :       NNOE = ILIGN(/1)
  42 : 
  43 :       nbpts = nbpts + 100
  44 :       segadj mcoord
  45 :       inumli = 0 
  46 : * Boucle sur les blocs de lignes
  47 :       Do j=1,NNOE
  48 :         Lign = ilign(j)
  49 :         segact Lign
  50 : 
  51 :         NA = IMMM(/1)
  52 : * Boucle sur les lignes
  53 :         Do i0=1,NA
  54 :           inumli = inumli + 1
  55 :           ideb = ivpo(2*ippvv(i0)-1)
  56 :           ifin = ivpo(2*ippvv(i0+1)-1)
  57 :           nbterm = ifin - ideb 
  58 :           ixdeb = inumli - nbterm
  59 : * Boucle sur les morceaux de lignes
  60 :           Do i1=ippvv(i0),(ippvv(i0+1)-1)
  61 :             nbt = ivpo(2*(i1+1)) - ivpo(2*i1) - 1
  62 :             ndeb = ivpo(2*i1-1)
  63 :             if (nbt .lt. 0) then 
  64 :                print*,'nbt negatif !!!' 
  65 :                nbt = 0
  66 :             endif
  67 :             if (nb0 .eq. NBELEM) then 
  68 :               NBELEM = NBELEM + 100
  69 :               segadj meleme
  70 :             endif
  71 : 
  72 :             if ((inbpt + 2) .gt. nbpts) then 
  73 :               nbpts = nbpts + 100
  74 :               segadj mcoord
  75 :             endif
  76 : 
  77 :             inbpt = inbpt + 1
  78 :             nb0 = nb0 + 1 
  79 :             xx1 = ixdeb + ndeb - ideb +  1
  80 :             xx2 = ixdeb + ndeb - ideb + nbt 
  81 :             yy = -1. * inumli
  82 : * creation du point
  83 :             xcoor((inbpt-1)*(idim+1)+1) = xx1
  84 :             xcoor((inbpt-1)*(idim+1)+2) = yy
  85 :             if (idim .eq. 3) xcoor((inbpt-1)*(idim+1)+3) = 0
  86 :             xcoor(inbpt*(idim+1)) = 1
  87 : 
  88 :             inbpt = inbpt + 1
  89 :             xcoor((inbpt-1)*(idim+1)+1) = xx2
  90 :             xcoor((inbpt-1)*(idim+1)+2) = yy
  91 :             if (idim .eq. 3) xcoor((inbpt-1)*(idim+1)+3) = 0
  92 :             xcoor(inbpt*(idim+1)) = 1
  93 : 
  94 : * affectation dans le meleme
  95 :             num(1,nb0) = inbpt - 1
  96 :             num(2,nb0) = inbpt 
  97 :             icolor(nb0) = 1
  98 :           Enddo
  99 :         Enddo
 100 :         
 101 :         segdes Lign
 102 :       Enddo
 103 :       
 104 :       segdes MILIGN
 105 :       
 106 :       segdes MMATRI
 107 : 
 108 :       nbpts = inbpt
 109 :       segadj mcoord
 110 :       NBELEM = nb0 
 111 :       segadj meleme
 112 :       segdes meleme 
 113 :       melem0 = meleme
 113 :       call ecrobj('MAILLAGE',melem0)
 114 :       return 
 115 :  1000 continue
 115 :       call erreur(990)
 116 :       segdes meleme
 117 :       melem0 = 0
 118 :       end
 119 : 
 120 :  
 121 :  
 122 :  
 123 :  
 124 :  
 125 :  

© Cast3M 2003 - All rights reserved.
Disclaimer