Télécharger gorien.eso

Retour à la liste

Numérotation des lignes :

gorien
  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