sfrcre
C SFRCRE SOURCE CHAT 06/03/29 21:33:19 5360 > ITVL,NTRMAX, > LTRNOE,NNFMAX,LTRTRI,NCFMAX,NBF, > LNOETR,NBFNOE,NCC,iarr) C ***************************************************************** C OBJET : CREER LE MAILLAGE FRONTIERE D'UN ENSEMBLE DE MAILLES C C EN ENTREE: C IFR : IFR((I-1)*2+1) DONNE LE NUMERO DU IEME ELEMENT QUI A C UNE FACE SUR LA FRONTIERE C IFR((I-1)*2+2) DONNE LE NUMERO RELATIF DE LA FACE DU C IEME ELEMENT C NBIFR : NOMBRE D'ELEMENT DE LA FRONTIERE C C IDE : (1..3) DIMENSION DES ELEMENTS C NBNMAX : (2..8) NOMBRE DE NOEUDS MAXIMUM DES ELEMENTS C ITRNOE: ITRNOE(I,J) EST LE NOEUD J DE L'ELEMENT I C ITVL: TABLEAU DE TRAVAIL C NTRMAX: TAILLE DU TABLEAU DE TRAVAIL C SI IFR FORME 1 SEULE COMPOSANTE CONNEXE C AU MINIMUM = 2*((NBIFR*(NBCMAX-2))+2*NBCMAX) C 2D TRIANGLES = 2 * NBIFR + 12 C QUAD OU TETRA = 4 * NBIFR + 16 C AU MAX = (NBR MAX D'ELEMENTS EN 1 NOEUD + 1) * C NUMERO MAXI DU NOEUD DANS IFR C C NNFMAX : NOMBRE MAXIMUM DE NOEUD SUR UNE FACE DE LA FRONTIERE C NCFMAX : NOMBRE MAXIMUM DE COTE D'UNE FACE DE LA FRONTIERE C NBFNOE : TAILLE DU TABLEAU LNOETR C SI NBFNOE = 0 LNOETR NE SERA PAS REMPLI C C EN SORTIE: LE MAILLAGE DE LA FRONTIERE ET SES CARACTERISTIQUES C LTRNOE: C LTRTRI: C LNOETR: C NBF : NOMBRE DE FACES DE LA FRONTIERE C NCC : NOMBRE DE COMPOSANTES CONNEXES C iarr : CODE D'ERREUR C 0 SI OK C -1 SI LES DONNEES SONT ERRONEES C -2 SI ITVL TROP PETIT C C NIVEAU : INTERFACE UTILISATEUR C ***************************************************************** IMPLICIT INTEGER(I-N) INTEGER IDE,IFR(*),NBIFR,ITRNOE(*),NBNMAX INTEGER ITVL(*),NTRMAX INTEGER LTRNOE(*),NNFMAX,LTRTRI(*),NCFMAX,NBF INTEGER LNOETR(*),NBFNOE,NCC,iarr C INTEGER I,IDEF INTEGER ITRAV,ITRAM,NBTRAV C C NOEUDS DE LA FRONTIERE C ---------------------- C IF( (NCFMAX * NBIFR).GT.NTRMAX )THEN iarr = -2 GO TO 999 ENDIF C DO 10 I=1,NBIFR > IFR((I-1)*2+2),ITVL((I-1)*NCFMAX+1)) 10 CONTINUE IF( iarr .NE. 0 )GO TO 999 C C CONSTRUCTION DU MAILLAGE FRONTIERE C ---------------------------------- IDEF = IDE - 1 C --- ALLOCATION DES TABLEAUX : ITRAV,ITRAM,ITRAP ---- C TOPOFRTM OCCUPE ITVL DE 1 - NBF*NCFMAX C ITRAM DOIT AVOIR LA TAILLE DE NBF C NBTRAV PEUT VARIER DE 0 A (NCFMAX + 1) * NBF C ------------------------------------------------- IF( NTRMAX .LT. (NBF * (NCFMAX+1)) )THEN iarr = -2 GO TO 999 ENDIF C ITRAV = (NBF * NCFMAX ) + 1 NBTRAV = NTRMAX - ( NBF * NCFMAX ) C > LTRTRI,NCFMAX,LNOETR,NBFNOE, > ITVL(ITRAV),NBTRAV,iarr) C IF( iarr .NE. 0 )GO TO 999 ITRAM = 1 ITRAV = NBF + 1 NBTRAV = NTRMAX - NBF > ITVL(ITRAV),NBTRAV,ITVL(ITRAM),NCC,iarr) C 999 END
© Cast3M 2003 - Tous droits réservés.
Mentions légales