1 : C APAT3 SOURCE CHAT 05/01/12 21:22:35 5004 2 : SUBROUTINE APAT3(X,XELTRI,IELEM,IARTRI,INOTRI,TLI) 3 : C 4 : C********************************************************************** 5 : C 6 : C OBJET : CE SOUS-PROGRAMME RECHERCHE L'APPARTENANCE D'UN POINT 7 : C ----- A UN TRI3 8 : C 9 : C ARGUMENTS: 10 : C --------- 11 : C 12 : C ENTREE : IDIM = DIMENSION DE L'ESPACE 13 : C X = TABLEAU DES COORDONNEES DU POINT 14 : C XELTRI = TABLEAU DES COORDONNEES DU TRI3 15 : C 16 : C SORTIE : IELEM = 0 SI LE POINT N'APPARTIENT PAS A L'ELEMENT 17 : C = 1 SI LE POINT APPARTIENT A L'ELEMENT 18 : C IARTRI = 0 SI LE POINT N'APPARTIENT PAS A UNE ARETE 19 : C = N NUMERO DE L'ARETE SINON 20 : C INOTRI = 0 SI LE POINT N'APPARTIENT PAS A UN NOEUD 21 : C = N NUMERO DU NOEUD SINON 22 : C 23 : C*********************************************************************** 24 : C 25 : IMPLICIT INTEGER(I-N) 26 : IMPLICIT REAL*8 (A-H,O-Z) 27 : DIMENSION X(1),XELTRI(2,1),IART(3) 28 : DIMENSION TLI(3) 29 : C 30 : DATA IART/2,3,1/ 31 : C IART numero local de l arete opose au noeud I 32 : C 33 : IDIM=2 34 : IELEM=0 35 : IARTRI=0 36 : INOTRI=0 37 : NOEU=3 38 : C EPS=1.D-5 39 : EPS=1.D-10 40 : UN=1.D0+EPS 41 : C 42 : C*** CALCUL DES COORDONNEES BARYCENTRIQUES 43 : C 43 : CALL COBAR3(X,XELTRI,TLI) 44 : C 45 : C 46 : IF(TLI(1).LT.-EPS.OR.TLI(1).GT.UN)GO TO 9999 47 : IF(TLI(2).LT.-EPS.OR.TLI(2).GT.UN)GO TO 9999 48 : IF(TLI(3).LT.-EPS.OR.TLI(3).GT.UN)GO TO 9999 49 : C LE POINT APPARTIENT A L ELEMENT 50 : IELEM=1 51 : 52 : C*** RECHERCHE DE L'APPARTENANCE A UNE ARETE 53 : C 54 : DO 50 I=1,NOEU 55 : IARTRI=IART(I) 56 : VAL=ABS(TLI(I)) 57 : IF(VAL.LE.EPS) GO TO 60 58 : 50 CONTINUE 59 : IARTRI=0 60 : GO TO 9999 61 : C 62 : C*** RECHERCHE DE L'APPARTENANCE A UN NOEUD DE L'ARETE 63 : C 64 : 60 CONTINUE 65 : DO 70 I=1,3 66 : INOTRI=I 67 : VAL=ABS(TLI(INOTRI)-1.D0) 68 : IF(VAL.LE.EPS) GO TO 9999 69 : 70 CONTINUE 70 : INOTRI=0 71 : 9999 RETURN 72 : END 73 :
© Cast3M 2003 - All rights reserved.
Disclaimer