smadet
C SMADET SOURCE CHAT 06/03/29 21:34:16 5360 > NOEMAX,IT1,N,ISOMP,NBSOMP,iarr) C ***************************************************************** C OBJET : DETRUIT 1 ELEMENTS D'UN MAILLAGE C EN ENTREE: C IDE : (1..3) DIMENSION DES ELEMENTS C ITRNOE: LES NOEUDS DES ELEMENTS C NBNMAX : (2..8) NOMBRE DE NOEUDS MAXIMUM DES ELEMENTS C ITRTRI: LES VOISINS DES ELEMENTS C NBCMAX : (2..6) NOMBRE DE COTES MAXIMUM DES ELEMENTS C NBE : NOMBRE D'ELEMENTS DU MAILLAGE C NOEMAX MISE A JOUR DE NOETRI SI NON NUL C IT1 : L'ELEMENTS A DETRUIRE C N : NOMBRE DE NOEUDS DE L'ELEMENT IT1 C EN SORTIE: C ITRNOE: MIS A JOUR C ITRTRI: MIS A JOUR C NOETRI : MIS A JOUR C iarr : CODE D'ERREUR 0 => OK C -1 => DONNEES INCOHERENTES C CONDITION D'APPLICATION : TOUT MAILLAGE AVEC UNE RESTRICTION C LA DESTRUCTION DE LA MAILLE NE DOIT PAS CREER DE SINGULARITES C SUR LA FRONTIERE (SINON NOETRI() N'EST PLUS VALIDE). C C ***************************************************************** IMPLICIT INTEGER(I-N) INTEGER IDE,ITRNOE(*),NBNMAX,ITRTRI(*),NBCMAX,NOETRI(*),NBE INTEGER NOEMAX, IT1, N, ISOMP(*), NBSOMP, iarr C INTEGER I,J,ITR,NBFAC,IFAC(4) INTEGER STRKFS EXTERNAL STRKFS C iarr = 0 IF((IT1.LT.1).OR.(IT1.GT.NBE))THEN iarr = -1 GO TO 999 ENDIF C C ---- MISE A JOUR DES NOEUDS FAISANT REFERENCE A IT1 --- C IF( NOEMAX.NE.0 )THEN DO 20 I=1,NBNMAX IF( NOETRI(ITRNOE((IT1-1)*NBNMAX+I)) .EQ. IT1 )THEN DO 5 J=1,NBFAC ITR = ITRTRI((IT1-1)*NBCMAX+IFAC(J)) IF(ITR.NE.0)GO TO 10 5 CONTINUE C --- UN SOMMET EST PERDU --- NBSOMP = NBSOMP+1 ISOMP(NBSOMP) = ITRNOE((IT1-1)*NBNMAX+I) 10 NOETRI(ITRNOE((IT1-1)*NBNMAX+I)) = ITR ENDIF 20 CONTINUE ENDIF C C ---- MISE A JOUR DES ELEMENTS VOISINS DE IT1 --- C DO 30 I=1,NBCMAX ITR = ITRTRI((IT1-1)*NBCMAX+I) IF(ITR.NE.0)THEN IF( ITR .LT. 0 )ITR = - ITR DO 40 J=1,NBCMAX IF((ITRTRI((ITR-1)*NBCMAX+J).EQ.IT1) .OR. > (ITRTRI((ITR-1)*NBCMAX+J).EQ.-IT1) )THEN ITRTRI((ITR-1)*NBCMAX+J) = 0 GO TO 30 ENDIF 40 CONTINUE C --- IL Y A UN BUG DANS LA STRUCTURE --- iarr = -2 GO TO 999 ENDIF 30 CONTINUE C ---------- INITIALISATION DE IT1 ---------- DO 90 I=1,NBCMAX ITRTRI((IT1-1)*NBCMAX+I)=0 90 CONTINUE DO 100 I=1,NBNMAX ITRNOE((IT1-1)*NBNMAX+I)=0 100 CONTINUE C ------------------ 999 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales