Download rf2rar.eso

Back to the list

   1 : C RF2RAR    SOURCE    CHAT      06/03/29    21:31:27     5360           
   2 :       SUBROUTINE RF2RAR(NN,ITRNOE,NBNMAX,ITRTRI,NBCMAX,
   3 :      >                    NOETRI,NBE,COORD,
   4 :      >                    ITVL,NTIMAX,RTVL,NTRMAX,
   5 :      >                    NBENEW,iarr)
   6 : C     *****************************************************************
   7 : C     OBJET : IMPOSE LE RESPECTER D'UNE ARETE A UN MAILLAGE TRIANGULAIRE
   8 : C
   9 : C     EN ENTREE: 
  10 : C        NN()    :  LES INDICES DES NOEUDS DE L'ARETE
  11 : C
  12 : C        ITRTRI,NBNMAX,ITRNOE,NBCMAX,NOETRI,NBE,COORD : LE MAILLAGE
  13 : C
  14 : C        ITVL   :  TABLEAU DE TRAVAIL (ENTIERS)
  15 : C        NTIMAX :  TAILLE DU TABLEAU ITVL
  16 : C        RTVL   :  TABLEAU DE TRAVAIL (REELS)
  17 : C
  18 : C        NTRMAX :  TAILLE DU TABLEAU RTVL
  19 : C          AU MINIMUM = 9 * NINTER + 10
  20 : C          AU MAXIMUM = (NBR MAX D'ELEMENTS EN 1 NOEUD + 1) *
  21 : C                        NUMERO MAXI DU NOEUD DANS ITRNOE
  22 : C
  23 : C     EN SORTIE: LE MAILLAGE MODIFIE SI NECESSAIRE.
  24 : C
  25 : C        NBENEW: LE NOMBRE DE TRIANGLES MODIFIES
  26 : C                ILS ONT LES NUMERO 1 A NBENEW
  27 : C
  28 : C        iarr  :  0 SI OK
  29 : C          -1 SI L'ARETE EST EXTERIEURE OU PASSE PAR UN NOEUD
  30 : C          -2 SI LE NOMBRE DE TRIANGLES INTERSECTES EST TROP GRAND
  31 : C             PEUT ETRE ITVL EST TROP PETIT
  32 : C     *****************************************************************
  33 :       IMPLICIT INTEGER(I-N)
  34 :       INTEGER   NN(*),ITRNOE(*),NBNMAX,ITRTRI(*),NBCMAX
  35 :       INTEGER   NOETRI(*),NBE,ITVL(*),NTIMAX,NTRMAX
  36 :       REAL*8      COORD(*), RTVL(*)
  37 :       INTEGER   NBENEW,iarr
  38 : C
  39 :       INTEGER   NINTER,ITRAV,INTER
  40 : C        =================================================
  41 : C     --- 1. CALCUL DES TRIANGLES INTERSECTANT LE SEGMENT ---
  42 : C        =================================================
  43 : C     ITVL = | INTER |
  44 : C                 NINTER    
  45 : C 
  46 :       iarr = 0
  47 :       INTER = 1
  48 :       NINTER = NTIMAX
  48 :       CALL TRITSE(NN,ITRNOE,NBNMAX,ITRTRI,NBCMAX,
  49 :      >               NOETRI,NBE,COORD,ITVL(INTER),NINTER)
  50 : C      WRITE(6,*) 'SORTIE TRISTE ninter = ',NINTER
  51 :       NBENEW = NINTER
  52 :       IF( NINTER .EQ. 0 ) GO TO 999
  53 : C     ---- BUG_14 O.STAB 28.03.97 ----
  54 :       IF( NINTER .LT. 0 )THEN
  55 :        iarr = NINTER
  56 :        GO TO 999
  57 :       ENDIF
  58 : C              ====================
  59 : C       ------- 2.FORCAGE OPTIMUM  ----------
  60 : C              ====================
  61 :         ITRAV = NINTER + INTER
  61 :         CALL RF2FAR(NN,ITVL(INTER),NINTER, 
  62 :      >                ITRNOE,NBNMAX,ITRTRI,NBCMAX,
  63 :      >                NOETRI,NBE,COORD,ITVL(ITRAV),
  64 :      >                (NTIMAX-NINTER),RTVL,NTRMAX,iarr)
  65 : C       
  66 : C      WRITE(6,*) 'SORTIE RF2FAR iarr = ',iarr
  67 :   999 END
  68 :  
  69 :  
  70 :  

© Cast3M 2003 - All rights reserved.
Disclaimer