Download sfrcre.eso

Back to the list

   1 : C SFRCRE    SOURCE    CHAT      06/03/29    21:33:19     5360           
   2 :       SUBROUTINE SFRCRE(IDE,IFR,NBIFR,ITRNOE,NBNMAX,
   3 :      >                    ITVL,NTRMAX,
   4 :      >                    LTRNOE,NNFMAX,LTRTRI,NCFMAX,NBF,
   5 :      >                    LNOETR,NBFNOE,NCC,iarr)
   6 : C     *****************************************************************
   7 : C     OBJET : CREER LE MAILLAGE FRONTIERE D'UN ENSEMBLE DE MAILLES
   8 : C              
   9 : C     EN ENTREE: 
  10 : C      IFR    :  IFR((I-1)*2+1) DONNE LE NUMERO DU IEME ELEMENT QUI A 
  11 : C                UNE FACE SUR LA FRONTIERE
  12 : C                IFR((I-1)*2+2) DONNE LE NUMERO RELATIF DE LA FACE DU
  13 : C                IEME ELEMENT
  14 : C      NBIFR  :  NOMBRE D'ELEMENT DE LA FRONTIERE
  15 : C
  16 : C      IDE    :  (1..3) DIMENSION DES ELEMENTS 
  17 : C      NBNMAX :  (2..8) NOMBRE DE NOEUDS MAXIMUM DES ELEMENTS 
  18 : C      ITRNOE: ITRNOE(I,J) EST LE NOEUD J DE L'ELEMENT I
  19 : C      ITVL: TABLEAU DE TRAVAIL        
  20 : C      NTRMAX: TAILLE DU TABLEAU DE TRAVAIL 
  21 : C               SI IFR FORME 1 SEULE COMPOSANTE CONNEXE
  22 : C               AU MINIMUM    = 2*((NBIFR*(NBCMAX-2))+2*NBCMAX)
  23 : C               2D TRIANGLES  = 2 * NBIFR + 12
  24 : C               QUAD OU TETRA = 4 * NBIFR + 16
  25 : C               AU MAX = (NBR MAX D'ELEMENTS EN 1 NOEUD + 1) *
  26 : C                         NUMERO MAXI DU NOEUD DANS IFR
  27 : C
  28 : C      NNFMAX : NOMBRE MAXIMUM DE NOEUD SUR UNE FACE DE LA FRONTIERE
  29 : C      NCFMAX : NOMBRE MAXIMUM DE COTE D'UNE FACE DE LA FRONTIERE
  30 : C      NBFNOE  : TAILLE DU TABLEAU LNOETR
  31 : C                SI NBFNOE = 0 LNOETR NE SERA PAS REMPLI
  32 : C
  33 : C     EN SORTIE: LE MAILLAGE DE LA FRONTIERE ET SES CARACTERISTIQUES
  34 : C        LTRNOE: 
  35 : C        LTRTRI:
  36 : C        LNOETR:
  37 : C        NBF    : NOMBRE DE FACES DE LA FRONTIERE
  38 : C        NCC    : NOMBRE DE COMPOSANTES CONNEXES
  39 : C        iarr   : CODE D'ERREUR 
  40 : C                  0 SI OK
  41 : C                 -1 SI LES DONNEES SONT ERRONEES
  42 : C                 -2 SI ITVL TROP PETIT
  43 : C
  44 : C     NIVEAU : INTERFACE UTILISATEUR
  45 : C     *****************************************************************
  46 :       IMPLICIT INTEGER(I-N)
  47 :       INTEGER   IDE,IFR(*),NBIFR,ITRNOE(*),NBNMAX
  48 :       INTEGER   ITVL(*),NTRMAX
  49 :       INTEGER   LTRNOE(*),NNFMAX,LTRTRI(*),NCFMAX,NBF
  50 :       INTEGER   LNOETR(*),NBFNOE,NCC,iarr
  51 : C
  52 :       INTEGER I,IDEF
  53 :       INTEGER ITRAV,ITRAM,NBTRAV
  54 : C
  55 : C     NOEUDS DE LA FRONTIERE
  56 : C     ----------------------
  57 : C
  58 :       IF( (NCFMAX * NBIFR).GT.NTRMAX )THEN
  59 :          iarr = -2
  60 :          GO TO 999
  61 :       ENDIF 
  62 : C
  63 :       DO 10 I=1,NBIFR
  63 :         CALL TNOFRT(IDE,ITRNOE,NBNMAX,IFR((I-1)*2+1),
  64 :      >             IFR((I-1)*2+2),ITVL((I-1)*NCFMAX+1))
  65 :    10 CONTINUE
  66 :       IF( iarr .NE. 0 )GO TO 999
  67 : C
  68 : C     CONSTRUCTION DU MAILLAGE FRONTIERE
  69 : C     ----------------------------------
  70 :       IDEF = IDE - 1
  71 : C     --- ALLOCATION DES TABLEAUX : ITRAV,ITRAM,ITRAP ----
  72 : C     TOPOFRTM OCCUPE ITVL DE 1 - NBF*NCFMAX
  73 : C     ITRAM DOIT AVOIR LA TAILLE DE NBF
  74 : C     NBTRAV PEUT VARIER DE 0 A (NCFMAX + 1) * NBF 
  75 : C     -------------------------------------------------   
  76 :       IF( NTRMAX .LT. (NBF * (NCFMAX+1)) )THEN
  77 :         iarr = -2
  78 :         GO TO 999
  79 :       ENDIF
  80 : C
  81 :       ITRAV  = (NBF * NCFMAX ) + 1
  82 :       NBTRAV = NTRMAX -  ( NBF * NCFMAX )
  83 : C
  83 :       CALL SMACRE(IDEF,ITVL,NBF,0,LTRNOE,NNFMAX,
  84 :      >             LTRTRI,NCFMAX,LNOETR,NBFNOE,
  85 :      >             ITVL(ITRAV),NBTRAV,iarr)
  86 : C
  87 :       IF( iarr .NE. 0 )GO TO 999
  88 :       ITRAM  = 1
  89 :       ITRAV  = NBF + 1
  90 :       NBTRAV = NTRMAX -  NBF
  90 :       CALL SORIEN(IDEF,LTRNOE,NNFMAX,LTRTRI,NCFMAX,NBF,
  91 :      >              ITVL(ITRAV),NBTRAV,ITVL(ITRAM),NCC,iarr)
  92 : C
  93 :   999 END
  94 :  
  95 :  
  96 :  

© Cast3M 2003 - All rights reserved.
Disclaimer