1 : C FIMTR2 SOURCE CHAT 05/01/13 00:00:58 5004
2 : SUBROUTINE FIMTR2(SORGAS,ILIINC,ICEN,IRO,IROVIT,IGRAV,IRKA,
3 : & IREPS,IGRADR,IGRADV,IMUT,TSIGT,TCEPS1,TCEPS2,IRES)
4 : C************************************************************************
5 : C
6 : C PROJET : CASTEM 2000
7 : C
8 : C NOM : FIMTR2
9 : C
10 : C DESCRIPTION : VOIR FIMTR1
11 : C
12 : C Discretisation of the source term
13 : C related to the gravity and k-\eps model
14 : C and the source terms of the equations
15 : C for species mass conservation
16 : C
17 : C LANGAGE : FORTRAN 77 + ESOPE 2000 (avec extensions CISI)
18 : C
19 : C AUTEUR : S. Kudriakov, DEN/DM2S/SFME/LTMF
20 : C
21 : C************************************************************************
22 : C
23 : C ENTREES :
24 : C SORGAS : pointer to the source terms
25 : C and the form. enthalpies of the species
26 : C
27 : C ILIINC : LISTMOTS, noms des inconnues
28 : C
29 : C ICEN : SPG geometrique
30 : C
31 : C IRO : CHPOINT, densité
32 : C
33 : C IROVIT : CHPOINT qdm
34 : C
35 : C IGRAV : CHPOINT gravité
36 : C
37 : C IRKA : CHPOINT density '*' k
38 : C
39 : C IREPS : CHPOINT density '*' \eps
40 : C
41 : C IGRADR : CHPOINT gradient of the density
42 : C
43 : C IGRADV : CHPOINT gradient of the velocity
44 : C
45 : C IMUT : CHPOINT turbulent viscosity
46 : C
47 : C TSIGT : REEL turbulent constant \sigma_t
48 : C
49 : C TCEPS1 : REEL turbulent constant C_{\eps 1}
50 : C
51 : C TCEPS2 : REEL turbulent constant C_{\eps 2}
52 : C
53 : C SORTIES : IRES : CHPOINT residu
54 : C
55 : C
56 : C************************************************************************
57 : C
58 : C HISTORIQUE (Anomalies et modifications éventuelles)
59 : C
60 : C HISTORIQUE : Créée le 3.12.03
61 : C
62 : C************************************************************************
63 : C
64 : C
65 : C**** Variables de COOPTIO
66 : C
67 : C INTEGER IPLLB, IERPER, IERMAX, IERR, INTERR
68 : C & ,IOTER, IOLEC, IOIMP, IOCAR, IOACQ
69 : C & ,IOPER, IOSGB, IOGRA, IOSAU, IORES
70 : C & ,IECHO, IIMPI, IOSPI
71 : C & ,IDIM
72 : C & ,MCOORD
73 : C & ,IFOMOD, NIFOUR, IFOUR, NSDPGE, IONIVE
74 : C & ,NGMAXY, IZROSF, ISOTYP, IOSCR, LTEXLU
75 : C & ,NORINC, NORVAL, NORIND, NORVAD
76 : C & ,NUCROU, IPSAUV, IFICLE, IPREFI
77 : C
78 : C**** Les variables
79 : C
80 : IMPLICIT INTEGER(I-N)
81 : -INC CCOPTIO
82 : -INC SMELEME
83 : -INC SMCHPOI
84 : POINTEUR MPRO.MPOVAL, MPROV.MPOVAL, MPGRAV.MPOVAL,
85 : & MPSOUR.MPOVAL, MPTTT.MPOVAL, MPGRDR.MPOVAL
86 : c--------------------------------------------------
87 : SEGMENT SORGAS
88 : REAL*8 H0K(NESP+1)
89 : POINTEUR SOUR(NESP+1).MCHPOI
90 : ENDSEGMENT
91 : SEGMENT LIPOV2
92 : POINTEUR MPSS(0).MPOVAL
93 : ENDSEGMENT
94 : c--------------------------------------------------
95 : INTEGER ILIINC,ICEN,IRKA,IREPS,IRES,N1,NLCE,NSPEC
96 : & ,IGEOM,NESP,IGRADR,IGRADV,IMUT,IESP
97 : CHARACTER*8 TYPE
98 : REAL*8 REPS, RKA, CE1, CE2, VISTUR
99 : REAL*8 DUDX,DUDY,DUDZ,DVDX,DVDY,DVDZ,DWDX,DWDY,DWDZ
100 : REAL*8 TDIV,S11,S12,S13,S22,S23,S33,STOT,PRTOT
101 : REAL*8 RO,RVX,RVY,RVZ,GX,GY,GZ,SSPEC
102 : REAL*8 ROX,ROY,ROZ,SIGT,GRT,GREPS
103 : REAL*8 TSIGT,TCEPS1,TCEPS2
104 : REAL*8 SUMREA, STST, VTEM
105 : C--------------------------------------------------
106 : CE1 = TCEPS1
107 : CE2 = TCEPS2
108 : SIGT = TSIGT
109 : C--------------------
110 : IPT1 = ICEN
111 : SEGACT IPT1
112 : N1 = IPT1.NUM(/2)
113 : SEGDES IPT1
114 : C
115 : C**** Creation de CHPOINT IRES
116 : C
117 : TYPE=' '
117 : CALL KRCHP1(TYPE,ICEN,IRES,ILIINC)
118 : C
119 : C
120 : C**** Lecture de MPOVALs
121 : C
121 : CALL LICHT(IRO,MPRO,TYPE,IGEOM)
121 : CALL LICHT(IROVIT,MPROV,TYPE,IGEOM)
121 : CALL LICHT(IGRAV,MPGRAV,TYPE,IGEOM)
122 : C--------------------------------------
122 : CALL LICHT(IRKA,MPOVA1,TYPE,IGEOM)
122 : CALL LICHT(IREPS,MPOVA2,TYPE,IGEOM)
122 : CALL LICHT(IGRADR,MPGRDR,TYPE,IGEOM)
122 : CALL LICHT(IGRADV,MPOVA3,TYPE,IGEOM)
122 : CALL LICHT(IMUT,MPOVA5,TYPE,IGEOM)
122 : CALL LICHT(IRES,MPOVA4,TYPE,IGEOM)
123 : C
124 : C**** LICHT active les MPOVALs en *MOD
125 : C
126 : C i.e.
127 : C
128 : C SEGACT MPOVA1*MOD
129 : C SEGACT MPOVA2*MOD
130 : C SEGACT MPOVA3*MOD
131 : C SEGACT MPOVA4*MOD
132 : C
133 : C
134 : C---------------------------------------------
135 : SEGINI LIPOV2
136 : SEGACT SORGAS
137 : NESP=SORGAS.SOUR(/1)-1
138 : DO IESP=1,NESP
139 : ICSOUR=SORGAS.SOUR(IESP)
139 : CALL LICHT(ICSOUR,MPSOUR,TYPE,IGEOM)
140 : LIPOV2.MPSS(**)=MPSOUR
141 : ENDDO
142 : C---------------------------------------------
143 : DO NLCE = 1, N1, 1
144 : C
145 : C******* Les differents variables a chaque centre
146 : C
147 : c-----------------------------------
148 : DUDZ = 0.0D0
149 : DVDZ = 0.0D0
150 : DWDX = 0.0D0
151 : DWDY = 0.0D0
152 : DWDZ = 0.0D0
153 : S13 = 0.0D0
154 : S23 = 0.0D0
155 : S33 = 0.0D0
156 : RVZ = 0.0D0
157 : GZ = 0.0D0
158 : ROZ = 0.0D0
159 : IF(IDIM .EQ. 2) THEN
160 : DUDX = MPOVA3.VPOCHA(NLCE,1)
161 : DUDY = MPOVA3.VPOCHA(NLCE,2)
162 : DVDX = MPOVA3.VPOCHA(NLCE,3)
163 : DVDY = MPOVA3.VPOCHA(NLCE,4)
164 : TDIV=2.0D0*(DUDX+DVDY)/3.0D0
165 : S11 = 2.0D0*DUDX-TDIV
166 : S12 = DUDY+DVDX
167 : S22 = 2.0D0*DVDY-TDIV
168 : STOT=(S11*DUDX)+(S12*S12)+(S22*DVDY)
169 : ELSE
170 : DUDX = MPOVA3.VPOCHA(NLCE,1)
171 : DUDY = MPOVA3.VPOCHA(NLCE,2)
172 : DUDZ = MPOVA3.VPOCHA(NLCE,3)
173 : DVDX = MPOVA3.VPOCHA(NLCE,4)
174 : DVDY = MPOVA3.VPOCHA(NLCE,5)
175 : DVDZ = MPOVA3.VPOCHA(NLCE,6)
176 : DWDX = MPOVA3.VPOCHA(NLCE,7)
177 : DWDY = MPOVA3.VPOCHA(NLCE,8)
178 : DWDZ = MPOVA3.VPOCHA(NLCE,9)
179 : TDIV=2.0D0*(DUDX+DVDY+DWDZ)/3.0D0
180 : S11 = 2.0D0*DUDX-TDIV
181 : S12 = DUDY+DVDX
182 : S13 = DUDZ+DWDX
183 : S22 = 2.0D0*DVDY-TDIV
184 : S23 = DVDZ+DWDY
185 : S33 = 2.0D0*DWDZ-TDIV
186 : STOT=(S11*DUDX)+(S12*S12)+(S13*S13)+
187 : & (S22*DVDY)+(S23*S23)+(S33*DWDZ)
188 : ENDIF
189 : VISTUR = MPOVA5.VPOCHA(NLCE,1)
190 : *------ Creating the production term
191 : RO = MPRO.VPOCHA(NLCE,1)
192 : RVX = MPROV.VPOCHA(NLCE,1)
193 : RVY = MPROV.VPOCHA(NLCE,2)
194 : GX = MPGRAV.VPOCHA(NLCE,1)
195 : GY = MPGRAV.VPOCHA(NLCE,2)
196 : IF(IDIM .EQ. 3)THEN
197 : RVZ = MPROV.VPOCHA(NLCE,3)
198 : GZ = MPGRAV.VPOCHA(NLCE,3)
199 : ENDIF
200 : c-----------------------------------
201 : RKA = MPOVA1.VPOCHA(NLCE,1)
202 : REPS = MPOVA2.VPOCHA(NLCE,1)
203 : PRTOT=VISTUR*STOT-(TDIV*RKA)
204 : *---- turbulent gravity term ----------
205 : ROX = MPGRDR.VPOCHA(NLCE,1)
206 : ROY = MPGRDR.VPOCHA(NLCE,2)
207 : IF(IDIM .EQ. 3)THEN
208 : ROZ = MPGRDR.VPOCHA(NLCE,3)
209 : ENDIF
210 : GRT=(-1.0D0)*VISTUR*(ROX*GX+ROY*GY+ROZ*GZ)/(SIGT*RO)
211 : IF(GRT .LE. 0.0D0) THEN
212 : GREPS = 0.0D0
213 : ELSE
214 : GREPS = CE1*GRT*REPS/RKA
215 : ENDIF
216 : *------------------------------------
217 : MPOVA4.VPOCHA(NLCE,1) = 0.0D0
218 : MPOVA4.VPOCHA(NLCE,2) = RO*GX
219 : MPOVA4.VPOCHA(NLCE,3) = RO*GY
220 : IF(IDIM .EQ. 3)THEN
221 : MPOVA4.VPOCHA(NLCE,4) = RO*GZ
222 : ENDIF
223 : c-----------------------------------
224 : SUMREA = 0.0D0
225 : STST = 0.0D0
226 : DO NSPEC = 1,NESP
227 : MPTTT = LIPOV2.MPSS(NSPEC)
228 : SSPEC = MPTTT.VPOCHA(NLCE,1)
229 : VTEM = SORGAS.H0K(NSPEC)
230 : STST = STST + SSPEC*VTEM
231 : SUMREA = SUMREA + SSPEC
232 : MPOVA4.VPOCHA(NLCE,IDIM+2+NSPEC)=SSPEC
233 : ENDDO
234 : VTEM = SORGAS.H0K(NESP+1)
235 : STST = STST - (VTEM*SUMREA)
236 : MPOVA4.VPOCHA(NLCE,IDIM+2) = (RVX*GX)+(RVY*GY)+(RVZ*GZ)-STST
237 : MPOVA4.VPOCHA(NLCE,IDIM+NESP+3)=(-1.0D0)*REPS+PRTOT+GRT
238 : MPOVA4.VPOCHA(NLCE,IDIM+NESP+4)=((-1.0D0)*CE2*REPS*REPS/RKA)
239 : & +(CE1*(REPS/RKA)*PRTOT)+GREPS
240 : ENDDO
241 : C
242 : SEGDES MPOVA1
243 : SEGDES MPOVA2
244 : SEGDES MPOVA3
245 : SEGDES MPOVA4
246 : SEGDES MPOVA5
247 : SEGDES MPGRDR
248 : SEGDES MPRO
249 : SEGDES MPROV
250 : SEGDES MPGRAV
251 : SEGDES MPSOUR
252 : SEGDES MPTTT
253 : SEGDES LIPOV2.MPSS(*)
254 : SEGDES SORGAS
255 : SEGSUP LIPOV2
256 : C
257 : RETURN
258 : END
259 :
260 :
261 :
262 :
263 :
© Cast3M 2003 - All rights reserved.
Disclaimer