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 :
© Cast3M 2003 - All rights reserved.
Disclaimer