Download tmafrt.eso

Back to the list

   1 : C TMAFRT    SOURCE    CHAT      06/03/29    21:35:52     5360           
   2 :       SUBROUTINE TMAFRT(IDE,ITRNOE,NBNMAX,ITRTRI,NBCMAX,IND,NBE,
   3 :      >                   IFAC,NBFAC,NFAMAX,iarr)
   4 : C     **************************************************************
   5 : C     OBJET :  
   6 : C        CALCULE LA FRONTIERE D'UN ENSEMBLE DE MAILLES CONSECUTIVES
   7 : C        DANS LE MAILLAGE 
   8 : C     EN ENTREE:
   9 : C      IDE    :  (1..3) DIMENSION DES ELEMENTS 
  10 : C      ITRNOE:  LES NOEUDS DES ELEMENTS
  11 : C      NBNMAX :  (2..8) NOMBRE DE NOEUDS MAXIMUM DES ELEMENTS 
  12 : C      ITRTRI:  LES VOISINS DES ELEMENTS
  13 : C      NBCMAX :  (2..6) NOMBRE DE COTES MAXIMUM DES ELEMENTS 
  14 : C      IND    :  INDICE DU PREMIER ELEMENT DE L'ENSEMBLE
  15 : C      NBE    :  NOMBRE D'ELEMENTS DE L'ENSEMBLE
  16 : C      NCFMAX:  NOMBRE MAXIMUM DE SOMMETS DES ELEMENTS FRONTIERE
  17 : C                =IDE SAUF EN 3D POUR LES PRISMES,PYRAMIDES,HEXA
  18 : C     EN SORTIE: 
  19 : C      IFAC  :  LISTE DES FACES DE LA FRONTIERE 
  20 : C               NUMERO D'ELEMENT,INDICE DE LA FACE POUR L'ELEMENT
  21 : C               L'INDICE EST POSITIF SI LA FRONTIERE EST REELLE
  22 : C               L'INDICE EST NEGATIF SI C'EST UNE FRONTIERE INTERIEURE
  23 : C               EN ABSOLU 0 < | INDICE | < NBCMAX+1
  24 : C      NBFAC :  NOMBRE D'ELEMENTS DE LA FRONTIERE
  25 : C      iarr  :  CODE D'ERREUR 0 => OK, -2 => NCFMAX TROP PETIT
  26 : C     CONDITION D'APPLICATION : MAILLAGE MIXTE 1D,2D ET 
  27 : C                               ET TETRAEDRES
  28 : C     ************************************************************
  29 :       IMPLICIT INTEGER(I-N)
  30 :       INTEGER    IDE,ITRNOE(*),NBNMAX,ITRTRI(*),NBCMAX,IND,NBE
  31 :       INTEGER    IFAC(*),NBFAC,NFAMAX,iarr
  32 : C
  33 :       INTEGER    I,J,INDF,NBRN,NBC 
  34 :       EXTERNAL   STRNBN,STRNBC
  35 :       INTEGER    STRNBN,STRNBC
  36 : C
  37 :       iarr = 0
  38 :       NBFAC = 0
  39 :       INDF = (NBE-IND)+1
  40 :       DO 20 I=IND,INDF
  41 :         DO 10 J=1,NBCMAX
  42 :           IF(( ITRTRI((I-1)*NBCMAX+J) .LE. 0 ).OR.
  43 :      >       ( ITRTRI((I-1)*NBCMAX+J) .GT. INDF ))THEN 
  44 :              NBRN = STRNBN(I,ITRNOE,NBNMAX)   
  45 :              NBC  = STRNBC(NBRN,IDE)
  46 :              IF(NBC.LT.J)GO TO 20
  47 :              NBFAC = NBFAC + 1
  48 :              IF(NBFAC.GT.NFAMAX)THEN
  49 :                iarr = -2
  50 :                GO TO 999
  51 :              ENDIF
  52 :              IFAC((NBFAC-1)*2+1) = I
  53 :              IFAC((NBFAC-1)*2+2) = J
  54 : C            --- POUR LES FRONTIERES INTERIEURES ---
  55 :              IF(ITRTRI((I-1)*NBCMAX+J).LT.0)
  56 :      >          IFAC((NBFAC-1)*2+2) = -J
  57 :           ENDIF
  58 :    10   CONTINUE
  59 :    20 CONTINUE
  60 :   999 END
  61 :  
  62 :  
  63 :  

© Cast3M 2003 - All rights reserved.
Disclaimer