Download ktrsf.eso

Back to the list

   1 : C KTRSF     SOURCE    MAGN      10/05/18    21:16:15     6675           
   2 :       SUBROUTINE KTRSF(MACRO,MELEME,MTBT0,IRET,GA,EPS,EPSD,ALFA)
   3 :       IMPLICIT INTEGER(I-N)
   4 :       IMPLICIT REAL*8 (A-H,O-Z) 
   5 : -INC CCOPTIO
   6 : -INC CCGEOME
   7 : -INC SMCOORD
   8 : -INC SMCHPOI
   9 : -INC SMELEME
  10 : -INC SIZFFB
  11 :       POINTEUR MACRO.MELEME,MFACEI.MELEME,MFICEL.MELEME,MELTFI.MELEME
  12 :       POINTEUR MCTREI.MELEME,MELELI.MELEME,MELSTB.MELEME
  13 :       DIMENSION ITAB(5),GA(3),EPS(3),EPSD(3)
  14 :       PARAMETER (NBE=3)
  15 :       CHARACTER*8 LISTE(NBE),TYPE,LIST(NBE)
  16 :       DATA LISTE /'TRI6    ','QUA8    ','SEG3    '/
  17 :       DATA LIST  /'TRI3    ','QUA4    ','SEG2    '/
  18 : 
  19 :       COEF=ALFA*0.01D0
  20 :       IAXI=0
  21 :       IF(IFOMOD.EQ.0)IAXI=2
  22 : 
  23 :       IRET=1
  24 :       IM  =0
  25 : 
  26 :       IPT5=0
  27 :       IPT6=0
  28 :       IPT7=0
  29 : 
  30 :       NSOUPO=1
  31 :       NAT=1
  32 :       N=0
  33 : C     NC=3
  34 : C aire de la face interne , 2 composantes de la normale
  35 : C     SEGINI MCHPOI,MSOUPO,MPOVAL
  36 :       KPOC=0
  37 :       NC=4
  38 :       SEGINI MCHPO1,MSOUP1,MPOVA1
  39 : C     JATTRI(1)=2
  40 :       MCHPO1.JATTRI(1)=2
  41 : C     IFOPOI=IFOMOD
  42 :       MCHPO1.IFOPOI=IFOMOD
  43 : C     MTYPOI='FACE    '
  44 :       MCHPO1.MTYPOI='CENTRE  '
  45 : C     MOCHDE='                                                  '
  46 :       MCHPO1.MOCHDE='                                                  '
  47 : C     IPCHP(1)=MSOUPO
  48 :       MCHPO1.IPCHP(1)=MSOUP1
  49 : 
  50 : C     IPOVAL=MPOVAL
  51 :       MSOUP1.IPOVAL=MPOVA1
  52 : C     NOCOMP(1)='SCF1'
  53 :       MSOUP1.NOCOMP(1)='SCC1'
  54 :       MSOUP1.NOCOMP(2)='SCC2'
  55 :       MSOUP1.NOCOMP(3)='SCC3'
  56 :       MSOUP1.NOCOMP(4)='SCC4'
  57 : 
  58 :       NBELEM=0
  59 :       NBNN=1
  60 :       NBSOUS=0
  61 :       NBREF=0
  62 :       SEGINI MCTREI
  63 :       MCTREI.ITYPEL=1
  64 :       KCTREI=0
  65 : C MLELI Connectivités : pour chaque ligne pression donne les
  66 : C connectivités pour la matrice de stabilisation
  67 : C Pt centre Pts centre connectes Pts face intermediares
  68 : C QUA8 -> 5 pts 1pc + 2pc + 2pf
  69 : C TRI6 -> 3 pts 1pc + 1pc + 1pf
  70 : C      -> 7 pts 1pc + 3pc + 3pf
  71 : 
  72 : C     NBELEM=0
  73 : C     NBNN=0
  74 : C     NBSOUS=0
  75 : C     NBREF=0
  76 : C     SEGINI MELELI
  77 : C     MELELI.ITYPEL=0
  78 : C     KELELI=0
  79 : 
  80 : C Connectivités de la matrice de stabilisation
  81 :       NBELEM=0
  82 :       NBNN=4
  83 :       NBSOUS=0
  84 :       NBREF=0
  85 :       SEGINI MELSTB
  86 :       MELSTB.ITYPEL=8
  87 :       KSTB=0
  88 : 
  89 : C     NBELEM=0
  90 : C     NBNN=0
  91 : C     NBSOUS=0
  92 : C     NBREF=0
  93 : C     SEGINI MELTFI
  94 : C     KELTFI=0
  95 : 
  96 : C     NBELEM=0
  97 : C     NBNN=1
  98 : C     NBSOUS=0
  99 : C     NBREF=0
 100 : C     SEGINI MFACEI
 101 : C     MFACEI.ITYPEL=1
 102 : C     KFACEI=0
 103 : 
 104 : C     NBELEM=0
 105 : C     NBNN=3
 106 : C     NBSOUS=0
 107 : C     NBREF=0
 108 : C     SEGINI MFICEL
 109 : C     MFICEL.ITYPEL=3
 110 : C     KFICEL=0
 111 : 
 112 :       SEGACT MACRO
 113 :       NBSOUS=MACRO.LISOUS(/1)
 114 :       IF(NBSOUS.EQ.0)NBSOUS=1
 115 :       DO 1 L=1,NBSOUS
 116 :       IPT1=MACRO
 117 :       IF(NBSOUS.NE.1)IPT1=MACRO.LISOUS(L)
 118 :       SEGACT IPT1
 119 :       TYPE=NOMS(IPT1.ITYPEL)//'    '
 119 :       CALL OPTLI(IP,LISTE,TYPE,NBE)
 120 :       IF(IP.EQ.0)THEN
 121 :       WRITE(6,*)' Type d''élément : ',TYPE,' non prévu '
 122 :       IRET=0
 123 :       RETURN
 124 :       ENDIF
 125 :       GO TO (106,108,103),IP
 126 : 
 127 : C TRI6 -> 4 TRI3
 128 :  106  CONTINUE
 129 : 
 130 :       NBEL=IPT1.NUM(/2)
 131 :       NP=IPT1.NUM(/1)
 132 : C     NBPF=NBEL*3
 133 :       NBPF=0
 134 :       NBPC=NBEL*4
 135 : 
 136 : C     N=NBPF+VPOCHA(/1)
 137 : C     NC=3
 138 : C     SEGADJ MPOVAL
 139 :       N=NBPC+MPOVA1.VPOCHA(/1)
 140 :       NC=4
 141 :       NCTV0=MPOVA1.VPOCHA(/1)
 142 :       SEGADJ MPOVA1
 143 : 
 144 :       NBV0=XCOOR(/1)/(IDIM+1)
 145 :       NBPTS=NBV0+NBPF+NBPC
 146 :       SEGADJ MCOORD
 147 : 
 148 :       NBELEM=NBPC
 149 :       NBNN=3
 150 :       NBSOUS=0
 151 :       NBREF=0
 152 :       SEGINI IPT2
 153 :       IPT2.ITYPEL=4
 154 :       IM=IM+1
 155 :       ITAB(IM)=IPT2
 156 : 
 157 : C     IF(IPT5.EQ.0)THEN
 158 : C     NBELEM=3*NBEL
 159 : C     NBNN=3
 160 : C     NBSOUS=0
 161 : C     NBREF=0
 162 : C     K5=0
 163 : C     SEGINI IPT5
 164 : C     IPT5.ITYPEL=4
 165 : C     ELSE
 166 : C     K5=IPT5.NUM(/2)
 167 : C     NBELEM=IPT5.NUM(/2)+3*NBEL
 168 : C     NBNN=3
 169 : C     NBSOUS=0
 170 : C     NBREF=0
 171 : C     SEGADJ IPT5
 172 : C     ENDIF
 173 : C
 174 : C     IF(IPT6.EQ.0)THEN
 175 : C     NBELEM=NBEL
 176 : C     NBNN=7
 177 : C     NBSOUS=0
 178 : C     NBREF=0
 179 : C     K6=0
 180 : C     SEGINI IPT6
 181 : C     IPT6.ITYPEL=7
 182 : C     ELSE
 183 : C     K6=IPT6.NUM(/2)
 184 : C     NBELEM=IPT6.NUM(/2)+NBEL
 185 : C     NBNN=7
 186 : C     NBSOUS=0
 187 : C     NBREF=0
 188 : C     SEGADJ IPT6
 189 : C     ENDIF
 190 : 
 191 : C Spg des pts centres des macro elements
 192 :       NCTR0=MCTREI.NUM(/2)
 193 :       NBELEM=NCTR0+NBPC
 194 :       NBNN=1
 195 :       NBSOUS=0
 196 :       NBREF=0
 197 :       SEGADJ MCTREI
 198 : C     write(6,*)' MCTREI=',mctrei,nbelem
 199 :       KCTREI=1
 200 : 
 201 : C Connectivités de la matrice de stabilisation
 202 :       NCSTB=MELSTB.NUM(/2)
 203 :       NBELEM=NCSTB+NBPC
 204 :       NBNN=4
 205 : C     write(6,*)' KTRSF : ',nbnn,nbelem
 206 :       NBSOUS=0
 207 :       NBREF=0
 208 :       SEGADJ MELSTB
 209 :       KSTB=1
 210 : 
 211 : C     NBELEM=0
 212 : C     NBNN=0
 213 : C     NBS=MELTFI.LISOUS(/1)
 214 : C     NBSOUS=NBS+2
 215 : C     NBREF=0
 216 : C     SEGADJ MELTFI
 217 : C     KELTFI=1
 218 : C     NBELEM=3*NBEL
 219 : C     NBNN=2
 220 : C     NBSOUS=0
 221 : C     NBREF=0
 222 : C     SEGINI IPT3
 223 : C     IPT3.ITYPEL=2
 224 : C     MELTFI.LISOUS(NBS+1)=IPT3
 225 : C     NBELEM=NBEL
 226 : C     NBNN=4
 227 : C     NBSOUS=0
 228 : C     NBREF=0
 229 : C     SEGINI IPT4
 230 : C     IPT4.ITYPEL=5
 231 : C     MELTFI.LISOUS(NBS+2)=IPT4
 232 : 
 233 : C     KFM=MFACEI.NUM(/2)
 234 : C     NBNN=MFACEI.NUM(/1)
 235 : C     NBELEM=MFACEI.NUM(/2)+NBPF
 236 : C     SEGADJ MFACEI
 237 : C     KFACEI=1
 238 : 
 239 : C     NBNN=MFICEL.NUM(/1)
 240 : C     NBELEM=MFICEL.NUM(/2)+NBPF
 241 : C     SEGADJ MFICEL
 242 : C     KFICEL=1
 243 : 
 243 :       CALL KALPBG('SEG2    ','FONFORM0',IZFFM)
 243 :       IF(IZFFM.EQ.0)CALL ARRET(0)
 244 :       SEGACT IZFFM*MOD
 245 :       IZHR=KZHR(1)
 246 :       SEGACT IZHR*MOD
 247 :       NPG=GR(/3)
 248 :       NES=GR(/1)
 249 : 
 250 :       K1=0
 251 :       KF=0
 252 :       DO 206 K=1,NBEL
 253 :       N1=IPT1.NUM(1,K)
 254 :       N2=IPT1.NUM(2,K)
 255 :       N3=IPT1.NUM(3,K)
 256 :       N4=IPT1.NUM(4,K)
 257 :       N5=IPT1.NUM(5,K)
 258 :       N6=IPT1.NUM(6,K)
 259 : 
 260 :       XN1=XCOOR((N1-1)*(IDIM+1)    +1)
 261 :       YN1=XCOOR((N1-1)*(IDIM+1)    +2)
 262 :       XN2=XCOOR((N2-1)*(IDIM+1)    +1)
 263 :       YN2=XCOOR((N2-1)*(IDIM+1)    +2)
 264 :       XN3=XCOOR((N3-1)*(IDIM+1)    +1)
 265 :       YN3=XCOOR((N3-1)*(IDIM+1)    +2)
 266 :       XN4=XCOOR((N4-1)*(IDIM+1)    +1)
 267 :       YN4=XCOOR((N4-1)*(IDIM+1)    +2)
 268 :       XN5=XCOOR((N5-1)*(IDIM+1)    +1)
 269 :       YN5=XCOOR((N5-1)*(IDIM+1)    +2)
 270 :       XN6=XCOOR((N6-1)*(IDIM+1)    +1)
 271 :       YN6=XCOOR((N6-1)*(IDIM+1)    +2)
 272 : 
 273 :       K3=3*(K-1)
 274 : CT1
 275 :       K1=K1+1
 276 :       KF=KF+1
 277 :       KFM=KFM+1
 278 :       NC1=NBV0+K1
 279 : C     NF1=NBV0+NBPC+KF
 280 : 
 281 :       MCTREI.NUM(1,NCTR0+K1)=NC1
 282 :       IPT2.NUM(1,K1)=N1
 283 :       IPT2.NUM(2,K1)=N2
 284 :       IPT2.NUM(3,K1)=N6
 285 : C     IPT3.NUM(1,K3+1)=NC1
 286 : C     IPT3.NUM(2,K3+1)=NF1
 287 : 
 288 :       XCOOR((NC1-1)*(IDIM+1)    +1)= (XN1+XN2+XN6)/3.D0
 289 :       XCOOR((NC1-1)*(IDIM+1)    +2)= (YN1+YN2+YN6)/3.D0
 290 : 
 291 : C     XCOOR((NF1-1)*(IDIM+1)    +1)= (XN2+XN6)/2.D0
 292 : C     XCOOR((NF1-1)*(IDIM+1)    +2)= (YN2+YN6)/2.D0
 293 : 
 294 : C     MFACEI.NUM(1,KFM)=NF1
 295 : C     MFICEL.NUM(1,KFM)=NC1
 296 : C     MFICEL.NUM(2,KFM)=NF1
 297 : C     MFICEL.NUM(3,KFM)=NC4
 298 : CT2
 299 :       K1=K1+1
 300 :       KF=KF+1
 301 :       KFM=KFM+1
 302 :       NC2=NBV0+K1
 303 : C     NF2=NBV0+NBPC+KF
 304 : 
 305 :       MCTREI.NUM(1,NCTR0+K1)=NC2
 306 :       IPT2.NUM(1,K1)=N3
 307 :       IPT2.NUM(2,K1)=N4
 308 :       IPT2.NUM(3,K1)=N2
 309 : C     IPT3.NUM(1,K3+2)=NC2
 310 : C     IPT3.NUM(2,K3+2)=NF2
 311 : 
 312 :       XCOOR((NC2-1)*(IDIM+1)    +1)= (XN3+XN4+XN2)/3.D0
 313 :       XCOOR((NC2-1)*(IDIM+1)    +2)= (YN3+YN4+YN2)/3.D0
 314 : 
 315 : C     XCOOR((NF2-1)*(IDIM+1)    +1)= (XN4+XN2)/2.D0
 316 : C     XCOOR((NF2-1)*(IDIM+1)    +2)= (YN4+YN2)/2.D0
 317 : 
 318 : C     MFACEI.NUM(1,KFM)=NF2
 319 : C     MFICEL.NUM(1,KFM)=NC2
 320 : C     MFICEL.NUM(2,KFM)=NF2
 321 : C     MFICEL.NUM(3,KFM)=NC4
 322 : CT3
 323 :       K1=K1+1
 324 :       KF=KF+1
 325 :       KFM=KFM+1
 326 :       NC3=NBV0+K1
 327 : C     NF3=NBV0+NBPC+KF
 328 : 
 329 :       MCTREI.NUM(1,NCTR0+K1)=NC3
 330 :       IPT2.NUM(1,K1)=N5
 331 :       IPT2.NUM(2,K1)=N6
 332 :       IPT2.NUM(3,K1)=N4
 333 : C     IPT3.NUM(1,K3+3)=NC3
 334 : C     IPT3.NUM(2,K3+3)=NF3
 335 : 
 336 :       XCOOR((NC3-1)*(IDIM+1)    +1)= (XN5+XN6+XN4)/3.D0
 337 :       XCOOR((NC3-1)*(IDIM+1)    +2)= (YN5+YN6+YN4)/3.D0
 338 : 
 339 : C     XCOOR((NF3-1)*(IDIM+1)    +1)= (XN6+XN4)/2.D0
 340 : C     XCOOR((NF3-1)*(IDIM+1)    +2)= (YN6+YN4)/2.D0
 341 : 
 342 : C     MFACEI.NUM(1,KFM)=NF3
 343 : C     MFICEL.NUM(1,KFM)=NC3
 344 : C     MFICEL.NUM(2,KFM)=NF3
 345 : C     MFICEL.NUM(3,KFM)=NC4
 346 : CT4
 347 :       K1=K1+1
 348 :       NC4=NBV0+K1
 349 :       MCTREI.NUM(1,NCTR0+K1)=NC4
 350 :       IPT2.NUM(1,K1)=N2
 351 :       IPT2.NUM(2,K1)=N4
 352 :       IPT2.NUM(3,K1)=N6
 353 : 
 354 :       XCOOR((NC4-1)*(IDIM+1)    +1)= (XN2+XN4+XN6)/3.D0
 355 :       XCOOR((NC4-1)*(IDIM+1)    +2)= (YN2+YN4+YN6)/3.D0
 356 : 
 357 : C     IPT4.NUM(1,K)=NC4
 358 : C     IPT4.NUM(2,K)=NF1
 359 : C     IPT4.NUM(3,K)=NF2
 360 : C     IPT4.NUM(4,K)=NF3
 361 : 
 362 : C     IPT5.NUM(1,K5+K)=NC1
 363 : C     IPT5.NUM(2,K5+K)=NC4
 364 : C     IPT5.NUM(3,K5+K)=NF1
 365 : 
 366 : C     IPT5.NUM(1,K5+K+1)=NC2
 367 : C     IPT5.NUM(2,K5+K+1)=NC4
 368 : C     IPT5.NUM(3,K5+K+1)=NF2
 369 : 
 370 : C     IPT5.NUM(1,K5+K+2)=NC3
 371 : C     IPT5.NUM(2,K5+K+2)=NC4
 372 : C     IPT5.NUM(3,K5+K+2)=NF3
 373 : C     K5=K5+2
 374 : 
 375 : C     IPT6.NUM(1,K6+K)=NC4
 376 : C     IPT6.NUM(2,K6+K)=NC1
 377 : C     IPT6.NUM(3,K6+K)=NC2
 378 : C     IPT6.NUM(4,K6+K)=NC3
 379 : C     IPT6.NUM(5,K6+K)=NF1
 380 : C     IPT6.NUM(6,K6+K)=NF2
 381 : C     IPT6.NUM(7,K6+K)=NF3
 382 : 
 383 :       NPI=2
 384 : 
 385 :       XYZ(1,1)=XN2
 386 :       XYZ(2,1)=YN2
 387 :       XYZ(1,2)=XN6
 388 :       XYZ(2,2)=YN6
 388 :       CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NPI,NPG,IAXI,AIR1)
 389 : 
 390 :       DF1=(XN2-XN6)**2.D0 + (YN2-YN6)**2.D0
 391 :       DF1=SQRT(DF1)
 392 :       TX1 = (XN2-XN6)/DF1
 393 :       TY1 = (YN2-YN6)/DF1
 394 : 
 395 :       XYZ(1,1)=XN2
 396 :       XYZ(2,1)=YN2
 397 :       XYZ(1,2)=XN4
 398 :       XYZ(2,2)=YN4
 398 :       CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NPI,NPG,IAXI,AIR2)
 399 : 
 400 :       DF2=(XN2-XN4)**2.D0 + (YN2-YN4)**2.D0
 401 :       DF2=SQRT(DF2)
 402 :       TX2 = (XN4-XN2)/DF2
 403 :       TY2 = (YN4-YN2)/DF2
 404 : 
 405 :       XYZ(1,1)=XN6
 406 :       XYZ(2,1)=YN6
 407 :       XYZ(1,2)=XN4
 408 :       XYZ(2,2)=YN4
 408 :       CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NPI,NPG,IAXI,AIR3)
 409 : 
 410 :       DF3=(XN6-XN4)**2.D0 + (YN6-YN4)**2.D0
 411 :       DF3=SQRT(DF3)
 412 :       TX3 = (XN6-XN4)/DF3
 413 :       TY3 = (YN6-YN4)/DF3
 414 : 
 415 :       DFM=(DF1+DF2+DF3)/3.D0
 416 :       AIRM=(AIR1+AIR2+AIR3)/3.D0
 417 : C     AIR1=AIRM
 418 : C     AIR2=AIRM
 419 : C     AIR3=AIRM
 420 : C     DF1=DFM
 421 : C     DF2=DFM
 422 : C     DF3=DFM
 423 : 
 424 : 
 425 : C     VPOCHA(KFM-2,1)=DF1*AIR1
 426 : C     VPOCHA(KFM-1,1)=DF2*AIR2
 427 : C     VPOCHA(KFM  ,1)=DF3*AIR3
 428 : C
 429 : C     VPOCHA(KFM-2,2)=-TY1
 430 : C     VPOCHA(KFM-1,2)=-TY2
 431 : C     VPOCHA(KFM  ,2)=-TY3
 432 : C
 433 : C     VPOCHA(KFM-2,3)= TX1
 434 : C     VPOCHA(KFM-1,3)= TX2
 435 : C     VPOCHA(KFM  ,3)= TX3
 436 : 
 437 : C     MPOVA1.VPOCHA(NCTV0+K,1)=AIR1*DF1
 438 : C     MPOVA1.VPOCHA(NCTV0+K,2)=-AIR1*DF1
 439 : C     MPOVA1.VPOCHA(NCTV0+K+1,1)=AIR2*DF2
 440 : C     MPOVA1.VPOCHA(NCTV0+K+1,2)=-AIR2*DF2
 441 : C     MPOVA1.VPOCHA(NCTV0+K+2,1)=AIR3*DF3
 442 : C     MPOVA1.VPOCHA(NCTV0+K+2,2)=-AIR3*DF3
 443 : C     MPOVA1.VPOCHA(NCTV0+K+3,1)=(AIR1*DF1+AIR2*DF2+AIR3*DF3)
 444 : C     MPOVA1.VPOCHA(NCTV0+K+3,2)=-AIR1*DF1
 445 : C     MPOVA1.VPOCHA(NCTV0+K+3,3)=-AIR2*DF2
 446 : C     MPOVA1.VPOCHA(NCTV0+K+3,4)=-AIR3*DF3
 447 : 
 448 :       MELSTB.NUM(1,NCSTB+K)=NC1
 449 :       MELSTB.NUM(2,NCSTB+K)=NC2
 450 :       MELSTB.NUM(3,NCSTB+K)=NC3
 451 :       MELSTB.NUM(4,NCSTB+K)=NC4
 452 : 
 453 :       MELSTB.NUM(1,NCSTB+K+1)=NC2
 454 :       MELSTB.NUM(2,NCSTB+K+1)=NC3
 455 :       MELSTB.NUM(3,NCSTB+K+1)=NC4
 456 :       MELSTB.NUM(4,NCSTB+K+1)=NC1
 457 : 
 458 :       MELSTB.NUM(1,NCSTB+K+2)=NC3
 459 :       MELSTB.NUM(2,NCSTB+K+2)=NC4
 460 :       MELSTB.NUM(3,NCSTB+K+2)=NC1
 461 :       MELSTB.NUM(4,NCSTB+K+2)=NC2
 462 : 
 463 :       MELSTB.NUM(1,NCSTB+K+3)=NC4
 464 :       MELSTB.NUM(2,NCSTB+K+3)=NC1
 465 :       MELSTB.NUM(3,NCSTB+K+3)=NC2
 466 :       MELSTB.NUM(4,NCSTB+K+3)=NC3
 467 : 
 468 : 
 469 :       H14=AIR1*DF1*GA(1)
 470 :       H24=AIR2*DF2*GA(1)
 471 :       H34=AIR3*DF3*GA(1)
 472 :       H12=(AIR1*DF1+AIR2*DF2)*0.5D0*EPS(1)
 473 :       H13=(AIR1*DF1+AIR3*DF3)*0.5D0*EPS(1)
 474 :       H23=(AIR2*DF2+AIR3*DF3)*0.5D0*EPS(1)
 475 : 
 476 :       MPOVA1.VPOCHA(NCTV0+K,1)=H12+H13+H14+EPSD(1)
 477 :       MPOVA1.VPOCHA(NCTV0+K,2)=-H12
 478 :       MPOVA1.VPOCHA(NCTV0+K,3)=-H13
 479 :       MPOVA1.VPOCHA(NCTV0+K,4)=-H14
 480 :       MPOVA1.VPOCHA(NCTV0+K+1,1)=H12+H23+H24+EPSD(1)
 481 :       MPOVA1.VPOCHA(NCTV0+K+1,2)=-H23
 482 :       MPOVA1.VPOCHA(NCTV0+K+1,3)=-H24
 483 :       MPOVA1.VPOCHA(NCTV0+K+1,4)=-H12
 484 :       MPOVA1.VPOCHA(NCTV0+K+2,1)=H13+H23+H34+EPSD(1)
 485 :       MPOVA1.VPOCHA(NCTV0+K+2,2)=-H34
 486 :       MPOVA1.VPOCHA(NCTV0+K+2,3)=-H13
 487 :       MPOVA1.VPOCHA(NCTV0+K+2,4)=-H23
 488 :       MPOVA1.VPOCHA(NCTV0+K+3,1)=-(H14+H24+H34)+EPSD(1)
 489 :       MPOVA1.VPOCHA(NCTV0+K+3,2)=-H14
 490 :       MPOVA1.VPOCHA(NCTV0+K+3,3)=-H24
 491 :       MPOVA1.VPOCHA(NCTV0+K+3,4)=-H34
 492 :       KPOC=1
 493 :       NCTV0=NCTV0+3
 494 :       NCSTB=NCSTB+3
 495 : 
 496 :  206  CONTINUE
 497 : C     SEGDES IPT1,IPT2,IPT3,IPT4
 498 :       SEGDES      IPT2
 499 :       GO TO 1
 500 : 
 501 : C**************************************************************************
 502 : 
 503 : C QUA8 -> 4 QUA4
 504 :  108  CONTINUE
 505 : 
 506 :       NBEL=IPT1.NUM(/2)
 507 :       NP=IPT1.NUM(/1)
 508 :       NBP9=NBEL
 509 : C     NBPF=NBEL*4
 510 :       NBPF=0
 511 :       NBPC=NBEL*4
 512 : 
 513 : C     N=NBPF+VPOCHA(/1)
 514 : C     NC=3
 515 : C     SEGADJ MPOVAL
 516 :       N=NBPC+MPOVA1.VPOCHA(/1)
 517 :       NC=4
 518 :       NCTV0=MPOVA1.VPOCHA(/1)
 519 :       SEGADJ MPOVA1
 520 : 
 521 :       NBV0=XCOOR(/1)/(IDIM+1)
 522 :       NBPTS=NBV0+NBPF+NBPC+NBP9
 523 :       SEGADJ MCOORD
 524 : 
 525 :       NBELEM=4*NBEL
 526 :       NBNN=4
 527 :       NBSOUS=0
 528 :       NBREF=0
 529 :       SEGINI IPT2
 530 :       IPT2.ITYPEL=8
 531 :       IM=IM+1
 532 :       ITAB(IM)=IPT2
 533 : 
 534 : C     IF(IPT7.EQ.0)THEN
 535 : C     NBELEM=4*NBEL
 536 : C     NBNN=5
 537 : C     NBSOUS=0
 538 : C     NBREF=0
 539 : C     K7=0
 540 : C     SEGINI IPT7
 541 : C     IPT7.ITYPEL=9
 542 : C     ELSE
 543 : C     K7=IPT7.NUM(/2)
 544 : C     NBELEM=IPT7.NUM(/2)+4*NBEL
 545 : C     NBNN=5
 546 : C     NBSOUS=0
 547 : C     NBREF=0
 548 : C     SEGADJ IPT7
 549 : C     ENDIF
 550 : 
 551 : C Spg des pts centres des macro elements
 552 :       NCTR0=MCTREI.NUM(/2)
 553 :       NBELEM=NCTR0+NBPC
 554 :       NBNN=1
 555 :       NBSOUS=0
 556 :       NBREF=0
 557 :       SEGADJ MCTREI
 558 :       KCTREI=1
 559 : 
 560 : C Connectivités de la matrice de stabilisation
 561 :       NCSTB=MELSTB.NUM(/2)
 562 :       NBELEM=NCSTB+NBPC
 563 :       NBNN=4
 564 : C     write(6,*)' KTRSF : ',nbnn,nbelem
 565 :       NBSOUS=0
 566 :       NBREF=0
 567 :       SEGADJ MELSTB
 568 :       KSTB=1
 569 : 
 570 : C     NBELEM=0
 571 : C     NBNN=0
 572 : C     NBS=MELTFI.LISOUS(/1)
 573 : C     NBSOUS=NBS+1
 574 : C     NBREF=0
 575 : C     SEGADJ MELTFI
 576 : C     KELTFI=1
 577 : C     NBELEM=4*NBEL
 578 : C     NBNN=3
 579 : C     NBSOUS=0
 580 : C     NBREF=0
 581 : C     SEGINI IPT3
 582 : C     IPT3.ITYPEL=4
 583 : C     MELTFI.LISOUS(NBS+1)=IPT3
 584 : 
 585 : C     KFM=MFACEI.NUM(/2)
 586 : C     NBNN=MFACEI.NUM(/1)
 587 : C     NBELEM=MFACEI.NUM(/2)+NBPF
 588 : C     SEGADJ MFACEI
 589 : C     KFACEI=1
 590 : 
 591 : C     NBNN=MFICEL.NUM(/1)
 592 : C     NBELEM=MFICEL.NUM(/2)+NBPF
 593 : C     SEGADJ MFICEL
 594 : C     KFICEL=1
 595 : 
 595 :       CALL KALPBG('SEG2    ','FONFORM0',IZFFM)
 595 :       IF(IZFFM.EQ.0)CALL ARRET(0)
 596 :       SEGACT IZFFM*MOD
 597 :       IZHR=KZHR(1)
 598 :       SEGACT IZHR*MOD
 599 :       NPG=GR(/3)
 600 :       NES=GR(/1)
 601 : 
 602 :       K1=0
 603 :       KF=0
 604 :       DO 208 K=1,NBEL
 605 :       N1=IPT1.NUM(1,K)
 606 :       N2=IPT1.NUM(2,K)
 607 :       N3=IPT1.NUM(3,K)
 608 :       N4=IPT1.NUM(4,K)
 609 :       N5=IPT1.NUM(5,K)
 610 :       N6=IPT1.NUM(6,K)
 611 :       N7=IPT1.NUM(7,K)
 612 :       N8=IPT1.NUM(8,K)
 613 :       N9=NBV0+NBPF+NBPC+K
 614 : 
 615 :       XN1=XCOOR((N1-1)*(IDIM+1)    +1)
 616 :       YN1=XCOOR((N1-1)*(IDIM+1)    +2)
 617 :       XN2=XCOOR((N2-1)*(IDIM+1)    +1)
 618 :       YN2=XCOOR((N2-1)*(IDIM+1)    +2)
 619 :       XN3=XCOOR((N3-1)*(IDIM+1)    +1)
 620 :       YN3=XCOOR((N3-1)*(IDIM+1)    +2)
 621 :       XN4=XCOOR((N4-1)*(IDIM+1)    +1)
 622 :       YN4=XCOOR((N4-1)*(IDIM+1)    +2)
 623 :       XN5=XCOOR((N5-1)*(IDIM+1)    +1)
 624 :       YN5=XCOOR((N5-1)*(IDIM+1)    +2)
 625 :       XN6=XCOOR((N6-1)*(IDIM+1)    +1)
 626 :       YN6=XCOOR((N6-1)*(IDIM+1)    +2)
 627 :       XN7=XCOOR((N7-1)*(IDIM+1)    +1)
 628 :       YN7=XCOOR((N7-1)*(IDIM+1)    +2)
 629 :       XN8=XCOOR((N8-1)*(IDIM+1)    +1)
 630 :       YN8=XCOOR((N8-1)*(IDIM+1)    +2)
 631 :       XN9=(XN1+XN2+XN3+XN4+XN5+XN6+XN7+XN8)/8.D0
 632 :       YN9=(YN1+YN2+YN3+YN4+YN5+YN6+YN7+YN8)/8.D0
 633 :       DX=ABS(XN3-XN7)+ABS(XN1-XN5)
 634 :       DY=ABS(YN3-YN7)+ABS(YN1-YN5)
 635 :       XCOOR((N9-1)*(IDIM+1)    +1)=XN9+DX*COEF
 636 :       XCOOR((N9-1)*(IDIM+1)    +2)=YN9+DY*COEF
 637 : 
 638 : CQ1
 639 :       K1=K1+1
 640 :       KF=KF+1
 641 :       NC1=NBV0+K1
 642 : C     NF1=NBV0+NBPC+KF
 643 : 
 644 :       MCTREI.NUM(1,NCTR0+K1)=NC1
 645 :       IPT2.NUM(1,K1)=N1
 646 :       IPT2.NUM(2,K1)=N2
 647 :       IPT2.NUM(3,K1)=N9
 648 :       IPT2.NUM(4,K1)=N8
 649 : 
 650 :       XCOOR((NC1-1)*(IDIM+1)    +1)= (XN1+XN2+XN9+XN8)/4.D0
 651 :       XCOOR((NC1-1)*(IDIM+1)    +2)= (YN1+YN2+YN9+YN8)/4.D0
 652 : 
 653 : C     XCOOR((NF1-1)*(IDIM+1)    +1)= (XN2+XN9)/2.D0
 654 : C     XCOOR((NF1-1)*(IDIM+1)    +2)= (YN2+YN9)/2.D0
 655 : 
 656 : CQ2
 657 :       K1=K1+1
 658 :       KF=KF+1
 659 :       NC2=NBV0+K1
 660 : C     NF2=NBV0+NBPC+KF
 661 : 
 662 :       MCTREI.NUM(1,NCTR0+K1)=NC2
 663 :       IPT2.NUM(1,K1)=N3
 664 :       IPT2.NUM(2,K1)=N4
 665 :       IPT2.NUM(3,K1)=N9
 666 :       IPT2.NUM(4,K1)=N2
 667 : 
 668 :       XCOOR((NC2-1)*(IDIM+1)    +1)= (XN3+XN4+XN9+XN2)/4.D0
 669 :       XCOOR((NC2-1)*(IDIM+1)    +2)= (YN3+YN4+YN9+YN2)/4.D0
 670 : 
 671 : C     XCOOR((NF2-1)*(IDIM+1)    +1)= (XN4+XN9)/2.D0
 672 : C     XCOOR((NF2-1)*(IDIM+1)    +2)= (YN4+YN9)/2.D0
 673 : 
 674 : CQ3
 675 :       K1=K1+1
 676 :       KF=KF+1
 677 :       NC3=NBV0+K1
 678 : C     NF3=NBV0+NBPC+KF
 679 : 
 680 :       MCTREI.NUM(1,NCTR0+K1)=NC3
 681 :       IPT2.NUM(1,K1)=N5
 682 :       IPT2.NUM(2,K1)=N6
 683 :       IPT2.NUM(3,K1)=N9
 684 :       IPT2.NUM(4,K1)=N4
 685 : 
 686 :       XCOOR((NC3-1)*(IDIM+1)    +1)= (XN5+XN6+XN9+XN4)/4.D0
 687 :       XCOOR((NC3-1)*(IDIM+1)    +2)= (YN5+YN6+YN9+YN4)/4.D0
 688 : 
 689 : C     XCOOR((NF3-1)*(IDIM+1)    +1)= (XN6+XN9)/2.D0
 690 : C     XCOOR((NF3-1)*(IDIM+1)    +2)= (YN6+YN9)/2.D0
 691 : 
 692 : CQ4
 693 :       K1=K1+1
 694 :       KF=KF+1
 695 :       NC4=NBV0+K1
 696 : C     NF4=NBV0+NBPC+KF
 697 : 
 698 :       MCTREI.NUM(1,NCTR0+K1)=NC4
 699 :       IPT2.NUM(1,K1)=N7
 700 :       IPT2.NUM(2,K1)=N8
 701 :       IPT2.NUM(3,K1)=N9
 702 :       IPT2.NUM(4,K1)=N6
 703 : 
 704 :       XCOOR((NC4-1)*(IDIM+1)    +1)= (XN7+XN8+XN9+XN6)/4.D0
 705 :       XCOOR((NC4-1)*(IDIM+1)    +2)= (YN7+YN8+YN9+YN6)/4.D0
 706 : 
 707 : C     XCOOR((NF4-1)*(IDIM+1)    +1)= (XN8+XN9)/2.D0
 708 : C     XCOOR((NF4-1)*(IDIM+1)    +2)= (YN9+YN9)/2.D0
 709 : 
 710 : C     KFM=KFM+1
 711 : C     MFACEI.NUM(1,KFM)=NF1
 712 : C     MFICEL.NUM(1,KFM)=NC1
 713 : C     MFICEL.NUM(2,KFM)=NF1
 714 : C     MFICEL.NUM(3,KFM)=NC2
 715 : 
 716 : C     KFM=KFM+1
 717 : C     MFACEI.NUM(1,KFM)=NF2
 718 : C     MFICEL.NUM(1,KFM)=NC2
 719 : C     MFICEL.NUM(2,KFM)=NF2
 720 : C     MFICEL.NUM(3,KFM)=NC3
 721 : 
 722 : C     KFM=KFM+1
 723 : C     MFACEI.NUM(1,KFM)=NF3
 724 : C     MFICEL.NUM(1,KFM)=NC3
 725 : C     MFICEL.NUM(2,KFM)=NF3
 726 : C     MFICEL.NUM(3,KFM)=NC4
 727 : 
 728 : C     KFM=KFM+1
 729 : C     MFACEI.NUM(1,KFM)=NF4
 730 : C     MFICEL.NUM(1,KFM)=NC4
 731 : C     MFICEL.NUM(2,KFM)=NF4
 732 : C     MFICEL.NUM(3,KFM)=NC1
 733 : 
 734 : C     K4=4*(K-1)
 735 : C     IPT3.NUM(1,K4+1)=NC1
 736 : C     IPT3.NUM(2,K4+1)=NF1
 737 : C     IPT3.NUM(3,K4+1)=NF4
 738 : 
 739 : C     IPT3.NUM(1,K4+2)=NC2
 740 : C     IPT3.NUM(2,K4+2)=NF2
 741 : C     IPT3.NUM(3,K4+2)=NF1
 742 : 
 743 : C     IPT3.NUM(1,K4+3)=NC3
 744 : C     IPT3.NUM(2,K4+3)=NF3
 745 : C     IPT3.NUM(3,K4+3)=NF2
 746 : 
 747 : C     IPT3.NUM(1,K4+4)=NC4
 748 : C     IPT3.NUM(2,K4+4)=NF4
 749 : C     IPT3.NUM(3,K4+4)=NF3
 750 : 
 751 : C     IPT7.NUM(1,K7+K)=NC1
 752 : C     IPT7.NUM(2,K7+K)=NC2
 753 : C     IPT7.NUM(3,K7+K)=NC4
 754 : C     IPT7.NUM(4,K7+K)=NF1
 755 : C     IPT7.NUM(5,K7+K)=NF4
 756 : 
 757 : C     IPT7.NUM(1,K7+K+1)=NC2
 758 : C     IPT7.NUM(2,K7+K+1)=NC3
 759 : C     IPT7.NUM(3,K7+K+1)=NC1
 760 : C     IPT7.NUM(4,K7+K+1)=NF2
 761 : C     IPT7.NUM(5,K7+K+1)=NF1
 762 : 
 763 : C     IPT7.NUM(1,K7+K+2)=NC3
 764 : C     IPT7.NUM(2,K7+K+2)=NC4
 765 : C     IPT7.NUM(3,K7+K+2)=NC2
 766 : C     IPT7.NUM(4,K7+K+2)=NF3
 767 : C     IPT7.NUM(5,K7+K+2)=NF2
 768 : 
 769 : C     IPT7.NUM(1,K7+K+3)=NC4
 770 : C     IPT7.NUM(2,K7+K+3)=NC1
 771 : C     IPT7.NUM(3,K7+K+3)=NC3
 772 : C     IPT7.NUM(4,K7+K+3)=NF4
 773 : C     IPT7.NUM(5,K7+K+3)=NF3
 774 : C     K7=K7+3
 775 : 
 776 :       NPI=2
 777 : 
 778 :       XYZ(1,1)=XN2
 779 :       XYZ(2,1)=YN2
 780 :       XYZ(1,2)=XN9
 781 :       XYZ(2,2)=YN9
 781 :       CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NPI,NPG,IAXI,AIR1)
 782 : 
 783 :       DF1=(XN2-XN9)**2.D0 + (YN2-YN9)**2.D0
 784 :       DF1=SQRT(DF1)
 785 :       TX1 = (XN2-XN9)/DF1
 786 :       TY1 = (YN2-YN9)/DF1
 787 : 
 788 :       XYZ(1,1)=XN4
 789 :       XYZ(2,1)=YN4
 790 :       XYZ(1,2)=XN9
 791 :       XYZ(2,2)=YN9
 791 :       CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NPI,NPG,IAXI,AIR2)
 792 : 
 793 :       DF2=(XN4-XN9)**2.D0 + (YN4-YN9)**2.D0
 794 :       DF2=SQRT(DF2)
 795 :       TX2 = (XN4-XN9)/DF2
 796 :       TY2 = (YN4-YN9)/DF2
 797 : 
 798 :       XYZ(1,1)=XN6
 799 :       XYZ(2,1)=YN6
 800 :       XYZ(1,2)=XN9
 801 :       XYZ(2,2)=YN9
 801 :       CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NPI,NPG,IAXI,AIR3)
 802 : 
 803 :       DF3=(XN6-XN9)**2.D0 + (YN6-YN9)**2.D0
 804 :       DF3=SQRT(DF3)
 805 :       TX3 = (XN6-XN9)/DF3
 806 :       TY3 = (YN6-YN9)/DF3
 807 : 
 808 :       XYZ(1,1)=XN8
 809 :       XYZ(2,1)=YN8
 810 :       XYZ(1,2)=XN9
 811 :       XYZ(2,2)=YN9
 811 :       CALL CALJBC(FN,GR,PG,XYZ,HR,PGSQ,RPG,NES,IDIM,NPI,NPG,IAXI,AIR4)
 812 : 
 813 :       DF4=(XN8-XN9)**2.D0 + (YN8-YN9)**2.D0
 814 :       DF4=SQRT(DF4)
 815 :       TX4 = (XN8-XN9)/DF4
 816 :       TY4 = (YN8-YN9)/DF4
 817 : 
 818 :       DFM=(DF1+DF2+DF3+DF4)/4.D0
 819 : C?    DF1=1.D0
 820 : C?    DF2=1.D0
 821 : C?    DF3=1.D0
 822 : C?    DF4=1.D0
 823 :       AIRM=(AIR1+AIR2+AIR3+AIR4)/4.D0
 824 : C?    AIR1=AIRM
 825 : C?    AIR2=AIRM
 826 : C?    AIR3=AIRM
 827 : C?    AIR4=AIRM
 828 : 
 829 : C     VPOCHA(KFM-3,1)=DF1*AIR1
 830 : C     VPOCHA(KFM-2,1)=DF2*AIR2
 831 : C     VPOCHA(KFM-1,1)=DF3*AIR3
 832 : C     VPOCHA(KFM  ,1)=DF4*AIR4
 833 : C
 834 : C     VPOCHA(KFM-3,2)=-TY1
 835 : C     VPOCHA(KFM-2,2)=-TY2
 836 : C     VPOCHA(KFM-1,2)=-TY3
 837 : C     VPOCHA(KFM  ,2)=-TY4
 838 : 
 839 : C     VPOCHA(KFM-3,3)= TX1
 840 : C     VPOCHA(KFM-2,3)= TX2
 841 : C     VPOCHA(KFM-1,3)= TX3
 842 : C     VPOCHA(KFM  ,3)= TX4
 843 : 
 844 : C?    MPOVA1.VPOCHA(NCTV0+K,1)=AIR1+AIR4
 845 : C?    MPOVA1.VPOCHA(NCTV0+K,2)=-AIR1
 846 : C?    MPOVA1.VPOCHA(NCTV0+K,3)=-AIR4
 847 : C?    MPOVA1.VPOCHA(NCTV0+K+1,1)=AIR2+AIR1
 848 : C?    MPOVA1.VPOCHA(NCTV0+K+1,2)=-AIR2
 849 : C?    MPOVA1.VPOCHA(NCTV0+K+1,3)=-AIR1
 850 : C?    MPOVA1.VPOCHA(NCTV0+K+2,1)=AIR3+AIR2
 851 : C?    MPOVA1.VPOCHA(NCTV0+K+2,2)=-AIR3
 852 : C?    MPOVA1.VPOCHA(NCTV0+K+2,3)=-AIR2
 853 : C?    MPOVA1.VPOCHA(NCTV0+K+3,1)=AIR4+AIR3
 854 : C?    MPOVA1.VPOCHA(NCTV0+K+3,2)=-AIR4
 855 : C?    MPOVA1.VPOCHA(NCTV0+K+3,3)=-AIR3
 856 : 
 857 :       MELSTB.NUM(1,NCSTB+K)=NC1
 858 :       MELSTB.NUM(2,NCSTB+K)=NC2
 859 :       MELSTB.NUM(3,NCSTB+K)=NC3
 860 :       MELSTB.NUM(4,NCSTB+K)=NC4
 861 : 
 862 :       MELSTB.NUM(1,NCSTB+K+1)=NC2
 863 :       MELSTB.NUM(2,NCSTB+K+1)=NC3
 864 :       MELSTB.NUM(3,NCSTB+K+1)=NC4
 865 :       MELSTB.NUM(4,NCSTB+K+1)=NC1
 866 : 
 867 :       MELSTB.NUM(1,NCSTB+K+2)=NC3
 868 :       MELSTB.NUM(2,NCSTB+K+2)=NC4
 869 :       MELSTB.NUM(3,NCSTB+K+2)=NC1
 870 :       MELSTB.NUM(4,NCSTB+K+2)=NC2
 871 : 
 872 :       MELSTB.NUM(1,NCSTB+K+3)=NC4
 873 :       MELSTB.NUM(2,NCSTB+K+3)=NC1
 874 :       MELSTB.NUM(3,NCSTB+K+3)=NC2
 875 :       MELSTB.NUM(4,NCSTB+K+3)=NC3
 876 : 
 877 : 
 878 :       H12=AIR1*DF1*GA(2)
 879 :       H13=AIRM*DFM*EPS(2)
 880 :       H14=AIR4*DF4*GA(2)
 881 :       H23=AIR2*DF2*GA(2)
 882 :       H24=AIRM*DFM*EPS(2)
 883 :       H34=AIR3*DF3*GA(2)
 884 : 
 885 :       MPOVA1.VPOCHA(NCTV0+K,1)=H12+H13+H14
 886 :       MPOVA1.VPOCHA(NCTV0+K,2)=-H12
 887 :       MPOVA1.VPOCHA(NCTV0+K,3)=-H13
 888 :       MPOVA1.VPOCHA(NCTV0+K,4)=-H14
 889 :       MPOVA1.VPOCHA(NCTV0+K+1,1)=H12+H23+H24
 890 :       MPOVA1.VPOCHA(NCTV0+K+1,2)=-H23
 891 :       MPOVA1.VPOCHA(NCTV0+K+1,3)=-H24
 892 :       MPOVA1.VPOCHA(NCTV0+K+1,4)=-H12
 893 :       MPOVA1.VPOCHA(NCTV0+K+2,1)=H13+H23+H34
 894 :       MPOVA1.VPOCHA(NCTV0+K+2,2)=-H34
 895 :       MPOVA1.VPOCHA(NCTV0+K+2,3)=-H13
 896 :       MPOVA1.VPOCHA(NCTV0+K+2,4)=-H23
 897 :       MPOVA1.VPOCHA(NCTV0+K+3,1)=H14+H24+H34
 898 :       MPOVA1.VPOCHA(NCTV0+K+3,2)=-H14
 899 :       MPOVA1.VPOCHA(NCTV0+K+3,3)=-H24
 900 :       MPOVA1.VPOCHA(NCTV0+K+3,4)=-H34
 901 :       KPOC=1
 902 :       NCTV0=NCTV0+3
 903 :       NCSTB=NCSTB+3
 904 : 
 905 :  208  CONTINUE
 906 : C     SEGDES IPT1,IPT2,IPT3
 907 :       SEGDES IPT2
 908 :       GO TO 1
 909 : 
 910 : C**************************************************************************
 911 : 
 912 : C SEG3 -> 2 SEG2
 913 :  103  CONTINUE
 914 :       NBEL=IPT1.NUM(/2)
 915 :       NP=IPT1.NUM(/1)
 916 : 
 917 :       NBPC=NBEL*2
 918 : 
 919 :       NBV0=XCOOR(/1)/(IDIM+1)
 920 :       NBPTS=NBV0+NBPC
 921 :       SEGADJ MCOORD
 922 : 
 923 :       NBELEM=2*NBEL
 924 :       NBNN=2
 925 :       NBSOUS=0
 926 :       NBREF=0
 927 :       SEGINI IPT2
 928 :       IPT2.ITYPEL=2
 929 :       IM=IM+1
 930 :       ITAB(IM)=IPT2
 931 : 
 932 : C Spg des pts centres des macro elements
 933 :       NCTR0=MCTREI.NUM(/2)
 934 :       NBELEM=NCTR0+NBPC
 935 :       NBNN=1
 936 :       NBSOUS=0
 937 :       NBREF=0
 938 :       SEGADJ MCTREI
 939 :       KCTREI=1
 940 : 
 941 :       K1=0
 942 :       DO 203 K=1,NBEL
 943 :       N1=IPT1.NUM(1,K)
 944 :       N2=IPT1.NUM(2,K)
 945 :       N3=IPT1.NUM(3,K)
 946 :       XN1=XCOOR((N1-1)*(IDIM+1)    +1)
 947 :       YN1=XCOOR((N1-1)*(IDIM+1)    +2)
 948 :       XN2=XCOOR((N2-1)*(IDIM+1)    +1)
 949 :       YN2=XCOOR((N2-1)*(IDIM+1)    +2)
 950 :       XN3=XCOOR((N3-1)*(IDIM+1)    +1)
 951 :       YN3=XCOOR((N3-1)*(IDIM+1)    +2)
 952 :       XNC1=(XN1+XN2)/2.D0
 953 :       YNC1=(YN1+YN2)/2.D0
 954 :       XNC2=(XN2+XN3)/2.D0
 955 :       YNC2=(YN2+YN3)/2.D0
 956 : 
 957 : 
 958 : CS1
 959 :       K1=K1+1
 960 :       NC1=NBV0+K1
 961 :       MCTREI.NUM(1,NCTR0+K1)=NC1
 962 :       XCOOR((NC1-1)*(IDIM+1)    +1)=XNC1
 963 :       XCOOR((NC1-1)*(IDIM+1)    +2)=YNC1
 964 : 
 965 :       IPT2.NUM(1,K1)=N1
 966 :       IPT2.NUM(2,K1)=N2
 967 : 
 968 : CS2
 969 :       K1=K1+1
 970 :       NC2=NBV0+K1
 971 :       MCTREI.NUM(1,NCTR0+K1)=NC2
 972 :       XCOOR((NC2-1)*(IDIM+1)    +1)=XNC2
 973 :       XCOOR((NC2-1)*(IDIM+1)    +2)=YNC2
 974 : 
 975 :       IPT2.NUM(1,K1)=N2
 976 :       IPT2.NUM(2,K1)=N3
 977 :  203  CONTINUE
 978 :       SEGDES IPT1,IPT2
 979 :       GO TO 1
 980 : 
 981 : 
 982 :  1    CONTINUE
 983 : C     IF(MELTFI.LISOUS(/1).EQ.1)THEN
 984 : C     MEL=MELTFI.LISOUS(1)
 985 : C     SEGSUP MELTFI
 986 : C     MELTFI=MEL
 987 : C     ENDIF
 988 : 
 989 :       IF(IM.EQ.1)THEN
 990 :       MELEME=ITAB(1)
 991 :       ELSE
 992 :       IF(IM.GT.5)THEN
 993 :       WRITE(6,*)' Problemes dans DOMA option MACRO '
 994 :       RETURN
 995 :       ENDIF
 996 :       NBELEM=0
 997 :       NBNN=0
 998 :       NBSOUS=IM
 999 :       NBREF=0
