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



