Télécharger tmapar.eso

Retour à la liste

Numérotation des lignes :

tmapar
  1. C TMAPAR SOURCE CHAT 06/03/29 21:35:56 5360
  2. C
  3. C
  4. C
  5. SUBROUTINE TMAPAR(IDE,ITRTRI,NBCMAX,IND,NBE,
  6. > ITVL,ITRAMA,NBIT1,
  7. > ITRPAR,NBTRIP,NBPART,NPARMX,iarr)
  8. C **************************************************************
  9. C OBJET : PARTITIONNE UN MAILLAGE EN FONCTION DES COMPOSANTES
  10. C CONNEXES ET DES MATERIAUX
  11. C EN ENTREE:
  12. C IDE : (1..3) DIMENSION DES ELEMENTS
  13. C ITRTRI: LES VOISINS DES ELEMENTS
  14. C NBCMAX : (2..6) NOMBRE DE COTES MAXIMUM DES ELEMENTS
  15. C IND : INDICE DU PREMIER ELEMENT DE L'ENSEMBLE
  16. C NBE : NOMBRE D'ELEMENTS DE L'ENSEMBLE
  17. C ITVL,NBITL : TABLEAU DE TRAVAIL NBITL < NBCMAX*NBTRI
  18. C ITRAMA : " " " " DE TAILLE = NBTRI
  19. C EN SORTIE :
  20. C NBPAR : NOMBRE DE MATERIAUX
  21. C NBTRIP : NBTRIP(I) DONNE LE NOMBRE DE TRIANGLE DU MATERIAU I
  22. C ITRPAR: TABLEAU DES TRIANGLES TRIES EN FONCTION DU MATERIAU
  23. C LES TRIANGLES DU MATERIAU I SONT ENTRE :
  24. C ITRPAR(NBTRIP(I-1)+1) ET ITRPAR(NBTRIP(I))
  25. C iarr : CODE D'ERREUR 0 => OK, -2 => ITVL TROP PETIT
  26. C ***************************************************************
  27. IMPLICIT INTEGER(I-N)
  28. INTEGER IDE,ITRTRI(*),NBCMAX,IND,NBE
  29. INTEGER ITRPAR(*), NBTRIP(*),NBPART,NPARMX,iarr
  30. INTEGER ITRAMA(*), ITVL(*), NBIT1
  31. C
  32. INTEGER I, IT, INDICE, NBTT, INDF
  33. C
  34. C INITIALISATION
  35. C --------------
  36. NBPART = 0
  37. iarr = 0
  38. NBTT = 0
  39. INDF = (NBE-IND)+1
  40. DO 10 I=IND,INDF
  41. ITRAMA(I) = 0
  42. 10 CONTINUE
  43. NBTT=0
  44. IT = IND
  45. 20 IF( NBTT .EQ. NBE )GOTO 888
  46. 30 IF( ITRAMA(IT) .NE. 0 )THEN
  47. IT=IT+1
  48. IF( IT .GT. INDF )GO TO 999
  49. GO TO 30
  50. ENDIF
  51. NBPART = NBPART+1
  52. IF( NBPART.GT.NPARMX)THEN
  53. iarr = -2
  54. GO TO 999
  55. ENDIF
  56. INDICE = NBTT+1
  57. NBTRIP(NBPART) = 0
  58. CALL TMA1CC(IDE,ITRTRI,NBCMAX,IND,NBE,IT,ITVL,ITRAMA,
  59. > NBIT1,ITRPAR(INDICE),NBTRIP(NBPART),iarr)
  60. IF( iarr .NE. 0 )GO TO 999
  61. NBTT = NBTT + NBTRIP(NBPART)
  62. GO TO 20
  63. C --- POUR LE DEBUG ---
  64. 888 DO 890 I=IND,INDF
  65. IF( ITRAMA(I).EQ.0 )THEN
  66. iarr = -1
  67. ENDIF
  68. 890 CONTINUE
  69. 999 END
  70.  
  71.  
  72.  
  73.  

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