trpls2
C TRPLS2 SOURCE CHAT 06/03/29 21:36:43 5360 > ITVL,NTIMAX,RTVL,NTRMAX, C > ITRPOL,FCRMIN,QTMIN,iarr) > ITRPOL,QTMIN,iarr) C ***************************************************************** C OBJET : ALLOCATION DES TABLEAU DANS LA PILE (ITVL,RTVL) C ET APPEL A TRPLSI C C EN ENTREE : C X : COORDONNEES DES POINTS DU POLYGONE C IPOLYG : NUMERO DES NOEUDS DU POLYGONE C NCP : NOMBRE DE POINT DU POLYGONE C FCRMIN: FONCTION RENVOYANT LA VALEUR DU CRITERE C FUNCTION REAL FCRMIN(P1,P2,P3) C REAL*8 P1(*),P2(*),P3(*) C OU P1,P2,P3 SONT LES COORDONNEES DES POINTS C DU TRIANGLE C ITVL : TABLEAU DE TRAVAIL DE TAILLE NTIMAX C RTVL : TABLEAU DE TRAVAIL DE TAILLE NTRMAX C C QTMIN : VALEUR MINIMUM DU CRITERE C C EN SORTIE : C ITRPOL: TRIANGULATION RESULANTE C ITRPOL((I-1)*3+1) PREMIER NOEUD DU TRIANGLE I C ITRPOL((I-1)*3+2) DEUXIEME NOEUD DU TRIANGLE I C ITRPOL((I-1)*3+3) TROISIEME NOEUD DU TRIANGLE I C QTMIN : VALEUR MINIMUM DE FCRMIN SUR ITRPOL C iarr : 0 SI TOUT EST OK C -1 SI QTMIN N'A PAS PU ETRE ATTEINT C -2 SI UN PROBLEME DE TAILLE MEMOIRE C ***************************************************************** IMPLICIT INTEGER(I-N) REAL*8 X(*),QTMIN INTEGER IPOLYG(*),NCP,ITVL(*),NTIMAX,NTRMAX REAL*8 RTVL(*) INTEGER ITRPOL(*),iarr C C NPMAX : LE NOMBRE MAXIMUM DE POLYGONES EMPILES C NCMAX : LE NOMBRE MAXIMUM DE COTE DU POLYGONE C PARAMETER (NPMAX = 1000,NCMAX = 20, IDIMC = 2) C C REAL*8 FCRMIN C EXTERNAL FCRMIN INTEGER IND,ICARD,JT,IFD,IFG,IT,ITM,IPERE INTEGER ITPOLY,ITRIA,ITRMIN,IQTRIA,IQMIN INTEGER NPMAX,NCMAX C NCMAX = NCP NPMAX = (NTIMAX - 3*(NCMAX-2)) / (2*(2*NCMAX+1)) C WRITE (*,*) '---- LE RESPECT D ARETE ----' C WRITE (*,*) 'COTES DU POLYGONE NCP =',NCP C WRITE (*,*) 'PLACE DISPONIBLE NTIMAX =',NTIMAX C WRITE (*,*) 'TAILLE DE LA PILE NPMAX =',NPMAX C NPMAX = MIN( (NTRMAX / 2),NPMAX ) C WRITE (*,*) 'TAILLE DE LA PILE POUR LE RESPECT D ARETE =',NPMAX IF((NPMAX.LE.0).OR.(NTRMAX.LT.(2*NCMAX)))THEN iarr = -2 GOTO 999 ENDIF C --- ALLOCATION DE TOUS LES TABLEAUX --- IND = 1 ICARD = NPMAX + IND JT = NPMAX + ICARD IFD = NPMAX + JT IFG = NPMAX + IFD IT = NPMAX + IFG ITM = NPMAX + IT IPERE = NPMAX + ITM ITPOLY= NPMAX + IPERE ITRIA = (NPMAX*NCMAX) + ITPOLY ITRMIN= ((NCMAX-2)*3) + ITRIA C ITRMIN((NCMAX-2)*3*NPMAX) C IQTRIA= 1 IQMIN = NPMAX + IQTRIA C IQMIN(NPMAX) C > ITVL(IND),ITVL(ICARD),ITVL(JT),ITVL(IFD), > ITVL(IFG),ITVL(IT),ITVL(ITM),ITVL(IPERE), > ITVL(ITPOLY),ITVL(ITRIA), > ITVL(ITRMIN), > RTVL(IQTRIA),RTVL(IQMIN),NPMAX,NCMAX, C > ITRPOL,FCRMIN,QTMIN,iarr) > ITRPOL,QTMIN,iarr) C 999 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales