C D2DEF     SOURCE    CB215821  17/11/30    21:15:51     9639           
      SUBROUTINE D2DEF(XP1,XP2,XP3,XPC,VDIA,IDIMC,
     >                      COEF,TS,iarr)
C     *****************************************************************
C     OBJET :   TAILLE SOUHAITE PAR DEFAUT
C               (LA TAILLE SOUHAITE EST EVALUEE AU CENTRE D'UNE BOULE)
C     EN ENTREE :
C         XP1,XP2,XP3 : LES TROIS POINT DU TRIANGLE
C         XPC     : UN POINT SUR LE CERCLE (INUTILISE)
C         VDIA    : LE VECTEUR DIAMETRE PARTANT DE XPC
C         IDIMC   : DIMENSION DE L'ESPACE
C     EN SORTIE :
C         TS      : TAILLE SOUHAITE POUR LE TRIANGLE
C                   = LONGUEUR DE SA PLUS PETITE ARETE
C         COEF    : TS / RC
C                   RC EST LE RAYON DU CERCLE CIRCONSCRIT
C                   PLUS COEF EST PETIT PLUS ON RAFFINE
C         iarr    : CODE D'ERREUR 0 SI OK,
C                   -1 SI LE RAYON CIRCONSCRIT EST NUL
C     NIVEAU : FICHIER
C     *****************************************************************
      IMPLICIT INTEGER(I-N)
      INTEGER    IDIMC
      REAL*8       XP1(*),XP2(*),XP3(*)
      REAL*8       XPC(*),VDIA(*),COEF,TS
      INTEGER    iarr
C
      REAL*8     V(3),D,DMIN,DIAM2,RC,XYZEPS
      EXTERNAL XNORVE
      REAL*8     XNORVE
      XYZEPS=1.D-10
C
C           ============================
C     ------ ARETE LA PLUS COURTE       ------
C           ============================
      CALL DIFFVE(XP2,XP1,IDIMC,V)
      DMIN = XNORVE(V,IDIMC)
      CALL DIFFVE(XP3,XP2,IDIMC,V)
      D = XNORVE(V,IDIMC)
      DMIN = MIN( D, DMIN )
      CALL DIFFVE(XP1,XP3,IDIMC,V)
      D = XNORVE(V,IDIMC)
      DMIN = MIN( D, DMIN )
C           ============================
C     ------ SUR LE RAYON CIRCONSCRIT   ------
C           ============================
      DIAM2 = VDIA(1)**2 + VDIA(2)**2
      RC = SQRT( DIAM2 ) / 2.0D0
      IF( RC.GT. -XYZEPS .AND.RC .LT. XYZEPS )GOTO 999
      COEF = DMIN / RC
      TS = DMIN
      iarr = 0
  999 END




 
