Télécharger trjcdt.eso

Retour à la liste

Numérotation des lignes :

trjcdt
  1. C TRJCDT SOURCE CHAT 05/01/13 03:48:54 5004
  2. SUBROUTINE TRJCDT(NDIM,DIAM,IZVIT,IVPT,IEL1,DIFL,DIFT,UCEN,DTCALC)
  3. ***************************************************************************
  4. *** SP 'TRJCDT' : permet de choisir un pas de tps judicieux (traversée
  5. *** de la maille en 5 pas de tps en moyenne) pour le calcul de
  6. *** l'avancée de la particule dans la maille par convection+diffusion.
  7. ***
  8. *** APPELES 1 = aucun
  9. *** APPELES 2 = aucun
  10. ***
  11. *** E = 'NDIM' dimension de l'espace
  12. *** 'DIAM' "longueur caracteristique" de la maille considérée
  13. *** 'IZVIT' segment decrivant les vitesses (<- 'TRJVIT' OU 'TRJFLU')
  14. *** 'IVPT' entier valant dans le cas du régime permanent
  15. *** 'IEL1' n° global de l'element contenant particule
  16. *** 'DIFL' coefficient dispersion longitudinal ds element
  17. *** 'DIFT' coefficient dispersion transversal ds element
  18. *** 'UCEN' vitesse ds element reel au pt centre
  19. ***
  20. *** S = 'DTCALC' pas de tps utilisé pour calcul saut particule
  21. ***
  22. *** Rq : critere convectif, dtcalcul=1/5*(diam/ucentre)
  23. *** critere diffusif, dtcalcul=1/5*diam²/(6*max(dl,dt))
  24. ***
  25. *** ORIGINE = CYRIL NOU
  26. ******************************************************************************
  27. IMPLICIT INTEGER(I-N)
  28. IMPLICIT REAL*8 (A-H,O-Z)
  29. SEGMENT IZSH
  30. REAL*8 SHP(6,MNO9),SHY(12,MNO9),XYZL(3,MNO9)
  31. ENDSEGMENT
  32. SEGMENT IZVIT
  33. REAL*8 TEMTRA(NVIPT)
  34. INTEGER IPUN(NBS),IDUN(NBS),IPVPT(NVIPT),IFORML
  35. ENDSEGMENT
  36. SEGMENT IZVPT
  37. INTEGER IPUN1(NBS),IPUMAX
  38. ENDSEGMENT
  39. SEGMENT IZUN
  40. REAL*8 UN(I1,I2,I3)
  41. ENDSEGMENT
  42. SEGMENT IZUMAX
  43. REAL*8 UMAX(NBREL)
  44. ENDSEGMENT
  45. DIMENSION UCEN(3)
  46.  
  47. *** recuperation de la vitesse ou flux maximal dans l'element 'IEL1'
  48. IZVPT=IPVPT(IVPT)
  49. SEGACT IZVPT
  50. IZUMAX=IPUMAX
  51. SEGACT IZUMAX
  52. UEM=UMAX(IEL1)
  53. SEGDES IZUMAX
  54. SEGDES IZVPT
  55. *** initialisation à -1 des variables de travail
  56. DTC=-1.D0
  57. DTD=-1.D0
  58. DTCALC=-1.D0
  59. DIFCAL=-1.D0
  60. *** calcul de la norme de la vitesse au centre (moyenne sur element)
  61. UNORM=0.D0
  62. DO 10 I=1,NDIM
  63. UNORM=UNORM+UCEN(I)**2
  64. 10 CONTINUE
  65. UNORM=SQRT(UNORM)
  66. *** pas de tps selon un critere convectif
  67. IF (UNORM.GT.0.D0) DTC=DIAM/(5*UNORM)
  68. *** recuperation du coeff dispersion max
  69. IF (DIFL.GE.DIFT) THEN
  70. DIFCAL=DIFL
  71. ELSE
  72. DIFCAL=DIFT
  73. ENDIF
  74. *** pas de tps selon un critere diffusif
  75. IF (DIFCAL.GT.0.D0) DTD=(DIAM)**2/(5*6*DIFCAL)
  76. *** on choisit le min pour pas de tps de calcul
  77. IF (DTC.GT.0.D0) THEN
  78. IF (DTD.GT.0.D0) THEN
  79. IF (DTC.GE.DTD) THEN
  80. DTCALC=DTD
  81. ELSE
  82. DTCALC=DTC
  83. ENDIF
  84. ELSE
  85. *** cas ou pas de diffusion
  86. DTCALC=DTC
  87. ENDIF
  88. ELSE
  89. IF (DTD.GT.0.D0) THEN
  90. *** cas ou pas de convection
  91. DTCALC=DTD
  92. ELSE
  93. *** aucun mouvement! (ni convection, ni diffusion)
  94. IEL1=-1
  95. ENDIF
  96. ENDIF
  97.  
  98. RETURN
  99. END
  100.  
  101.  
  102.  
  103.  
  104.  

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