68
69
70
71 USE elbufdef_mod
78 use glob_therm_mod
79 USE matparam_def_mod, ONLY : matparam_struct_
80
81
82
83#include "implicit_f.inc"
84
85
86
87#include "mvsiz_p.inc"
88#include "com01_c.inc"
89#include "com04_c.inc"
90#include "param_c.inc"
91
92
93
94 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
95
96 INTEGER IPARG(NPARG,NGROUP), IXS(NIXS,NUMELS), IXQ(NIXQ,NUMELQ),NPF(*),
97 . ITAB(NUMNOD), ITABM1(*), BHOLE(*),
98 . NBRCVOIS(*),NBSDVOIS(*), LNRCVOIS(*), LNSDVOIS(*),
99 . NERCVOIS(*),NESDVOIS(*),LERCVOIS(*),LESDVOIS(*),IPM(NPROPMI,NUMMAT),
100 . NODFT, NODLT, LENQMV, ITASK, NV46,
101 . IAD_ELEM(2, *), FR_ELEM(*)
102
103 my_real veul, flux(*), val2(*), phi(*), v(*), w(*), x(*), pm(*),
104 . ms(*), fill(*), dfill(*), alph(*), fv(*), bufmat(*), tf(*),
105 . msnf(*),qmv(*)
106
107 TYPE(t_segvar) :: SEGVAR
108 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
109 type (glob_therm_) ,intent(inout) :: glob_therm
110 TYPE(MATPARAM_STRUCT_),DIMENSION(NUMMAT),INTENT(IN) :: MATPARAM
111
112
113
114 INTEGER ITRIMAT,NVAR,I, LENCOMN,LENCOM
115 INTEGER :: NVAR_MAT
116 INTEGER :: NVAR_EOS
117 my_real,
DIMENSION(:,:),
ALLOCATABLE:: flux_sav
118
119
120
121 ALLOCATE(flux_sav(nv46,lenqmv))
122 lencomn=nbrcvois(nspmd+1)+nbsdvois(nspmd+1)
123 lencom =nercvois(nspmd+1)+nesdvois(nspmd+1)
124
125
126
127
128 IF (glob_therm%ITHERM+iturb /= 0) THEN
129
130
131
132 IF (nspmd > 1) THEN
133
134 CALL spmd_xvois(x,nbrcvois,nbsdvois,lnrcvois,lnsdvois,lencomn)
135
136 END IF
137
138
139
140 CALL agrad0(iparg,ixs,ixq,x,ale_connect,
141 + flux,veul,elbuf_tab,itask)
142
144
145 IF (glob_therm%ITHERM /= 0) THEN
146 IF(itask == 0) THEN
147
148
150 1 iparg, pm, elbuf_tab, flux,
151 2 val2, phi, ale_connect,ixs,
152 3 ixq, fv, x, bufmat,
153 4 tf, npf, nercvois, nesdvois,
154 5 lercvois, lesdvois, lencom, ipm,
155 6 matparam)
156 ENDIF
157
159
160 ENDIF
161
162
163
164 IF (iturb /= 0) THEN
165
166 CALL akturb(iparg ,elbuf_tab ,flux ,val2 ,phi ,
167 2 ale_connect ,ixs ,ixq ,pm ,itask ,
168 3 nercvois ,nesdvois ,lercvois ,lesdvois ,lencom ,
169 4 matparam)
170 CALL aeturb(iparg ,elbuf_tab ,flux ,val2 ,phi ,
171 2 ale_connect ,ixs ,ixq ,pm ,itask ,
172 3 nercvois ,nesdvois ,lercvois ,lesdvois ,lencom ,
173 4 matparam)
174 ENDIF
175 ENDIF
176
177
178
179
180 IF(iale+ieuler /= 0)THEN
181
182
183
184
185
186
187
188 IF(n2d == 0)THEN
189 DO i=nodft,nodlt
190 ms(i)=ms(i)-msnf(i)
191 msnf(i)=zero
192 ENDDO
193 ENDIF
194 CALL aflux0(iparg ,elbuf_tab,pm ,ixs ,ixq ,
195 . v ,w ,x ,flux ,val2 ,
196 . veul ,fill ,dfill ,phi ,
197 . ale_connect,alph ,itask ,nv46 ,ipm )
198
200
201
202
203
204 IF(n2d /= 0.AND.nmult > 0)THEN
205 CALL bhol2(itask,iparg , pm ,bhole ,ixq )
206
208
209 ENDIF
210
211
212
213 itrimat = 0
214 IF (trimat > 0) THEN
216 2 x ,flux ,val2 ,
217 3 ale_connect ,itask ,
218 4 flux_sav ,qmv ,nv46 ,elbuf_tab)
219 ENDIF
220
221
222
223 CALL arezon(iparg ,elbuf_tab, flux ,phi ,ale_connect ,
224 2 2 ,1 ,itask ,nercvois,
225 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
226 4 itrimat)
227 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
228 2 2 ,2 ,itask ,nercvois ,
229 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
230 4 itrimat)
231 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
232 2 2 ,3 ,itask ,nercvois ,
233 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
234 4 itrimat)
235 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
236 2 2 ,4 ,itask ,nercvois ,
237 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
238 4 itrimat)
239 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
240 2 2 ,5 ,itask ,nercvois ,
241 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
242 4 itrimat)
243 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
244 2 2 ,6 ,itask ,nercvois ,
245 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
246 4 itrimat)
247
248
249
250 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
251 2 10 ,1 ,itask ,nercvois ,
252 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
253 4 itrimat)
254
255
256
257 DO i = 1,
ale%REZON%NUM_NUVAR_MAT
258 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
259 2 11 ,i ,itask ,nercvois ,
260 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
261 4 itrimat,1)
262 ENDDO
263 DO i = 1,
ale%REZON%NUM_NUVAR_EOS
264 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
265 2 11 ,i ,itask ,nercvois ,
266 3 nesdvois,lercvois ,lesdvois,lencom ,bhole ,
267 4 itrimat,2)
268 ENDDO
269
270
271
272
273 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
274 2 12 ,1 ,itask ,nercvois ,
275 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
276 4 itrimat)
277
278
279
281
282
283
284
285
288 1 iparg ,elbuf_tab ,flux , val2 ,phi ,
289 2 ale_connect ,
nvar ,itask , nercvois ,nesdvois,
290 3 lercvois ,lesdvois ,lencom , segvar ,bhole ,
291 4 itrimat ,qmv ,0 , ixs ,ixq ,
292 5 pm ,x)
293 ENDIF
294
295 ENDDO
296
297
298
299
300
302 IF (n2d == 0) THEN
304 . nercvois,nesdvois, lercvois,lesdvois,lencom, itask,
305 . iad_elem, fr_elem, segvar)
306 ELSE
308 . nv46,nercvois,nesdvois, lercvois,lesdvois,lencom, itask,
309 . iad_elem, fr_elem, segvar)
310 ENDIF
311 ENDIF
312
313 DO itrimat = 1,trimat
314 CALL afluxt(iparg ,elbuf_tab ,pm ,ixs ,ixq,
315 2 x ,flux ,val2 ,
316 3 phi ,ale_connect,itask ,
317 4 itrimat ,flux_sav ,nercvois,nesdvois ,
318 5 lercvois,lesdvois ,lencom ,qmv ,itab ,
319 6 itabm1 ,nv46 ,segvar)
320
321
322
323
324 IF(itrimat /= 4 ) THEN
325 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
326 2 2 ,1 ,itask ,nercvois ,
327 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
328 4 itrimat)
329 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
330 2 2 ,2 ,itask ,nercvois ,
331 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
332 4 itrimat)
333 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
334 2 2 ,3 ,itask ,nercvois ,
335 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
336 4 itrimat)
337 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
338 2 2 ,4 ,itask ,nercvois ,
339 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
340 4 itrimat)
341 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
342 2 2 ,5 ,itask ,nercvois ,
343 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
344 4 itrimat)
345 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
346 2 2 ,6 ,itask ,nercvois ,
347 3 nesdvois,lercvois ,lesdvois,lencom,bhole ,
348 4 itrimat)
349 ENDIF
350
351
352
353
354
355 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect ,
356 2 10 ,1 ,itask ,nercvois,
357 3 nesdvois,lercvois,lesdvois,lencom ,bhole ,
358 4 itrimat)
359
360
361
362
363 CALL arezon(iparg ,elbuf_tab,flux ,phi ,ale_connect,
364 2 12 ,1 ,itask ,nercvois,
365 3 nesdvois,lercvois,lesdvois,lencom ,bhole ,
366 4 itrimat)
367
368
369
370
371 CALL aconve(iparg ,elbuf_tab,flux ,val2 ,phi ,
372 2 ale_connect ,2 ,itask ,nercvois,nesdvois,
373 3 lercvois ,lesdvois ,lencom,segvar ,bhole ,
374 4 itrimat ,qmv ,0 ,ixs ,ixq ,
375 5 pm ,x )
376
377
378
379
380 CALL aconve(iparg ,elbuf_tab,flux ,val2 ,phi ,
381 2 ale_connect ,1 ,itask ,nercvois,nesdvois,
382 3 lercvois ,lesdvois
383 4 itrimat ,qmv
384 5 pm ,x )
385 enddo
386
387 IF (trimat > 0) THEN
389 . x ,flux ,val2 ,phi ,ale_connect ,itask,flux_sav,qmv ,nv46,elbuf_tab )
390 ENDIF
391
392 ENDIF
393
394 IF(itask==0) DEALLOCATE(flux_sav)
395 RETURN
subroutine aconve(iparg, elbuf_tab, flux, flu1, phi, ale_connect, nvar, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, segvar, bhole, itrimat, qmv, iflg, ixs, ixq, pm, x)
subroutine aeturb(iparg, elbuf_tab, flux, val2, xe, ale_connect, ixs, ixq, pm, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, matparam)
subroutine aflux0(iparg, elbuf_str, pm, ixs, ixq, v, w, x, flux, flu2, veul, fill, dfill, vol, ale_connect, alph, itask, nv46, ipm)
subroutine afluxt(iparg, elbuf_tab, pm, ixs, ixq, x, flux, flu2, alpha, ale_connect, itask, itrimat, flux_sav, nercvois, nesdvois, lercvois, lesdvois, lencom, qmv, itab, itabm1, nv46, segvar)
subroutine agrad0(iparg, ixs, ixq, x, ale_connect, grad, veul, elbuf_str, itask)
subroutine akturb(iparg, elbuf_tab, flux, val2, xk, ale_connect, ixs, ixq, pm, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, matparam)
subroutine ale51_finish(iparg, pm, ixs, ixq, x, flux, flu2, alpha, ale_connect, itask, flux_sav, qmv, nv46, elbuf_tab)
subroutine ale51_gradient_reconstruction2(iparg, elbuf_tab, ixq, x, ale_connect, nv46, nercvois, nesdvois, lercvois, lesdvois, lencom, itask, iad_elem, fr_elem, segvar)
subroutine ale51_gradient_reconstruction(iparg, elbuf_tab, ixs, x, ale_connect, nercvois, nesdvois, lercvois, lesdvois, lencom, itask, iad_elem, fr_elem, segvar)
subroutine ale51_init(iparg, pm, ixs, ixq, x, flux, flu2, ale_connect, itask, flux_sav, qmv, nv46, elbuf_tab)
subroutine atherm(iparg, pm, elbuf_tab, flux, val2, t, ale_connect, ixs, ixq, fv, x, bufmat, tf, npf, nercvois, nesdvois, lercvois, lesdvois, lencom, ipm, matparam)
subroutine bhol2(itask, iparg, pm, bhole, ixq)
type(alemuscl_param_) alemuscl_param
subroutine arezon(iparg, elbuf_str, flux, phi, ale_connect, nvar, nv, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, bhole, itrimat, opt_flag_mat_eos)
integer function nvar(text)
subroutine spmd_xvois(x, nbrcvois, nbsdvois, lnrcvois, lnsdvois, lencom)