Télécharger tmafrt.eso

Retour à la liste

Numérotation des lignes :

tmafrt
  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.  
  64.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales