Download d2def.eso

Back to the list

   1 : C D2DEF     SOURCE    CHAT      06/03/29    21:18:09     5360           
   2 :       SUBROUTINE D2DEF(XP1,XP2,XP3,XPC,VDIA,IDIMC,
   3 :      >                      COEF,TS,iarr)
   4 : C     *****************************************************************
   5 : C     OBJET :   TAILLE SOUHAITE PAR DEFAUT
   6 : C               (LA TAILLE SOUHAITE EST EVALUEE AU CENTRE D'UNE BOULE)
   7 : C     EN ENTREE :
   8 : C         XP1,XP2,XP3 : LES TROIS POINT DU TRIANGLE
   9 : C         XPC     : UN POINT SUR LE CERCLE (INUTILISE)
  10 : C         VDIA    : LE VECTEUR DIAMETRE PARTANT DE XPC
  11 : C         IDIMC   : DIMENSION DE L'ESPACE
  12 : C     EN SORTIE :
  13 : C         TS      : TAILLE SOUHAITE POUR LE TRIANGLE
  14 : C                   = LONGUEUR DE SA PLUS PETITE ARETE
  15 : C         COEF    : TS / RC
  16 : C                   RC EST LE RAYON DU CERCLE CIRCONSCRIT
  17 : C                   PLUS COEF EST PETIT PLUS ON RAFFINE
  18 : C         iarr    : CODE D'ERREUR 0 SI OK,
  19 : C                   -1 SI LE RAYON CIRCONSCRIT EST NUL
  20 : C     NIVEAU : FICHIER
  21 : C     *****************************************************************
  22 :       IMPLICIT INTEGER(I-N)
  23 :       INTEGER    IDIMC
  24 :       REAL*8       XP1(*),XP2(*),XP3(*)
  25 :       REAL*8       XPC(*),VDIA(*),COEF,TS
  26 :       INTEGER    iarr
  27 : C
  28 :       REAL*8     V(3),D,DMIN,DIAM2,RC,XYZEPS
  29 :       EXTERNAL XNORVE
  30 :       REAL*8     XNORVE
  31 :       XYZEPS=1.D-10
  32 : C      
  33 : C           ============================
  34 : C     ------ ARETE LA PLUS COURTE       ------
  35 : C           ============================
  35 :       CALL DIFFVE(XP2,XP1,IDIMC,V)
  36 :       DMIN = XNORVE(V,IDIMC)
  36 :       CALL DIFFVE(XP3,XP2,IDIMC,V)
  37 :       D = XNORVE(V,IDIMC)
  38 :       DMIN = MIN( D, DMIN )
  38 :       CALL DIFFVE(XP1,XP3,IDIMC,V)
  39 :       D = XNORVE(V,IDIMC) 
  40 :       DMIN = MIN( D, DMIN )
  41 : C           ============================
  42 : C     ------ SUR LE RAYON CIRCONSCRIT   ------
  43 : C           ============================
  44 :       DIAM2 = VDIA(1)**2 + VDIA(2)**2
  45 :       RC = SQRT( DIAM2 ) / 2.0D0
  46 :       IF( RC.GT. -XYZEPS .AND.RC .LT. XYZEPS )GOTO 999
  47 :       COEF = DMIN / RC
  48 :       TS = DMIN
  49 :       iarr = 0
  50 :   999 END
  51 :  
  52 :  
  53 :  
  54 :  

© Cast3M 2003 - All rights reserved.
Disclaimer