Télécharger norfac.eso

Retour à la liste

Numérotation des lignes :

  1. C NORFAC SOURCE CHAT 05/01/13 01:59:53 5004
  2. SUBROUTINE NORFAC(VN,IPA,IPO,IPB)
  3.  
  4.  
  5. * APPELE PAR ARETE1
  6. * CALCULE UNE NORMALE AU PLAN DEFINI PAR LES POINTS
  7. * IPA,IPO,IPB . ORIENTE CETTE NORMALE SELON X POSITIF
  8. *
  9. *--------------------------------------------------------------------
  10. * AUTEUR : J.BRUN (JUIN 90)
  11.  
  12. IMPLICIT INTEGER(I-N)
  13. IMPLICIT REAL*8 (A-H,O-Y)
  14. IMPLICIT LOGICAL (Z)
  15. -INC SMELEME
  16. -INC CCOPTIO
  17. -INC SMCOORD
  18. REAL*8 VN(3),OA(3),OB(3)
  19.  
  20.  
  21. *---------------------------------------------------------------------
  22. *
  23. * CREE et NORME LES DEUX VECTEURS OA ET OB
  24. *
  25. *---------------------------------------------------------------------
  26. IA=(IPA-1)*(IDIM+1)
  27. IB=(IPB-1)*(IDIM+1)
  28. IO=(IPO-1)*(IDIM+1)
  29. OA(1)=XCOOR(IA+1)-XCOOR(IO+1)
  30. OA(2)=XCOOR(IA+2)-XCOOR(IO+2)
  31. OA(3)=XCOOR(IA+3)-XCOOR(IO+3)
  32. AINVN=1./SQRT( OA(1)**2 + OA(2)**2 + OA(3)**2)
  33. OA(1)=OA(1)*AINVN
  34. OA(2)=OA(2)*AINVN
  35. OA(3)=OA(3)*AINVN
  36.  
  37. OB(1)=XCOOR(IB+1)-XCOOR(IO+1)
  38. OB(2)=XCOOR(IB+2)-XCOOR(IO+2)
  39. OB(3)=XCOOR(IB+3)-XCOOR(IO+3)
  40. BINVN=1./SQRT( OB(1)**2 + OB(2)**2 + OB(3)**2)
  41. OB(1)=OB(1)*BINVN
  42. OB(2)=OB(2)*BINVN
  43. OB(3)=OB(3)*BINVN
  44. *---------------------------------------------------------------------
  45. *
  46. * CALCUL DE LA NORMALE
  47. *
  48. *---------------------------------------------------------------------
  49. VN(1)=OA(2)*OB(3)-OB(2)*OA(3)
  50. VN(2)=OA(3)*OB(1)-OB(3)*OA(1)
  51. VN(3)=OA(1)*OB(2)-OB(1)*OA(2)
  52. ANORME=SQRT( VN(1)**2 + VN(2)**2 + VN(3)**2)
  53.  
  54. IF (ANORME .GT. 1D-6) THEN
  55. IF (VN(1).LT.0D0) THEN
  56. VN(1)=-VN(1)
  57. VN(2)=-VN(2)
  58. VN(3)=-VN(3)
  59. ENDIF
  60. VN(1)=VN(1)/ANORME
  61. VN(2)=VN(2)/ANORME
  62. VN(3)=VN(3)/ANORME
  63. ENDIF
  64. END
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  

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