Download trpls2.eso

Back to the list

   1 : C TRPLS2    SOURCE    CHAT      06/03/29    21:36:43     5360           
   2 :       SUBROUTINE TRPLS2(X,IPOLYG,NCP,
   3 :      >                  ITVL,NTIMAX,RTVL,NTRMAX,
   4 : C     >                  ITRPOL,FCRMIN,QTMIN,iarr)
   5 :      >                  ITRPOL,QTMIN,iarr)
   6 : C     *****************************************************************
   7 : C     OBJET : ALLOCATION DES TABLEAU DANS LA PILE (ITVL,RTVL) 
   8 : C             ET APPEL A TRPLSI
   9 : C
  10 : C     EN ENTREE :
  11 : C        X     : COORDONNEES DES POINTS DU POLYGONE
  12 : C        IPOLYG : NUMERO DES NOEUDS DU POLYGONE 
  13 : C        NCP   : NOMBRE DE POINT DU POLYGONE
  14 : C        FCRMIN: FONCTION RENVOYANT LA VALEUR DU CRITERE
  15 : C                FUNCTION REAL FCRMIN(P1,P2,P3) 
  16 : C                REAL*8 P1(*),P2(*),P3(*)
  17 : C                OU P1,P2,P3 SONT LES COORDONNEES DES POINTS 
  18 : C                DU TRIANGLE
  19 : C        ITVL  : TABLEAU DE TRAVAIL DE TAILLE NTIMAX
  20 : C        RTVL  : TABLEAU DE TRAVAIL DE TAILLE NTRMAX
  21 : C        
  22 : C        QTMIN : VALEUR MINIMUM DU CRITERE
  23 : C
  24 : C     EN SORTIE :
  25 : C        ITRPOL: TRIANGULATION RESULANTE
  26 : C                 ITRPOL((I-1)*3+1) PREMIER NOEUD DU TRIANGLE I
  27 : C                 ITRPOL((I-1)*3+2) DEUXIEME NOEUD DU TRIANGLE I
  28 : C                 ITRPOL((I-1)*3+3) TROISIEME NOEUD DU TRIANGLE I
  29 : C        QTMIN  : VALEUR MINIMUM DE FCRMIN SUR ITRPOL
  30 : C        iarr   : 0 SI TOUT EST OK
  31 : C                -1 SI QTMIN N'A PAS PU ETRE ATTEINT
  32 : C                -2 SI UN PROBLEME DE TAILLE MEMOIRE
  33 : C     *****************************************************************
  34 :       IMPLICIT INTEGER(I-N)
  35 :       REAL*8    X(*),QTMIN
  36 :       INTEGER IPOLYG(*),NCP,ITVL(*),NTIMAX,NTRMAX
  37 :       REAL*8    RTVL(*)
  38 :       INTEGER ITRPOL(*),iarr
  39 : C
  40 : C     NPMAX : LE NOMBRE MAXIMUM DE POLYGONES EMPILES
  41 : C     NCMAX : LE NOMBRE MAXIMUM DE COTE DU POLYGONE
  42 : C      PARAMETER (NPMAX = 1000,NCMAX = 20, IDIMC = 2)
  43 : C
  44 : C      REAL*8      FCRMIN
  45 : C      EXTERNAL  FCRMIN
  46 :       INTEGER   IND,ICARD,JT,IFD,IFG,IT,ITM,IPERE
  47 :       INTEGER   ITPOLY,ITRIA,ITRMIN,IQTRIA,IQMIN
  48 :       INTEGER   NPMAX,NCMAX
  49 : C
  50 :       NCMAX = NCP
  51 :       NPMAX = (NTIMAX - 3*(NCMAX-2)) / (2*(2*NCMAX+1))
  52 : C      WRITE (*,*) '---- LE RESPECT D ARETE ----'
  53 : C      WRITE (*,*) 'COTES DU POLYGONE NCP =',NCP
  54 : C      WRITE (*,*) 'PLACE DISPONIBLE NTIMAX =',NTIMAX
  55 : C      WRITE (*,*) 'TAILLE DE LA PILE NPMAX =',NPMAX
  56 : C
  57 :       NPMAX = MIN( (NTRMAX / 2),NPMAX )
  58 : C      WRITE (*,*) 'TAILLE DE LA PILE POUR LE RESPECT D ARETE =',NPMAX
  59 :       IF((NPMAX.LE.0).OR.(NTRMAX.LT.(2*NCMAX)))THEN
  60 :         iarr = -2
  61 :         GOTO 999
  62 :       ENDIF
  63 : C     --- ALLOCATION DE TOUS LES TABLEAUX ---
  64 :       IND   = 1
  65 :       ICARD = NPMAX + IND
  66 :       JT    = NPMAX + ICARD
  67 :       IFD   = NPMAX + JT
  68 :       IFG   = NPMAX + IFD
  69 :       IT    = NPMAX + IFG
  70 :       ITM   = NPMAX + IT
  71 :       IPERE = NPMAX + ITM
  72 :       ITPOLY= NPMAX + IPERE
  73 :       ITRIA = (NPMAX*NCMAX) + ITPOLY
  74 :       ITRMIN= ((NCMAX-2)*3) + ITRIA
  75 : C     ITRMIN((NCMAX-2)*3*NPMAX)      
  76 : C
  77 :       IQTRIA= 1
  78 :       IQMIN = NPMAX + IQTRIA
  79 : C     IQMIN(NPMAX)
  80 : C
  80 :       CALL TRPLSI(X,IPOLYG,NCP,
  81 :      >            ITVL(IND),ITVL(ICARD),ITVL(JT),ITVL(IFD),
  82 :      >            ITVL(IFG),ITVL(IT),ITVL(ITM),ITVL(IPERE),
  83 :      >            ITVL(ITPOLY),ITVL(ITRIA),
  84 :      >            ITVL(ITRMIN),
  85 :      >            RTVL(IQTRIA),RTVL(IQMIN),NPMAX,NCMAX,        
  86 : C     >            ITRPOL,FCRMIN,QTMIN,iarr)
  87 :      >            ITRPOL,QTMIN,iarr)
  88 : C
  89 :   999 END
  90 :  
  91 :  
  92 :  

© Cast3M 2003 - All rights reserved.
Disclaimer