Télécharger norfac.eso

Retour à la liste

Numérotation des lignes :

norfac
  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.  
  17. -INC PPARAM
  18. -INC CCOPTIO
  19. -INC SMCOORD
  20. REAL*8 VN(3),OA(3),OB(3)
  21.  
  22.  
  23. *---------------------------------------------------------------------
  24. *
  25. * CREE et NORME LES DEUX VECTEURS OA ET OB
  26. *
  27. *---------------------------------------------------------------------
  28. IA=(IPA-1)*(IDIM+1)
  29. IB=(IPB-1)*(IDIM+1)
  30. IO=(IPO-1)*(IDIM+1)
  31. OA(1)=XCOOR(IA+1)-XCOOR(IO+1)
  32. OA(2)=XCOOR(IA+2)-XCOOR(IO+2)
  33. OA(3)=XCOOR(IA+3)-XCOOR(IO+3)
  34. AINVN=1./SQRT( OA(1)**2 + OA(2)**2 + OA(3)**2)
  35. OA(1)=OA(1)*AINVN
  36. OA(2)=OA(2)*AINVN
  37. OA(3)=OA(3)*AINVN
  38.  
  39. OB(1)=XCOOR(IB+1)-XCOOR(IO+1)
  40. OB(2)=XCOOR(IB+2)-XCOOR(IO+2)
  41. OB(3)=XCOOR(IB+3)-XCOOR(IO+3)
  42. BINVN=1./SQRT( OB(1)**2 + OB(2)**2 + OB(3)**2)
  43. OB(1)=OB(1)*BINVN
  44. OB(2)=OB(2)*BINVN
  45. OB(3)=OB(3)*BINVN
  46. *---------------------------------------------------------------------
  47. *
  48. * CALCUL DE LA NORMALE
  49. *
  50. *---------------------------------------------------------------------
  51. VN(1)=OA(2)*OB(3)-OB(2)*OA(3)
  52. VN(2)=OA(3)*OB(1)-OB(3)*OA(1)
  53. VN(3)=OA(1)*OB(2)-OB(1)*OA(2)
  54. ANORME=SQRT( VN(1)**2 + VN(2)**2 + VN(3)**2)
  55.  
  56. IF (ANORME .GT. 1D-6) THEN
  57. IF (VN(1).LT.0D0) THEN
  58. VN(1)=-VN(1)
  59. VN(2)=-VN(2)
  60. VN(3)=-VN(3)
  61. ENDIF
  62. VN(1)=VN(1)/ANORME
  63. VN(2)=VN(2)/ANORME
  64. VN(3)=VN(3)/ANORME
  65. ENDIF
  66. END
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  

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