Download saudif.eso

Back to the list

   1 : C SAUDIF    SOURCE    CHAT      05/01/13    03:11:15     5004           
   2 :       SUBROUTINE SAUDIF(NDIM,Z,XDEP2,UREEL,DTREEL,XNORM,UXY
   3 :      $     ,DIFL,DIFT,U,XARI2)
   4 : *************************************************************************
   5 : *** SP 'SAUDIF' : fait avancer la particule d'un pas de tps 'DTREEL' par
   6 : *** dispersion explicite uniquement dans l'element reel considere
   7 : *** 
   8 : *** APPELES 1 = 'MATMAT'
   9 : *** APPELES 2 = aucun
  10 : ***
  11 : *** E = 'NDIM' dimension de l'espace
  12 : ***     'Z' vecteur aleatoire entre -1 et 1 pour le saut diffusif
  13 : ***     'XDEP2' coordonnees reelles de depart apres convection 
  14 : ***     'UREEL' vitesse particule dans l'element reel au pt de depart
  15 : ***     'DTREEL' pas de tps reel considere pour avancee particule
  16 : ***     'XNORM' norme de la vitesse
  17 : ***     'UXY' -> racine carree de UX*UX+UY*UY (cas 3D)
  18 : ***     'DIFL' coefficient dispersion longitudinal ds elemt
  19 : ***     'DIFT' coefficient dispersion transversal ds elemt
  20 : ***
  21 : *** S = 'U' vecteur "vitesse diffusive" = XL*Z = XPASS*XLU*Z
  22 : ***     'XARI2' coordonnees reelles d'arrivee apres diffusion
  23 : ***
  24 : 
Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 6 in C:\xampp\htdocs\cast3m_kit_local_fr_en_2014\sources.php on line 158
25 : *** 26 : *** Auteur Cyril Nou 27 : ************************************************************************* 28 : IMPLICIT INTEGER(I-N) 29 : IMPLICIT REAL*8 (A-H,O-Z) 30 : -INC CCREEL 31 : DIMENSION XDEP2(3),XARI2(3),UREEL(3) 32 : DIMENSION Z(3),U(3),XLU(3,3),XL(3,3),XPASS(3,3) 33 : *** initialisation de depart des vecteurs et matrices 34 : DO 10 I=1,3 35 : U(I)=0.D0 36 : DO 20 J=1,3 37 : XLU(I,J)=0.D0 38 : XL(I,J)=0.D0 39 : XPASS(I,J)=0.D0 40 : 20 CONTINUE 41 : 10 CONTINUE 42 : 43 : ************************************************** 44 : *** CAS DE LA DIFFUSION PURE (SANS CONVECTION) *** 45 : ************************************************** 46 : 47 : IF (ABS(XNORM).LE.XZPREC) THEN 48 : *** matrice associée à la diffusion moleculaire ds repere absolu 49 : XLU(1,1)=SQRT(6*DIFL) 50 : XLU(2,2)=SQRT(6*DIFT) 51 : XLU(3,3)=SQRT(6*DIFT) 52 : *** vecteur associé à la "vitesse diffusive" ds repere absolu 52 : CALL MATMAT(XLU,Z,3,3,1,U) 53 : 54 : ************************************************* 55 : *** CAS DE LA DIFFUSION ASSOCIEE A CONVECTION *** 56 : ************************************************* 57 : 58 : ELSE 59 : ********** CAS 2D ********** 60 : IF (NDIM.EQ.2) THEN 61 : *** matrice de passage du repere lié à la vitesse vers repere absolu 62 : XPASS(1,1)=UREEL(1)/XNORM 63 : XPASS(1,2)=-UREEL(2)/XNORM 64 : XPASS(2,1)=UREEL(2)/XNORM 65 : XPASS(2,2)=UREEL(1)/XNORM 66 : *** matrice associée à la diffusion dans le repere lié à la vitesse 67 : XLU(1,1)=SQRT(6*DIFL) 68 : XLU(2,2)=SQRT(6*DIFT) 69 : *** matrice associée à la diffusion dans le repere absolu 69 : CALL MATMAT(XPASS,XLU,3,3,3,XL) 70 : *** vecteur associé à la "vitesse diffusive" dans le repere absolu 70 : CALL MATMAT(XL,Z,3,3,1,U) 71 : ********** CAS 3D ********** 72 : ELSEIF (NDIM.EQ.3) THEN 73 : *** matrice de passage du repere lié à la vitesse vers repere absolu 74 : IF ((ABS(UREEL(1)/XNORM).LE.XZPREC) 75 : $ .AND.(ABS(UREEL(2)/XNORM).LE.XZPREC)) THEN 76 : *** cas particulier ou UX=UY=0 et UZ<>0 77 : XPASS(1,2)=1 78 : XPASS(2,3)=1 79 : XPASS(3,1)=1 80 : ELSE 81 : *** cas classique general 82 : XPASS(1,1)=UREEL(1)/XNORM 83 : XPASS(2,1)=UREEL(2)/XNORM 84 : XPASS(3,1)=UREEL(3)/XNORM 85 : XPASS(1,2)=-UREEL(2)/UXY 86 : XPASS(2,2)=UREEL(1)/UXY 87 : XPASS(3,2)=0 88 : XPASS(1,3)=-UREEL(1)*UREEL(3)/(XNORM*UXY) 89 : XPASS(2,3)=-UREEL(2)*UREEL(3)/(XNORM*UXY) 90 : XPASS(3,3)=UXY/XNORM 91 : ENDIF 92 : *** matrice associée à la diffusion dans le repere lié à la vitesse 93 : XLU(1,1)=SQRT(6*DIFL) 94 : XLU(2,2)=SQRT(6*DIFT) 95 : XLU(3,3)=SQRT(6*DIFT) 96 : *** matrice associée à la diffusion dans le repere absolu 96 : CALL MATMAT(XPASS,XLU,3,3,3,XL) 97 : *** vecteur associé à la "vitesse diffusive" dans le repere absolu 97 : CALL MATMAT(XL,Z,3,3,1,U) 98 : ENDIF 99 : ENDIF 100 : 101 : *********************************************** 102 : *** CALCUL DU PT D'ARRIVEE DS REPERE ABSOLU *** 103 : *********************************************** 104 : 105 : DO 30 I=1,NDIM 106 : XARI2(I)=XDEP2(I)+U(I)*SQRT(DTREEL) 107 : 30 CONTINUE 108 : 109 : RETURN 110 : END 111 : 112 : 113 : 114 : 115 : 116 :

© Cast3M 2003 - All rights reserved.
Disclaimer