doubl3
C DOUBL3 SOURCE BP208322 16/11/18 21:16:31 9177 C---------------------------------------------------- C C ELIMINATION DES ÉLÉMENTS EN DOUBLON D'UN MAILLAGE C C---------------------------------------------------- C C Création : tiré originellement de coupe.eso C C Modification : Pascal Maugis 28/7/2005 C Extension à des occurences multiples et non simplement doubles C C---------------------------------------------------- C C Appelé par DOUBL2 C C Entrée : C MELEME : élémentaire ACTIVE C NBELEM C NBNN C C C Sortie C MELEME : modifié ACTIVE C C---------------------------------------------------- IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC PPARAM -INC CCOPTIO -INC CCGEOME -INC SMELEME -INC SMLENTI C LOGICAL BAVARD C C tri préalable des points de chaque éléments surfaciques C selon la somme des numéros de noeud C SEGACT,MELEME*MOD JG=NBELEM SEGINI,MLENT1,MLENTI DO IE2=1,NBELEM MLENTI.LECT(IE2)=IE2 MLENT1.LECT(IE2)=0 DO IE3=1,NBNN MLENT1.LECT(IE2)=MLENT1.LECT(IE2)+NUM(IE3,IE2) ENDDO ENDDO SEGINI,MLENT2=MLENTI C * Quand on trouve une occurence multiple, * on permute les indices dans la liste MLENTI.LECT > MLENT1.LECT,MLENT2.LECT,MLENTI.LECT) C C REECRITURE DE LA SOUS-ZONE RESULTAT ITYP=MELEME.ITYPEL MBELEM=0 DO IE2=1,NBELEM LIE2=LECT(IE2) IF(LIE2.NE.0)THEN IF(LIE2.NE.IE2)THEN * tous les doublons de cet élément seront ignorés au prochain passage NDBL = 0 LIE4 = LIE2 DO WHILE (LIE4.NE.IE2) NDBL = NDBL + 1 IE5=LIE4 LIE5=LECT(IE5) LECT(IE5)=0 IF (BAVARD) & write(IOIMP,*) ' maille ',IE5,' supprimee' * on passe au doublon suivant LIE4=LIE5 ENDDO IF (BAVARD) & write(IOIMP,*) 'AVERTISSEMENT : maille ',NOMS(ITYP), & ' numero ',IE2,' en ',(NDBL+1),' exemplaires.' ENDIF * écriture de la nouvelle maille au nouvel emplacement MBELEM=MBELEM+1 DO IE3=1,NBNN NUM(IE3,MBELEM) = NUM(IE3,IE2) ENDDO ICOLOR(MBELEM) = ICOLOR(IE2) ENDIF ENDDO C On tronquera la fin du maillage contenant les doublons NBELEM=MBELEM NBSOUS=0 NBREF=LISREF(/1) SEGADJ,MELEME SEGSUP,MLENTI,MLENT1,MLENT2 C RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales