1 : C J3ANGL SOURCE CHAT 05/01/13 00:45:50 5004 2 : SUBROUTINE J3ANGL(XY1,XY2,TOL,ANGL,IRET) 3 : C---------------------------------------------------- 4 : C ANGLE ENTRE LE VECTEUR XY1 ET XY2 (2D) 5 : C 6 : C PP 6/97 7 : C Pierre Pegon/JRC Ispra 8 : C---------------------------------------------------- 9 : C 10 : IMPLICIT INTEGER(I-N) 11 : IMPLICIT REAL*8(A-H,O-Z) 12 : -INC CCREEL 13 : DIMENSION XY1(2),XY2(2) 14 : C 15 : IRET=0 16 : C 17 : XL1=SQRT(XY1(1)**2+XY1(2)**2) 18 : XL2=SQRT(XY2(1)**2+XY2(2)**2) 19 : IF((XL1.LT.TOL).OR.(XL2.LT.TOL))THEN 20 : IRET=1 21 : RETURN 22 : ENDIF 23 : C 24 : COSI=(XY1(1)*XY2(1)+XY1(2)*XY2(2))/XL1/XL2 25 : SINU=(XY1(1)*XY2(2)-XY1(2)*XY2(1))/XL1/XL2 26 : C 27 : IF(ABS(COSI).LT.TOL)THEN 28 : ANGL=ASIN(COSI) 29 : ANGL=XPI/2 -ANGL 30 : ANGL=SIGN(ANGL,SINU) 31 : ELSE 32 : ANGL=ATAN(SINU/COSI) 33 : IF(COSI.LT.0.D0)THEN 34 : IF(SINU.GE.0.D0)THEN 35 : ANGL=ANGL+XPI 36 : ELSE 37 : ANGL=ANGL-XPI 38 : ENDIF 39 : ENDIF 40 : ENDIF 41 : C 42 : RETURN 43 : END 44 : 45 : 46 :
© Cast3M 2003 - All rights reserved.
Disclaimer