C DR2PO     SOURCE    PV        07/11/23    21:16:29     5978
      SUBROUTINE DR2PO( XP1,XP2, DROITE, IARR )
C     *****************************************************************
C     OBJET : CALCULE LA DROITE PASSANT PAR LES 2 POINTS
C     EN ENTREE:
C        XP1, XP2 : LES 2 POINTS DE LA DROITE
C     EN SORTIE
C        DROITE   : LES COEFFICIENTS A,B,C DE L'EQUATION DE LA DROITE
C                   AX+BY+C = 0
C        IARR     : -1 SI XP1 ET XP2 SONT CONFONDUS, 0 SI OK
C     *****************************************************************
      IMPLICIT INTEGER(I-N)
      IMPLICIT real*8 (a-h,o-z)
      REAL*8      XP1(2),XP2(2),DROITE(3)
      INTEGER   IARR
C
C      COMMON /CGEPSI/ XYZHUG,XYZMIN,XYZEPS
C      REAL*8  XYZHUG,XYZMIN,XYZEPS
      REAL*8   XDENO
C
      XYZEPS=1.D-10
      IERR = 0
      XDENO = XP2(1) - XP1(1)
      IF((XDENO.LE.XYZEPS).AND.(XDENO.GE. -XYZEPS))THEN
        XDENO = XP2(2) - XP1(2)
        IF((XDENO.LE.XYZEPS).AND.(XDENO.GE. -XYZEPS))THEN
          IARR = -1
          GOTO 999
        ENDIF
        DROITE(1) = 1.0D0
        DROITE(2) = 0.0D0
        DROITE(3) = - XP1(1)
      ELSE
        DROITE(1) = (XP1(2) - XP2(2)) / XDENO
        DROITE(2) = 1.0D0
        DROITE(3) = - XP1(2) - (XP1(1) * DROITE(1))
      ENDIF
  999 END




