1 : C ARETE3 SOURCE PV 09/01/08 21:15:16 6254 2 : SUBROUTINE ARETE3 (TS,ISEG,TN,INOR,CANGLE,NBSEG) 3 : 4 : * APPELE PAR ARETE 5 : * ELIMINE LES SEG2 PAR COMPARAISON D'ANGLE 6 : * 7 : *------------------------------------------------------------------- 8 : * 9 : * VARIABLES PRINCIPALES : 10 : * --------------------- 11 : * 12 : * TSEG : SEGMENT 2 DIMENSIONS CONTENANT 13 : * 14 : * | A TRACER (= 0 NON, =1 OUI) | 15 : * | COULEUR | 16 : * | N› NOEUD MIN | 17 : * | N› NOEUD MAX | 18 : * | ENTREES DANS TSEG | 19 : * 20 : * TNOR : SEGMENT 2 DIMENSIONS CONTENANT LES NORMALES A COMPARER 21 : * POUR CHAQUE FACE ELEMENTAIRE 22 : * 23 : * ISEG : TAILLE REELLE DU SEGMENT TSEG 24 : * INOR : TAILLE REELLE DU SEGMENT TNOR 25 : * 26 : *-------------------------------------------------------------------- 27 : * AUTEUR : J.BRUN (JUIN 90) 28 : 29 : IMPLICIT INTEGER(I-N) 30 : IMPLICIT REAL*8 (A-H,O-Y) 31 : IMPLICIT LOGICAL (Z) 32 : SEGMENT TN 33 : REAL*8 TNOR (N1,3) 34 : ENDSEGMENT 35 : SEGMENT TS 36 : INTEGER TSEG (M1,M2) 37 : ENDSEGMENT 38 : 39 : NBSEG=0 40 : DO 1 I=1,ISEG 41 : 42 : * DEMANDE TRACER SEGMENT NON PARTAGE ENTRE 2 ELEMENTS 43 : IF (TSEG(I,6).EQ.0) THEN 44 : NBSEG=NBSEG+1 45 : TSEG(I,1)=1 46 : ELSE 47 : J=5 48 : ZFINI=.FALSE. 49 : * RECHERCHE LE NB DE NORMALE ASSOCIEE A UN SEGMENT 50 : 2 J=J+1 51 : ZFINI=(TSEG(I,J+1).EQ.0) 52 : IF (.NOT.((J.EQ.TSEG(/2)).OR.(ZFINI))) GOTO 2 53 : * COMPARE LES NORMALES 2 A 2 ET S'ARRETE S'IL DOIT TRACER 54 : 55 : 56 : DO 3 K=5,J 57 : 58 : DO 4 KK=K+1,J 59 : 60 : CBIS=TNOR(TSEG(I,K),1)*TNOR(TSEG(I,KK),1) 61 : . +TNOR(TSEG(I,K),2)*TNOR(TSEG(I,KK),2) 62 : . +TNOR(TSEG(I,K),3)*TNOR(TSEG(I,KK),3) 63 : IF (CBIS.LT.0D0) CBIS=-CBIS 64 : IF (CBIS.LT.CANGLE) THEN 65 : TSEG(I,1)=1 66 : NBSEG=NBSEG+1 67 : GOTO 1 68 : ENDIF 69 : 4 CONTINUE 70 : 3 CONTINUE 71 : ENDIF 72 : 1 CONTINUE 73 : RETURN 74 : END 75 : 76 : 77 :
© Cast3M 2003 - All rights reserved.
Disclaimer