Download clinb.eso

Back to the list

   1 : C CLINB     SOURCE    CHAT      05/01/12    22:08:16     5004           
   2 :       SUBROUTINE CLINB
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z)
   5 : C************************************************************************
   6 : C Ce sp transforme des éléments QUAF pris
   7 : C dans la liste ci-dessous
   8 : C SEG3 TRI7 QUA9 CU27 PR21 TE15 PY19
   9 : C  3    7    11   33   34   35   36
  10 : C
  11 : C en les éléments linéaires bulle construits à parir des sommets
  12 : C
  13 : C SEG2 TRI4 QUA5 CUB9 PRI7 TET5 PYR6
  14 : C  2    5    9    48   49   50   51
  15 : C************************************************************************
  16 : -INC SMELEME
  17 :       POINTEUR MLINB.MELEME
  18 : 
  18 :       CALL LIROBJ('MAILLAGE',MELEME,1,IRET)
  19 :       IF(IRET.EQ.0)RETURN
  20 : 
  21 :       SEGACT MELEME
  22 :       NBSOU1=LISOUS(/1)
  23 :       IF(NBSOU1.EQ.0)NBSOU1=1
  24 : 
  25 : C     write(6,*)'CLINB il y a a faire '
  26 : 
  27 :       NBSOUS=NBSOU1
  28 :       NBNN=0
  29 :       NBELEM=0
  30 :       NBREF=0
  31 :       SEGINI MLINB
  32 :       DO 200 L=1,NBSOU1
  33 :       IPT1=MELEME
  34 :       IF(NBSOU1.NE.1)IPT1=LISOUS(L)
  35 :       SEGACT IPT1
  36 :       ITYP=IPT1.ITYPEL
  37 :       NBNN0=IPT1.NUM(/1)
  38 :       NBELEM=IPT1.NUM(/2)
  39 :       MLINB.LISOUS(L)=IPT1
  40 : 
  41 : C     write(6,*)' CLINB ITYP=',ityp
  42 :       IF(ITYP.EQ.3)THEN
  43 : C SEG3 -> SEG2
  44 :       NBNN=2
  45 :       NBSOUS=0
  46 :       NBREF=0
  47 :       SEGINI IPT2
  48 :       MLINB.LISOUS(L)=IPT2
  49 :       IPT2.ITYPEL=2
  50 :       DO 202 K=1,NBELEM
  51 :       IPT2.NUM(1,K)=IPT1.NUM(1,K)
  52 :       IPT2.NUM(2,K)=IPT1.NUM(3,K)
  53 :  202  CONTINUE
  54 : 
  55 :       ELSEIF(ITYP.EQ.7)THEN
  56 : C TRI7 -> TRI4
  57 :       NBNN=4
  58 :       NBSOUS=0
  59 :       NBREF=0
  60 :       SEGINI IPT2
  61 :       MLINB.LISOUS(L)=IPT2
  62 :       IPT2.ITYPEL=5
  63 :       DO 304 K=1,NBELEM
  64 :       I1=0
  65 :       DO 204 I=1,6,2
  66 :       I1=I1+1
  67 :       IPT2.NUM(I1,K)=IPT1.NUM(I,K)
  68 :  204  CONTINUE
  69 :       IPT2.NUM(4,K)=IPT1.NUM(7,K)
  70 :  304  CONTINUE
  71 : 
  72 :       ELSEIF(ITYP.EQ.11)THEN
  73 : C QUA9 -> QUA5
  74 :       NBNN=5
  75 :       NBSOUS=0
  76 :       NBREF=0
  77 :       SEGINI IPT2
  78 :       MLINB.LISOUS(L)=IPT2
  79 :       IPT2.ITYPEL=9
  80 :       DO 308 K=1,NBELEM
  81 :       I1=0
  82 :       DO 208 I=1,8,2
  83 :       I1=I1+1
  84 :       IPT2.NUM(I1,K)=IPT1.NUM(I,K)
  85 :  208  CONTINUE
  86 :       IPT2.NUM(5,K)=IPT1.NUM(9,K)
  87 :  308  CONTINUE
  88 : 
  89 :       ELSEIF(ITYP.EQ.33)THEN
  90 : C CU27 -> CUB8
  91 :       NBNN=8
  92 :       NBSOUS=0
  93 :       NBREF=0
  94 :       SEGINI IPT2
  95 :       MLINB.LISOUS(L)=IPT2
  96 :       IPT2.ITYPEL=14
  97 :       DO 214 K=1,NBELEM
  98 :       I1=0
  99 :       DO 214 I=1,8,2
 100 :       I1=I1+1
 101 :       IPT2.NUM(I1,K)=IPT1.NUM(I,K)
 102 :       IPT2.NUM(I1+4,K)=IPT1.NUM(I+12,K)
 103 :  214  CONTINUE
 104 : 
 105 :       ELSEIF(ITYP.EQ.34)THEN
 106 : C PR21 -> PRI6
 107 :       NBNN=6
 108 :       NBSOUS=0
 109 :       NBREF=0
 110 :       SEGINI IPT2
 111 :       MLINB.LISOUS(L)=IPT2
 112 :       IPT2.ITYPEL=16
 113 :       DO 216 K=1,NBELEM
 114 :       I1=0
 115 :       DO 216 I=1,6,2
 116 :       I1=I1+1
 117 :       IPT2.NUM(I1,K)=IPT1.NUM(I,K)
 118 :       IPT2.NUM(I1+3,K)=IPT1.NUM(I+9,K)
 119 :  216  CONTINUE
 120 : 
 121 :       ELSEIF(ITYP.EQ.35)THEN
 122 : C TE15 -> TET5
 123 :       NBNN=5
 124 :       NBSOUS=0
 125 :       NBREF=0
 126 :       SEGINI IPT2
 127 :       MLINB.LISOUS(L)=IPT2
 128 :       IPT2.ITYPEL=9
 129 :       DO 2230 K=1,NBELEM
 130 :       IPT2.NUM(1,K)=IPT1.NUM(1,K)
 131 :       IPT2.NUM(2,K)=IPT1.NUM(3,K)
 132 :       IPT2.NUM(3,K)=IPT1.NUM(5,K)
 133 :       IPT2.NUM(4,K)=IPT1.NUM(10,K)
 134 :       IPT2.NUM(5,K)=IPT1.NUM(15,K)
 135 :  2230 CONTINUE
 136 : 
 137 :       ELSEIF(ITYP.EQ.36)THEN
 138 : C PY19 -> PYR5
 139 :       NBNN=5
 140 :       NBSOUS=0
 141 :       NBREF=0
 142 :       SEGINI IPT2
 143 :       MLINB.LISOUS(L)=IPT2
 144 :       IPT2.ITYPEL=25
 145 :       DO 2250 K=1,NBELEM
 146 :       I1=0
 147 :       DO 225 I=1,8,2
 148 :       I1=I1+1
 149 :       IPT2.NUM(I1,K)=IPT1.NUM(I,K)
 150 :  225  CONTINUE
 151 :       IPT2.NUM(5,K)=IPT1.NUM(13,K)
 152 :  2250 CONTINUE
 153 : 
 154 : 
 155 :       ENDIF
 156 : 
 157 :  200  CONTINUE
 158 : 
 159 :       IF(NBSOU1.EQ.1)THEN
 160 :       IPT3=MLINB
 161 :       MLINB=MLINB.LISOUS(1)
 162 :       SEGSUP IPT3
 163 :       ENDIF
 164 : 
 164 :       CALL ECROBJ('MAILLAGE',MLINB)
 165 : 
 166 :       RETURN
 167 :  1001 FORMAT(20(1X,I5))
 168 :  1002 FORMAT(10(1X,1PE11.4))
 169 :       END
 170 :  
 171 :  
 172 :  
 173 :  
 174 :  
 175 :  

© Cast3M 2003 - All rights reserved.
Disclaimer