1 : C VTOP2D SOURCE PV 14/02/04 21:15:00 7940 2 : SUBROUTINE VTOP2D(meleme) 3 : IMPLICIT INTEGER(I-N) 4 : IMPLICIT REAL*8(A-H,O-Z) 5 : 6 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 7 : C 8 : C Appelée par VERMAI 9 : C 10 : C vérifie qu'il n'y a pas d'éléments de degré un accolé à un 11 : C élément de degré 2. 12 : C 13 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 14 : C 15 : C Modifications : 16 : C 17 : C P. Maugis (04/08/2005) : 18 : C on lieu de faire une erreur sur une sous-zone non pertinente, 19 : C on passe à la sous-zone suivante 20 : C 21 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 22 : -INC CCOPTIO 23 : -INC CCGEOME 24 : -INC SMELEME 25 : -INC SMCOORD 26 : C 27 : SEGMENT ICPR(XCOOR(/1)/(IDIM+1)) 28 : SEGMENT IDCP(ITE) 29 : SEGMENT INTER 30 : INTEGER INTE(NBSOUS) 31 : ENDSEGMENT 32 : SEGMENT KON(NBCON,NMAX,3) 33 : CHARACTER*6 CHAIN1 34 : CHARACTER*6 CHAIN2 35 : C 36 : IPT8=MELEME 37 : SEGACT MELEME 38 : SEGINI ICPR 39 : c 40 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 41 : C 42 : C Création d'un tableau de connexions : 43 : C comme la numérotation des noeuds est aléatoire, on 44 : C utilise un vecteur réduit (de dimension le nombre de noeuds ITE) 45 : C noté ICPR qui renumérote les noeuds. 46 : C 1 point final connecté 47 : C 2 point intermédiaire éventuel (si de deg3) et sens 48 : C 49 : C Si un point est connecté à la fois à un autre point par un 50 : C élément de degré 2 et un élément de degré 3, il apparait deux 51 : C fois dans la meme ligne du tableau. 52 : C 53 : 54 : C ICPR contient le numéro du noeud intéressant à traiter, 55 : C ou 0 s'il n'a aucune connection. 56 : ITE=0 57 : IPT1=MELEME 58 : DO 3 I=1,MAX(1,LISOUS(/1)) 59 : IF (LISOUS(/1).NE.0) THEN 60 : IPT1=LISOUS(I) 61 : SEGACT IPT1 62 : ENDIF 63 : K=IPT1.ITYPEL 64 : IF (K.EQ.KDEGRE(K)) THEN 65 : * On ne veut pas de POI1, SEG2 ni SEG3 65 : * CALL ERREUR(16) 66 : * RETURN 67 : IF (LISOUS(/1).NE.0) SEGDES IPT1 68 : GOTO 3 69 : ENDIF 70 : 71 : IDEP=NSPOS(K) 72 : IF (NBSOM(K).GT.0) THEN 73 : IFEP=IDEP+NBSOM(K)-1 74 : ELSE 75 : C Cas du polygone 76 : IFEP=IDEP+IPT1.NUM(/1)-1 77 : ENDIF 78 : IF (IDEP.GT.IFEP) THEN 79 : write(IOIMP,*) 'Une face doit avoir au moins 3 points' 79 : CALL ERREUR (16) 80 : RETURN 81 : ENDIF 82 : 83 : DO 4 JJ=IDEP,IFEP 84 : J=IBSOM(JJ) 85 : DO 7 K=1,IPT1.NUM(/2) 86 : IPOIT=IPT1.NUM(J,K) 87 : IF (ICPR(IPOIT).NE.0) GOTO 7 88 : ITE=ITE+1 89 : ICPR(IPOIT)=ITE 90 : 7 CONTINUE 91 : 4 CONTINUE 92 : IF (LISOUS(/1).NE.0) SEGDES IPT1 93 : 3 CONTINUE 94 : SEGDES MELEME 95 : C 96 : IF (ITE.EQ.0) THEN 97 : * Aucun element n a de point sommet 98 : SEGSUP ICPR 98 : * CALL ERREUR(16) 99 : RETURN 100 : ENDIF 101 : C 102 : C on initialise le tableau de connexions 103 : C on définit les paramètres 104 : C 105 : NBCON=7 106 : NBCONR=NBCON-1 107 : NMAX=(10*ITE)/NBCON 108 : SEGINI KON 109 : C 110 : C Mise à zéro du tableau kon 111 : C 112 : DO 10 K=1,3 113 : DO 10 I=1,NMAX 114 : DO 10 J=1,NBCON 115 : 10 KON(J,I,K)=0 116 : C 117 : C 118 : C on remplit le tableau : 119 : C la 1ère coordonnée est le n° du noeud final 120 : C la 2ème est le n° du noeud intermédiare éventuel 121 : C (sinon 1) et le sens (signe) 122 : C la 3ème code la couleur 123 : C 124 : ICHAIN=ITE 125 : SEGACT MELEME 126 : IPT1=MELEME 127 : K1=0 128 : K2=0 129 : NBSOUS=LISOUS(/1)+1 130 : SEGINI INTER 131 : IF (LISOUS(/1).NE.0) THEN 132 : DO 300 IO=1,LISOUS(/1) 133 : IPT2=LISOUS(IO) 134 : SEGACT IPT2 135 : K=IPT2.ITYPEL 136 : SEGDES IPT2 137 : IF (K.EQ.KDEGRE(K)) THEN 138 : * On ne veut pas de POI1, SEG2 ni SEG3 138 : * CALL ERREUR(16) 139 : * RETURN 140 : GOTO 300 141 : ENDIF 142 : 143 : C LE NOMBRE DE FACE EST 1 QUEL EST SON TYPE 144 : C 145 : C ON ORDONNE LES SOUS OBJETS : LES SOUS OBJ DE DEGRE 3 D'ABORD 146 : C LES AUTRES ENSUITES 147 : NBNN=KDEGRE(K) 148 : IF (NBNN.EQ.3) THEN 149 : K1=K1+1 150 : INTE(K1)=LISOUS(IO) 151 : ELSE 152 : K2=K2+1 153 : INTE(LISOUS(/1)-K2+1)=LISOUS(IO) 154 : ENDIF 155 : 21 CONTINUE 156 : 300 CONTINUE 157 : ELSE 158 : INTE(1)=MELEME 159 : ENDIF 160 : 161 : DO 30 IO=1,MAX(1,LISOUS(/1)) 162 : IPT1=INTE(IO) 163 : SEGACT IPT1 164 : K=IPT1.ITYPEL 165 : IF (K.EQ.KDEGRE(K)) THEN 166 : * On ne veut pas de POI1, SEG2 ni SEG3 166 : * CALL ERREUR(16) 167 : * RETURN 168 : IF (LISOUS(/1).NE.0) SEGDES IPT1 169 : GOTO 30 170 : ENDIF 171 : 172 : NBFA=LTEL(1,K) 173 : IF (NBFA.EQ.0) THEN 174 : * données incompatibles 175 : * Ces elements n'ont pas de face. 175 : * CALL ERREUR(21) 176 : * RETURN 177 : GOTO 30 178 : ENDIF 179 : 180 : KK=LTEL(2,K) 181 : NBNN=KDEGRE(K) 182 : IPAS=NBNN-1 183 : DO 301 K1=1,NBFA 184 : ITYP=LDEL(1,KK+K1-1) 185 : IDEP=LDEL(2,KK+K1-1) 186 : IF (ITYP.NE.6) THEN 187 : IFEP=IDEP+KDFAC(1,ITYP)-1 188 : ELSE 189 : C Cas du polygone 190 : IFEP= IDEP+IPT1.NUM(/1)-1 191 : ENDIF 192 : DO 22 I=1,IPT1.NUM(/2) 193 : DO 22 J=IDEP,IFEP,IPAS 194 : NMIL=1 195 : N1=ICPR(IPT1.NUM(LFAC(J),I)) 196 : JSUIV=J+IPAS 197 : IF (JSUIV.GT.IFEP) JSUIV=IDEP 198 : N2=ICPR(IPT1.NUM(LFAC(JSUIV),I)) 199 : IF (IPAS.EQ.2) THEN 200 : NMIL=IPT1.NUM(LFAC(J+1),I) 201 : IF (ICPR(NMIL).NE.0) THEN 202 : NMIL=ICPR(NMIL) 203 : ELSE 204 : NMIL=0 205 : ENDIF 206 : ENDIF 207 : NI=N1 208 : NJ=N2 209 : IF ((N1.EQ.0).OR.(N2.EQ.0)) THEN 210 : * Tache impossible. Probablement données erronées 210 : CALL ERREUR(26) 211 : SEGSUP KON,ICPR 212 : SEGDES MELEME 213 : RETURN 214 : ENDIF 215 : KSCOL=IPT1.ICOLOR(I) 216 : IPO=0 217 : 23 CONTINUE 218 : KINT=1 219 : 220 : 251 CONTINUE 221 : 24 DO 25 K=KINT,NBCONR 222 : IF (KON(K,NI,1).EQ.0) GOTO 26 223 : IF (KON(K,NI,1).EQ.NJ) GOTO 27 224 : 25 CONTINUE 225 : 226 : IF (KON(NBCON,NI,1).EQ.0) GOTO 28 227 : NI=KON(NBCON,NI,1) 228 : KINT=1 229 : GOTO 24 230 : 27 IF (ABS(NMIL).EQ.1) THEN 231 : IF (ABS(KON(K,NI,2)).NE.1) THEN 232 : KINT=K+1 233 : GOTO 251 234 : ENDIF 235 : ENDIF 236 : GOTO 29 237 : 238 : 26 KON(K,NI,1)=NJ 239 : KON(K,NI,2)=NMIL 240 : KON(K,NI,3)=KSCOL 241 : GOTO 29 242 : 243 : 28 ICHAIN=ICHAIN+1 244 : IF (ICHAIN.GE.NMAX) THEN 245 : NMAX = NMAX * 2 246 : SEGADJ KON 247 : ENDIF 248 : KON(NBCON,NI,1)=ICHAIN 249 : K=1 250 : NI=ICHAIN 251 : GOTO 26 252 : 253 : 29 IF (IPO.EQ.1) GOTO 22 254 : NMIL=-NMIL 255 : NI=N2 256 : NJ=N1 257 : IPO=1 258 : GOTO 23 259 : 22 CONTINUE 260 : 301 CONTINUE 261 : SEGDES IPT1 262 : 30 CONTINUE 263 : 264 : SEGSUP INTER 265 : IF (IIMPI.EQ.2) THEN 266 : WRITE (IOIMP,1122) 267 : # (((KON(I,J,K),K=1,2),I=1,NBCON),J=1,NMAX) 268 : 1122 FORMAT(1X,14I5) 269 : ENDIF 270 : SEGDES MELEME 271 : C 272 : C 273 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 274 : C 275 : C 276 : C Création de idcp 277 : C Vecteur permettant de revenir à la numérotation initiale 278 : C 279 : SEGINI IDCP 280 : DO 40 I=1,ICPR(/1) 281 : IF (ICPR(I).EQ.0) GOTO 40 282 : IDCP(ICPR(I))=I 283 : 40 CONTINUE 284 : SEGSUP ICPR 285 : C 286 : CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 287 : C 288 : C ECRITURE DE L'AVERTISSEMENT 289 : C 290 : C Deux cas de figures possibles : 291 : C un élément de degré 3 et un élément de degré 2 sont 292 : C connectés par leus extrémités (ITEST1) 293 : C deux éléments de degré 2 sont connectés aux trois 294 : C points d'un élément de degré 3 295 : C 296 : C 297 : NNOEUD=0 298 : DO 50 NI=1,ITE 299 : C 300 : C Recherche du nombre de connexions d'un noeud et des numéros de lignes 301 : C où sont stockées les n° des noeuds connectés 302 : C 303 : C COMPTEUR compte le nombre de lignes utilisées pour enregistrer le 304 : C nombre de noeuds connectés au noeud n° NI 305 : C 306 : C NKON est le nombre de noeuds connectés dans la dernière ligne 307 : C 308 : NINT=NI 309 : icompt=1 310 : 311 : 90 CONTINUE 312 : iAD=KON(NBCON,NINT,1) 313 : IF (iAD.NE.0) THEN 314 : NINT=iAD 315 : INTEG=icompt 316 : icompt=INTEG+1 317 : GOTO 90 318 : ELSE 319 : J=0 320 : 91 CONTINUE 321 : J=J+1 322 : IF (KON(J,NINT,1).NE.0) THEN 323 : GOTO 91 324 : ENDIF 325 : NKON=J-1 326 : ENDIF 327 : C 328 : C Recherche du dernier noeud qui constitue un élément de degré 3 329 : C 330 : I=0 331 : NINT=NI 332 : 333 : 92 CONTINUE 334 : I=I+1 335 : jcompt=-1 336 : IF (I.LE.icompt) THEN 337 : J=0 338 : 93 CONTINUE 339 : J=J+1 340 : IF (J.LE.NBCONR) THEN 341 : IF (KON(J,NINT,1).EQ.0) GOTO 50 342 : IF (ABS(KON(J,NINT,2)).NE.1) GOTO 93 343 : NCOMPT=NINT 344 : jcompt=J-1 345 : ELSE 346 : NINT=KON(NBCON,NINT,1) 347 : GOTO 92 348 : ENDIF 349 : ENDIF 350 : C 351 : C Lecture du tableau de connexions et comparaison 352 : C 353 : C CAS OU LES ELEMENTS ONT LA MEME TAILLE 354 : C 355 : iadi=NI 356 : IF (I.EQ.1) GOTO 100 357 : DO 52 LI=1,I-1 358 : DO 53 J=1,NBCONR 359 : ITEST1=KON(J,iadi,1) 360 : ITEST2=KON(J,iadi,2) 361 : IF (ITEST2.LT.0) GOTO 53 362 : JJ=jcompt 363 : IF (I.EQ.icompt) GOTO 98 364 : if (jcompt.lt.0) goto 53 365 : 94 CONTINUE 366 : JJ=JJ+1 367 : IF (JJ.LE.NBCONR) THEN 368 : IF (KON(JJ,NCOMPT,2).LT.0) GOTO 94 369 : IF (ITEST1.NE.KON(JJ,NCOMPT,1)) GOTO 94 370 : ipoin1=IDCP(NI) 371 : ipoin2=IDCP(ITEST1) 371 : CALL ETEST1(ipoin1,ipoin2,NNOEUD) 372 : IDCP(NI)=ipoin1 373 : IDCP(ITEST1)=ipoin2 374 : GOTO 53 375 : ENDIF 376 : C 377 : C Cas où il ya plus de deux lignes de connections pour un noeud 378 : C 379 : NINT=NCOMPT 380 : IF (I.LE.icompt-1) THEN 381 : II=I 382 : 96 CONTINUE 383 : II=II+1 384 : NINT=KON(NBCON,NINT,1) 385 : IF (II.LE.icompt-1) THEN 386 : JJ=0 387 : 97 CONTINUE 388 : JJ=JJ+1 389 : IF (JJ.LE.NBCONR) THEN 390 : IF (KON(JJ,NINT,2).LT.0) GOTO 97 391 : IF (ITEST1.NE.KON(JJ,NINT,1)) GOTO 97 392 : ipoin1=IDCP(NI) 393 : ipoin2=IDCP(ITEST1) 393 : CALL ETEST1(ipoin1,ipoin2,NNOEUD) 394 : IDCP(NI)=ipoin1 395 : IDCP(ITEST1)=ipoin2 396 : GOTO 53 397 : ENDIF 398 : GOTO 96 399 : ENDIF 400 : ENDIF 401 : C 402 : C On finit de lire la ligne 403 : C 404 : NINT=KON(NBCON,NINT,1) 405 : JJ=0 406 : 98 CONTINUE 407 : JJ=JJ+1 408 : IF (JJ.LE.NKON) THEN 409 : IF (KON(JJ,NINT,2).LT.0) GOTO 98 410 : IF (ITEST1.NE.KON(JJ,NINT,1)) GOTO 98 411 : ipoin1=IDCP(NI) 412 : ipoin2=IDCP(ITEST1) 412 : CALL ETEST1(ipoin1,ipoin2,NNOEUD) 413 : IDCP(NI)=ipoin1 414 : IDCP(ITEST1)=ipoin2 415 : GOTO 53 416 : ENDIF 417 : 53 CONTINUE 418 : iadi=KON(NBCON,iadi,1) 419 : 52 CONTINUE 420 : C 421 : C 422 : 100 CONTINUE 423 : DO 54 J=1,jcompt 424 : ITEST1=KON(J,NCOMPT,1) 425 : ITEST2=KON(J,NCOMPT,2) 426 : IF (ITEST2.LT.0) GOTO 54 427 : JJ=jcompt 428 : IF (I.EQ.icompt) GOTO 198 429 : 194 CONTINUE 430 : JJ=JJ+1 431 : IF (JJ.LE.NBCONR) THEN 432 : IF (KON(JJ,NCOMPT,2).LT.0) GOTO 194 433 : IF (ITEST1.NE.KON(JJ,NCOMPT,1)) GOTO 194 434 : ipoin1=IDCP(NI) 435 : ipoin2=IDCP(ITEST1) 435 : CALL ETEST1(ipoin1,ipoin2,NNOEUD) 436 : IDCP(NI)=ipoin1 437 : IDCP(ITEST1)=ipoin2 438 : GOTO 54 439 : ENDIF 440 : C 441 : C Cas où il ya plus de deux lignes de connections pour un noeud 442 : C 443 : NINT=NCOMPT 444 : IF (I.LT.icompt-1) THEN 445 : 446 : II=I 447 : 196 CONTINUE 448 : II=II+1 449 : NINT=KON(NBCON,NINT,1) 450 : IF (II.LE.icompt-1) THEN 451 : JJ=0 452 : 197 CONTINUE 453 : JJ=JJ+1 454 : IF (JJ.LE.NBCONR) THEN 455 : IF (KON(JJ,NINT,2).LT.0) GOTO 197 456 : IF (ITEST1.NE.KON(JJ,NINT,1)) GOTO 197 457 : ipoin1=IDCP(NI) 458 : ipoin2=IDCP(ITEST1) 458 : CALL ETEST1(ipoin1,ipoin2,NNOEUD) 459 : IDCP(NI)=ipoin1 460 : IDCP(ITEST1)=ipoin2 461 : GOTO 54 462 : ENDIF 463 : GOTO 196 464 : ENDIF 465 : ENDIF 466 : C 467 : C On finit de lire la ligne 468 : C 469 : 470 : NINT=KON(NBCON,NINT,1) 471 : JJ=0 472 : 198 CONTINUE 473 : JJ=JJ+1 474 : IF (JJ.LE.NKON) THEN 475 : IF (KON(JJ,NINT,2).LT.0) GOTO 198 476 : IF (ITEST1.NE.KON(JJ,NINT,1)) GOTO 198 477 : ipoin1=IDCP(NI) 478 : ipoin2=IDCP(ITEST1) 478 : CALL ETEST1(ipoin1,ipoin2,NNOEUD) 479 : IDCP(NI)=ipoin1 480 : IDCP(ITEST1)=ipoin2 481 : GOTO 54 482 : ENDIF 483 : 54 CONTINUE 484 : C 485 : C CAS OU IL Y A DEUX SEG2 POUR UN SEG3 486 : C 487 : iadi=NI 488 : IF (I.EQ.1) GOTO 200 489 : DO 252 LI=1,I-1 490 : DO 253 J=1,NBCONR 491 : ITEST1=KON(J,iadi,1) 492 : ITEST2=KON(J,iadi,2) 493 : IF (ITEST2.LE.0) GOTO 253 494 : JJ=jcompt 495 : WRITE(IOIMP, *)I 496 : WRITE(IOIMP,*)icompt 497 : IF (I.EQ.icompt) GOTO 298 498 : 294 CONTINUE 499 : JJ=JJ+1 500 : IF (JJ.LE.NBCONR) THEN 501 : IF (ITEST2.NE.KON(JJ,NCOMPT,1)) GOTO 294 502 : ipoin1=IDCP(NI) 503 : ipoin2=IDCP(ITEST2) 504 : ipoin3=IDCP(ITEST1) 504 : CALL ETEST2(ipoin1,ipoin2,ipoin3,NNOEUD) 505 : IDCP(NI)=ipoin1 506 : IDCP(ITEST2)=ipoin2 507 : IDCP(ITEST1)=ipoin3 508 : GOTO 253 509 : ENDIF 510 : C 511 : C Cas où il ya plus de deux lignes de connections pour un noeud 512 : C 513 : NINT=NCOMPT 514 : IF (I.LE.icompt-1) THEN 515 : II=I 516 : 296 CONTINUE 517 : II=II+1 518 : NINT=KON(NBCON,NINT,1) 519 : IF (II.LE.icompt-1) THEN 520 : JJ=0 521 : 297 CONTINUE 522 : JJ=JJ+1 523 : IF (JJ.LE.NBCONR) THEN 524 : IF (ABS(ITEST2).NE.KON(JJ,NINT,1)) GOTO 297 525 : ipoin1=IDCP(NI) 526 : ipoin2=IDCP(ITEST2) 527 : ipoin3=IDCP(ITEST1) 527 : CALL ETEST2(ipoin1,ipoin2,ipoin3,NNOEUD) 528 : IDCP(NI)=ipoin1 529 : IDCP(ITEST2)=ipoin2 530 : IDCP(ITEST1)=ipoin3 531 : GOTO 253 532 : ENDIF 533 : GOTO 296 534 : ENDIF 535 : ENDIF 536 : C 537 : C On finit de lire la ligne 538 : C 539 : NINT=KON(NBCON,NINT,1) 540 : JJ=0 541 : 298 CONTINUE 542 : JJ=JJ+1 543 : IF (JJ.LE.NKON) THEN 544 : IF (ABS(ITEST2).NE.KON(JJ,NINT,1)) GOTO 298 545 : ipoin1=IDCP(NI) 546 : ipoin2=IDCP(ITEST2) 547 : ipoin3=IDCP(ITEST1) 547 : CALL ETEST2(ipoin1,ipoin2,ipoin3,NNOEUD) 548 : IDCP(NI)=ipoin1 549 : IDCP(ITEST2)=ipoin2 550 : IDCP(ITEST1)=ipoin3 551 : GOTO 253 552 : ENDIF 553 : 253 CONTINUE 554 : iadi=KON(NBCON,iadi,1) 555 : 252 CONTINUE 556 : C 557 : C 558 : 200 CONTINUE 559 : DO 254 J=1,jcompt 560 : ITEST1=KON(J,NCOMPT,1) 561 : ITEST2=KON(J,NCOMPT,2) 562 : IF (ITEST2.LT.0) GOTO 254 563 : JJ=jcompt 564 : IF (I.EQ.icompt) GOTO 398 565 : 394 CONTINUE 566 : JJ=JJ+1 567 : IF (JJ.LE.NBCONR) THEN 568 : IF (ABS(ITEST2).NE.KON(JJ,NCOMPT,1)) GOTO 394 569 : ipoin1=IDCP(NI) 570 : ipoin2=IDCP(ITEST2) 571 : ipoin3=IDCP(ITEST1) 571 : CALL ETEST2(ipoin1,ipoin2,ipoin3,NNOEUD) 572 : IDCP(NI)=ipoin1 573 : IDCP(ITEST2)=ipoin2 574 : IDCP(ITEST1)=ipoin3 575 : GOTO 254 576 : ENDIF 577 : C 578 : C Cas où il y a plus de deux lignes de connections pour un noeud 579 : C 580 : NINT=NCOMPT 581 : IF (I.LT.icompt-1) THEN 582 : II=I 583 : 396 CONTINUE 584 : II=II+1 585 : NINT=KON(NBCON,NINT,1) 586 : IF (II.LE.icompt-1) THEN 587 : JJ=0 588 : 397 CONTINUE 589 : JJ=JJ+1 590 : IF (JJ.LE.NBCONR) THEN 591 : IF (ABS(ITEST2).NE.KON(JJ,NINT,1)) GOTO 397 592 : ipoin1=IDCP(NI) 593 : ipoin2=IDCP(ITEST2) 594 : ipoin3=IDCP(ITEST1) 594 : CALL ETEST2(ipoin1,ipoin2,ipoin3,NNOEUD) 595 : IDCP(NI)=ipoin1 596 : IDCP(ITEST2)=ipoin2 597 : IDCP(ITEST1)=ipoin3 598 : GOTO 254 599 : ENDIF 600 : GOTO 396 601 : ENDIF 602 : ENDIF 603 : C 604 : C On finit de lire la ligne 605 : C 606 : NINT=KON(NBCON,NINT,1) 607 : JJ=0 608 : 398 CONTINUE 609 : JJ=JJ+1 610 : IF (JJ.LE.NKON) THEN 611 : IF (ABS(ITEST2).NE.KON(JJ,NINT,1)) GOTO 398 612 : ipoin1=IDCP(NI) 613 : ipoin2=IDCP(ITEST2) 614 : ipoin3=IDCP(ITEST1) 614 : CALL ETEST2(ipoin1,ipoin2,ipoin3,NNOEUD) 615 : IDCP(NI)=ipoin1 616 : IDCP(ITEST2)=ipoin2 617 : IDCP(ITEST1)=ipoin3 618 : GOTO 254 619 : ENDIF 620 : 254 CONTINUE 621 : 622 : 50 CONTINUE 623 : 624 : SEGSUP KON,IDCP 625 : END 626 : 627 : 628 : 629 : 630 : 631 : 632 : 633 : 634 : 635 : 636 : 637 : 638 : 639 : 640 :
© Cast3M 2003 - All rights reserved.
Disclaimer