Numérotation des lignes :

1. C GORIEN SOURCE CHAT 05/01/13 00:19:04 5004
2. C
3. C
4. INTEGER FUNCTION GORIEN(IT, N, C, IDIMC, ZERO )
5. C *****************************************************************
6. C OBJET : RENVOI L'ORIENTATION DE L'ELEMENT +1 SI POSITIF
7. C -1 SI NEGATIF, 0 SI NUL
8. C EN ENTREE :
9. C IT : NUMERO DES NOEUDS DE L'ELEMENT
10. C N : NOMBRE DE NOEUDS DE L'ELEMENT
11. C C : COORDONNEES DES NOEUDS
12. C IDIMC : DIMENSION DE L'ESPACE
13. C ZERO : SURFACE CONSIDEREE COMME NULLE
14. C CONDITIONS D'APPLICATIONS : N'A PAS DE SENS SI LA DIMENSION DE
15. C L'ELEMENT EST INFERIEURE A LA DIMENSION DE L'ESPACE
16. C POUR ORIENTER UN QUADRANGLE IL SUFFIT DE DONNER LE
17. C PREMIER TRIANGLE.
18. C *****************************************************************
19. IMPLICIT INTEGER(I-N)
20. INTEGER IT(*),N,IDIMC
21. REAL*8 C(*), ZERO
22. C
23. DIMENSION X(12)
24. INTEGER I,J
25. REAL*8 X,VX,VY,VZ,TAILLE
26. C
27. TAILLE = 0.0
28. GORIEN= 0
29. DO 10 I=1,(N-1)
30. DO 20 J=1,IDIMC
31. X((I-1)*IDIMC+J) = C(((IT(I+1)-1)*IDIMC)+J)
32. > - C(((IT(I)-1)*IDIMC)+J)
33. 20 CONTINUE
34. 10 CONTINUE
35. IF( IDIMC .EQ. 3 )THEN
36. VX = (X(2) * X(6)) - (X(5) * X(3))
37. VY = (X(3) * X(4)) - (X(6) * X(1))
38. VZ = (X(1) * X(5)) - (X(4) * X(2))
39. ENDIF
40. C
41. C CAS DU SEGMENT (1D, 2D, 3D)
42. C
43. IF( N. EQ. 2 )THEN
44. IF( IDIMC .EQ. 1 )THEN
45. TAILLE = X(1)
46. ENDIF
47. C
48. C CAS DU TRIANGLE (2D, 3D)
49. C
50. ELSE IF( N.EQ.3 ) THEN
51. IF( IDIMC .EQ. 2 )THEN
52. TAILLE = ((X(1) * X(4)) - (X(2) * X(3))) / 2.
53. ENDIF
54. C
55. C CAS DU TETRAEDRE (3D)
56. C
57. ELSE IF( N. EQ. 4 )THEN
58. TAILLE = ((VX * X(7)) + (VY * X(8)) + (VZ * X(9))) / 6.
59. ENDIF
60. IF( TAILLE .GT. ZERO )GORIEN= 1
61. IF( TAILLE .LT. ZERO )GORIEN= -1
62. END
63.
64.
65.

© Cast3M 2003 - Tous droits réservés.
Mentions légales