Download rtadet.eso

Back to the list

   1 : C RTADET    SOURCE    FANDEUR   13/01/29    21:16:23     7683           
   2 :       SUBROUTINE RTADET(XYZPT,IDIMC,ITRNOE,NBNMAX,ITRTRI,NBCMAX,
   3 :      >                     NBE,COORD,SPH,
   4 :      >                     IADET,NBADET,NADMAX,ZERO,iarr)
   5 : C     **********************************************************************
   6 : C     OBJET : RECHERCHE DES TRIANGLES A DETRUIRE (IE "NON-DELAUNAY") 
   7 : C             A L'AJOUT D'UN POINT
   8 : C     EN ENTREE   :
   9 : C        XYZPT : COORDONNEES DU POINT AJOUTE
  10 : C        IDIMC  : DIMENSION DE L'ESPACE
  11 : C        ITRNOE,NBNMAX,ITRTRI,NBCMAX,NBE,COORD : LA TRIANGULATION
  12 : C        SPH   : LES SPHERES CIRCONSCRITES AUX TRIANGLES
  13 : C        NBADETMNAX : TAILLE DU TABLEAU IADET 
  14 : C        ZERO  : PRECISION DU TEST "POINT DANS SPHERE"
  15 : C     EN SORTIE   :
  16 : C        IADET    : TABLEAU DES TRIANGLES "NON-DELAUNAY"
  17 : C        NBADET   : NOMBRE DE TRIANGLES "  "    "   "
  18 : C     **********************************************************************
  19 :       IMPLICIT INTEGER(I-N)
  20 :       REAL*8       XYZPT(*)
  21 :       INTEGER    IDIMC
  22 :       INTEGER    ITRNOE(*),NBNMAX,ITRTRI(*),NBCMAX
  23 :       INTEGER    NBE,IADET(*),NBADET,NADMAX,iarr
  24 :       REAL*8       COORD(*),SPH(*),ZERO
  25 : C
  26 : C   
  27 : C     --- POUR LE DEBUG ---
  28 : C
  29 : C      COMMON /DEBUG/ ITRACE, ITEST, ierrOR, IMESS
  30 : C      INTEGER       ITRACE, ITEST, ierrOR
  31 : C      CHARACTER*256 IMESS
  32 : C     ---------------------------------------------------------------------
  33 : C     --- POUR LES STATS ---
  34 : C
  35 : C      COMMON /STATS/ ICARD(100)
  36 : C      INTEGER       ICARD
  37 : C     ---------------------------------------------------------------------
  38 : C     --- VARIABLES INTERNES ---
  39 :       INTEGER   I,NT,IPTDS,IPTDSC,IPTDS2,ITRACE
  40 :       REAL*8      SPHC(4)
  41 : C      INTEGER  SPPOIN, SPPOI2    modif TC
  42 :       INTEGER  SPPOIN, SPPOI2,SPCIRC
  43 : C      EXTERNAL SPPOIN, SPPOI2   modif TC
  44 :       EXTERNAL SPPOIN, SPPOI2,SPCIRC
  45 : C
  46 :       ITRACE = 0
  47 :       DO i = 1, 4
  48 :         SPHC(i) = 0.D0
  49 :       ENDDO
  50 :       iarr = 0
  51 :       NBADET = 0
  52 :       DO 30 I=1,NBE
  53 : C     ----- ON PREND LE DERNIER NOEUD ---
  54 :         NT =ITRNOE((I-1)*NBNMAX+1+IDIMC)
  55 :         IF ( NT.EQ. 0 ) GO TO 30
  56 :         IPTDS = SPPOIN(IDIMC,COORD((NT-1)*IDIMC+1),XYZPT,
  57 :      >       SPH((I-1)*(IDIMC+1)+1),ZERO)
  58 : C
  59 : C       ---- POUR LE DEBUG ----
  60 : C
  61 :       IF( ITRACE .GT. 0 )THEN
  62 :         IPTDS2 = SPPOI2(IDIMC,COORD((NT-1)*IDIMC+1),XYZPT,
  63 :      >       SPH((I-1)*(IDIMC+1)+1),ZERO)
  64 :         IF( IPTDS2.NE.IPTDS )THEN
  65 : C          ICARD(1) = ICARD(1) + 1
  66 : C            PRINT *,'DIFFERENCE DE CALCUL'
  67 : C            PRINT *,'SPPOI2 = ',IPTDS2,' SPPOIN = ',IPTDS
  68 : C            PRINT *, (SPHC(J),J=1,3)
  69 :             IPTDS = SPPOIN(IDIMC,COORD((NT-1)*IDIMC+1),XYZPT,
  70 :      >       SPH((I-1)*(IDIMC+1)+1),ZERO)
  71 :             IPTDS2 = SPPOI2(IDIMC,COORD((NT-1)*IDIMC+1),XYZPT,
  72 :      >       SPH((I-1)*(IDIMC+1)+1),ZERO)
  73 :         ENDIF
  74 : C   modif TC spcirc est une fonction
  74 : C        CALL SPCIRC(ITRNOE((I-1)*NBNMAX+1),COORD,SPHC,ZERO)
  75 :         IBID= SPCIRC(ITRNOE((I-1)*NBNMAX+1),COORD,SPHC,ZERO)
  76 :         IPTDSC = SPPOIN(IDIMC,COORD((NT-1)*IDIMC+1),XYZPT,
  77 :      >         SPHC(1),ZERO)
  78 :         IF(( SPHC(1).NE. SPH((I-1)*(IDIMC+1)+1)).OR.
  79 :      >     ( SPHC(2).NE. SPH((I-1)*(IDIMC+1)+2)).OR.
  80 :      >     ( SPHC(3).NE. SPH((I-1)*(IDIMC+1)+3)))THEN
  81 : C          PRINT *,'ERREUR SUR LA SPHERE'
  82 : C          PRINT *, (SPH((I-1)*(IDIMC+1)+J),J=1,3)
  83 : C          PRINT *, (SPHC(J),J=1,3)
  84 :         ENDIF
  85 :         ENDIF
  86 : C       ------------------------
  87 :         IF( IPTDS.EQ.1 )THEN
  88 :           IADET(1) = I
  89 :           NBADET = 1
  89 :           CALL RTCONN(XYZPT,IDIMC,ITRNOE,NBNMAX,ITRTRI,NBCMAX,
  90 :      >                   COORD,SPH,IADET,NBADET,NADMAX,ZERO,iarr)
  91 :           RETURN
  92 :         ENDIF
  93 : C
  94 :    30 CONTINUE
  95 : 
  96 :       RETURN
  97 :       END
  98 :  

© Cast3M 2003 - All rights reserved.
Disclaimer