Télécharger trjini.eso

Retour à la liste

Numérotation des lignes :

trjini
  1. C TRJINI SOURCE CB215821 23/01/25 21:15:37 11573
  2. SUBROUTINE TRJINI(IZREF,IZCOU,IZLAC,MELEME,IZVIT,IZCENT,IELTFA,
  3. * IZSH,TMIN)
  4. C
  5. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  6. C
  7. C appelé par TRJPAR
  8. C appelle TRJPEL qui localise les particules dans le maillage general
  9. C Initialise le calcul des trajectoires
  10. C ICI ON CONSTRUIT IZREF ( COORDONNEES DE REFERENCES )
  11. C IZCOU segment créé dans TRJCOU
  12. C IZLAC maillage constitué par la position initales des particules
  13. C MELEME maillage du domaine
  14. C IZVIT segment créé dans TRJVIT ou TRJFLU
  15. C IZCENT maillage des points centres de la table DOMAINE
  16. C IELTFA maillage des connectivitées faces elements ( cf DOMAINE)
  17. C
  18. CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
  19. C
  20. IMPLICIT INTEGER(I-N)
  21. IMPLICIT REAL*8 (A-H,O-Z)
  22. C
  23.  
  24. -INC PPARAM
  25. -INC CCOPTIO
  26. -INC SMCOORD
  27. -INC SMELEME
  28. -INC SMCHPOI
  29. C
  30. POINTEUR IZLAC.MELEME,IZCENT.MELEME,IELTFA.MELEME
  31. SEGMENT IZPART
  32. INTEGER NLEPA(NPART),NUMPA(NPART)
  33. REAL*8 COORPA(NDIM,NPART)
  34. ENDSEGMENT
  35. POINTEUR IZREF.IZPART
  36. SEGMENT IZCOU
  37. REAL*8 DTCO(NEL),COU
  38. ENDSEGMENT
  39. SEGMENT IZSH
  40. REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9)
  41. ENDSEGMENT
  42. C
  43. SEGMENT IZVIT
  44. REAL*8 TEMTRA(NVIPT)
  45. INTEGER IPUN(NBS),IDUN(NBS),IPVPT(NVIPT),IFORML
  46. ENDSEGMENT
  47. C IDUN(I) nombre d elements avant le sous maillage I
  48. C IPVPT pointeurs de izvpt pour chaque pas de temps
  49. SEGMENT IZVPT
  50. INTEGER IPUN1(NBS),IPUMAX
  51. ENDSEGMENT
  52. SEGMENT IZUN
  53. REAL*8 UN(I1,I2,I3)
  54. ENDSEGMENT
  55. POINTEUR IZUN1.IZUN ,IZUN2.IZUN
  56. C
  57. SEGACT IZLAC
  58. NPART=IZLAC.NUM(/2)
  59. NDIM=IDIM
  60. SEGINI IZPART
  61. C write(6,*)' ini izpart ',izpart
  62. SEGINI IZREF
  63. C write(6,*)' ini izref ',izref
  64. SEGACT,MCOORD
  65. DO 10 I=1,NPART
  66. IP=IZLAC.NUM(1,I)
  67. COORPA(1,I)=XCOOR((IP-1)*(IDIM+1)+1)
  68. COORPA(2,I)=XCOOR((IP-1)*(IDIM+1)+2)
  69. IF(IDIM.EQ.3) COORPA(3,I)=XCOOR((IP-1)*(IDIM+1)+3)
  70. NUMPA(I)=I
  71. 10 CONTINUE
  72. C
  73. CALL TRJPEL(IZPART,IZREF,MELEME,IZVIT,IZCOU,IZCENT,IELTFA,IZSH,
  74. * TMIN)
  75. IF(IERR.GT.0)RETURN
  76. C
  77. K=0
  78. DO 30 IPART=1,NPART
  79. C on ne conserve que les particules qui sont effectivement
  80. C dans le domaine (sinon on ecrit un message)
  81. IF(NLEPA(IPART).EQ.0) THEN
  82. INTERR(1)=IPART
  83. REAERR(3)=0.0
  84. DO 55 I=1,NDIM
  85. REAERR(I)=REAL(COORPA(I,IPART))
  86. 55 CONTINUE
  87. CALL ERREUR(-299)
  88. ELSE
  89. K=K+1
  90. NLEPA(K)=NLEPA(IPART)
  91. IZREF.NLEPA(K)=IZREF.NLEPA(IPART)
  92. NUMPA(K)=NUMPA(IPART)
  93. IZREF.NUMPA(K)=IZREF.NUMPA(IPART)
  94. DO 20 I=1,NDIM
  95. COORPA(I,K)=COORPA(I,IPART)
  96. IZREF.COORPA(I,K)=IZREF.COORPA(I,IPART)
  97. 20 CONTINUE
  98. C write(6,*)' nlepa ',nlepa(k),numpa(k),(coorpa(i,k),i=1,ndim),
  99. C * (izref.coorpa(i,k),i=1,ndim)
  100. ENDIF
  101. 30 CONTINUE
  102. NPART=K
  103. SEGADJ IZREF
  104. C write(6,*)' adj izref ',izref
  105. C write(6,*)' sup izpart ',izpart
  106. SEGSUP IZPART
  107. SEGDES IZLAC
  108. RETURN
  109. C
  110. C
  111. END
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  

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