C J3ANGL SOURCE CHAT 05/01/13 00:45:50 5004 SUBROUTINE J3ANGL(XY1,XY2,TOL,ANGL,IRET) C---------------------------------------------------- C ANGLE ENTRE LE VECTEUR XY1 ET XY2 (2D) C C PP 6/97 C Pierre Pegon/JRC Ispra C---------------------------------------------------- C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) -INC CCREEL DIMENSION XY1(2),XY2(2) C IRET=0 C XL1=SQRT(XY1(1)**2+XY1(2)**2) XL2=SQRT(XY2(1)**2+XY2(2)**2) IF((XL1.LT.TOL).OR.(XL2.LT.TOL))THEN IRET=1 RETURN ENDIF C COSI=(XY1(1)*XY2(1)+XY1(2)*XY2(2))/XL1/XL2 SINU=(XY1(1)*XY2(2)-XY1(2)*XY2(1))/XL1/XL2 C IF(ABS(COSI).LT.TOL)THEN ANGL=ASIN(COSI) ANGL=XPI/2 -ANGL ANGL=SIGN(ANGL,SINU) ELSE ANGL=ATAN(SINU/COSI) IF(COSI.LT.0.D0)THEN IF(SINU.GE.0.D0)THEN ANGL=ANGL+XPI ELSE ANGL=ANGL-XPI ENDIF ENDIF ENDIF C RETURN END