1000 :       SEGINI MELEME
1001 :       DO 2 L=1,NBSOUS
1002 :       LISOUS(L)=ITAB(L)
1003 :  2    CONTINUE
1004 :       ENDIF
1004 :       CALL ECMO(MTBT0,'MELEME','MAILLAGE',MELEME)
1005 : 
1006 : C     IF(IPT5.EQ.0.AND.IPT7.NE.0)THEN
1006 : C     CALL ECMO(MTBT0,'MELELI','MAILLAGE',IPT7  )
1007 : C     ELSEIF(IPT5.NE.0)THEN
1008 : C     NBELEM=0
1009 : C     NBNN=0
1010 : C     NBREF=0
1011 : C     NBSOUS=2
1012 : C     IF(IPT7.NE.0)NBSOUS=3
1013 : C     SEGINI MELELI
1014 : C     MELELI.LISOUS(1)=IPT5
1015 : C     MELELI.LISOUS(2)=IPT6
1016 : C     IF(IPT7.NE.0)MELELI.LISOUS(3)=IPT7
1016 : C     CALL ECMO(MTBT0,'MELELI','MAILLAGE',MELELI)
1017 : C     ENDIF
1018 : 
1019 : C Connectivités de la matrice de stabilisation
1020 : 
1021 :       IF(KSTB.NE.0)THEN
1021 :       CALL ECMO(MTBT0,'MELSTB','MAILLAGE',MELSTB)
1022 :       ELSE
1023 :       SEGSUP MELSTB
1024 :       MELSTB=0
1025 :       ENDIF
1026 : 
1027 :       IF(KCTREI.NE.0)THEN
1027 :       CALL ECMO(MTBT0,'MCTREI','MAILLAGE',MCTREI)
1028 :       IF(KPOC.NE.0)THEN
1029 :       MSOUP1.IGEOC=MCTREI
1029 :       CALL ECMO(MTBT0,'MCHPOC','CHPOINT',MCHPO1)
1030 :       ELSE
1031 :       SEGSUP MCHPO1,MSOUP1,MPOVA1
1032 :       ENDIF
1033 :       ELSE
1034 :       SEGSUP MCTREI
1035 :       MCTREI=0
1036 :       ENDIF
1037 : 
1038 : C     IF(KFACEI.NE.0)THEN
1038 : C     CALL ECMO(MTBT0,'MFACEI','MAILLAGE',MFACEI)
1039 : C     SEGDES MFACEI
1040 : C     IGEOC=MFACEI
1040 : C     CALL ECMO(MTBT0,'MCHPOF','CHPOINT',MCHPOI)
1041 : C     ELSE
1042 : C     SEGSUP MFACEI
1043 : C     MFACEI=0
1044 : C     ENDIF
1045 : 
1046 : C     IF(KFICEL.NE.0)THEN
1046 : C     CALL ECMO(MTBT0,'MFICEL','MAILLAGE',MFICEL)
1047 : C     SEGDES MFICEL
1048 : C     ELSE
1049 : C     SEGSUP MFICEL
1050 : C     MFICEL=0
1051 : C     ENDIF
1052 : 
1053 : C     IF(KELTFI.NE.0)THEN
1053 : C     CALL ECMO(MTBT0,'MELTFI','MAILLAGE',MELTFI)
1054 : C     SEGDES MELTFI
1055 : C     ELSE
1056 : C     SEGSUP MELTFI
1057 : C     MELTFI=0
1058 : C     ENDIF
1059 : 
1060 : 
1061 :       SEGDES MELEME,MACRO
1062 : 
1063 :       RETURN
1064 :       END
1065 :  
1066 :  
1067 :  
1068 :  
1069 :  
1070 :  
1071 :  
1072 :  
1073 :  
1074 :  
1075 :  
1076 :  

© Cast3M 2003 - All rights reserved.
Disclaimer