OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
multi_timeevolution.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| multi_timeevolution ../engine/source/multifluid/multi_timeevolution.F
25!||--- called by ------------------------------------------------------
26!|| alemain ../engine/source/ale/alemain.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| multi_computevolume ../engine/source/multifluid/multi_computevolume.F
31!|| multi_ebcs ../engine/source/multifluid/multi_ebcs.f
32!|| multi_evolve_global ../engine/source/multifluid/multi_evolve_global.F
33!|| multi_evolve_partial ../engine/source/multifluid/multi_evolve_partial.f
34!|| multi_face_elem_data ../engine/source/multifluid/multi_face_data_elem.F
35!|| multi_fluxes_computation ../engine/source/multifluid/multi_fluxes_computation.F
36!|| multi_muscl_fluxes_computation ../engine/source/multifluid/multi_muscl_fluxes_computation.F
37!|| multi_muscl_gradients ../engine/source/multifluid/multi_muscl_gradients.F
38!|| multi_update_global ../engine/source/multifluid/multi_update_global.F
39!|| multi_update_partial ../engine/source/multifluid/multi_update_partial.F
40!|| my_barrier ../engine/source/system/machine.F
41!|| spmd_e1vois ../engine/source/mpi/fluid/spmd_cfd.F
42!|| spmd_envois ../engine/source/mpi/fluid/spmd_cfd.F
43!|| startime ../engine/source/system/timer_mod.F90
44!|| stoptime ../engine/source/system/timer_mod.F90
45!||--- uses -----------------------------------------------------
46!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
47!|| alefvm_mod ../common_source/modules/ale/alefvm_mod.F
48!|| ebcs_mod ../common_source/modules/boundary_conditions/ebcs_mod.f90
49!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
50!|| element_mod ../common_source/modules/elements/element_mod.F90
51!|| initbuf_mod ../engine/share/resol/initbuf.F
52!|| matparam_def_mod ../common_source/modules/mat_elem/matparam_def_mod.F90
53!|| message_mod ../engine/share/message_module/message_mod.F
54!|| multi_fvm_mod ../common_source/modules/ale/multi_fvm_mod.F90
55!|| multi_muscl_fluxes_computation_mod ../engine/source/multifluid/multi_muscl_fluxes_computation.f
56!|| output_mod ../common_source/modules/output/output_mod.F90
57!|| th_surf_mod ../common_source/modules/interfaces/th_surf_mod.F
58!|| timer_mod ../engine/source/system/timer_mod.F90
59!||====================================================================
60 SUBROUTINE multi_timeevolution(TIMERS,TIMESTEP, ELBUF_TAB, IPARG, ITASK, IXS, IXQ, IXTG,
61 . PM, IPM, MULTI_FVM, ALE_CONNECTIVITY, VEL, ACCELE, WGRID, XGRID, DNOD, NALE,
62 . PARTSAV, IPARTS, GRESAV, IGRTH, GRTH,
63 . NERCVOIS, NESDVOIS, LERCVOIS, LESDVOIS,
64 . ITAB, ITABM1, CURRENT_TIME,
65 . STIFN, FSKY, IADS, FSKYM,
66 . CONDN, CONDNSKY, BUFMAT, FUNC_VALUE, PRED,ID_GLOBAL_VOIS,FACE_VOIS,EBCS_TAB,NPF,TF,FSAVSURF,MATPARAM,
67 . WFEXT, OUTPUT)
68C-----------------------------------------------
69C M o d u l e s
70C-----------------------------------------------
71 USE timer_mod
72 USE initbuf_mod
73 USE elbufdef_mod
74 USE multi_fvm_mod
75 USE alefvm_mod
76 USE message_mod
77 USE ebcs_mod
80 USE matparam_def_mod, ONLY : matparam_struct_
82 USE output_mod , ONLY : output_
83 use element_mod , only : nixs,nixq,nixtg
84C-----------------------------------------------
85C I m p l i c i t T y p e s
86C-----------------------------------------------
87#include "implicit_f.inc"
88#include "comlock.inc"
89C-----------------------------------------------
90C C o m m o n B l o c k s
91C-----------------------------------------------
92#include "com01_c.inc"
93#include "com04_c.inc"
94#include "param_c.inc"
95#include "task_c.inc"
96#include "mvsiz_p.inc"
97#include "tabsiz_c.inc"
98C-----------------------------------------------
99C D u m m y A r g u m e n t s
100C-----------------------------------------------
101 TYPE(timer_), INTENT(INOUT) :: TIMERS
102 TYPE(MATPARAM_STRUCT_),DIMENSION(NUMMAT),INTENT(IN) :: MATPARAM !< material buffer
103 my_real,INTENT(INOUT) :: FSAVSURF(TH_SURF_NUM_CHANNEL,NSURF)
104 my_real, INTENT(IN) :: TIMESTEP
105 TYPE(ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
106 INTEGER, INTENT(IN) :: IPARG(NPARG, *), IADS(8, *)
107 INTEGER, INTENT(IN) :: ITASK ! SMP TASK
108 INTEGER, INTENT(IN), TARGET :: IXS(NIXS, *), IXQ(NIXQ, *), IXTG(NIXTG, *)
109 INTEGER, INTENT(IN) :: IPM(NPROPMI, *)
110 my_real, INTENT(IN) :: pm(npropm, *)
111 TYPE(multi_fvm_struct), INTENT(INOUT) :: MULTI_FVM
112 ! for parith/on : ID_GLOBAL_VOIS --> user id ; FACE_VOIS --> face of the remote element
113 INTEGER, INTENT(IN) :: ID_GLOBAL_VOIS(*),FACE_VOIS(*)
114 my_real, INTENT(INOUT) :: vel(3, *), accele(3, *)
115 my_real, INTENT(IN) :: wgrid(3, *)
116 my_real, INTENT(INOUT) :: xgrid(3, *), dnod(3, *)
117 INTEGER, INTENT(IN) :: NALE(*)
118 my_real, INTENT(INOUT) :: partsav(npsav, *), gresav(*)
119 INTEGER, INTENT(IN) :: IPARTS(*), IGRTH(*), GRTH(*)
120 INTEGER, INTENT(IN) :: NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*)
121 INTEGER, INTENT(IN) :: ITAB(*), ITABM1(*)
122 my_real, INTENT(IN) :: current_time
123 my_real, INTENT(INOUT) :: fskym(*), stifn(*), fsky(*),
124 . condn(*), condnsky(*), bufmat(*)
125 LOGICAL, INTENT(IN) :: PRED
126 my_real, INTENT(IN) :: func_value(*)
127 TYPE(t_ebcs_tab), INTENT(IN) :: EBCS_TAB
128 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECTIVITY
129 INTEGER, INTENT(IN) :: NPF(SNPC)
130 my_real, INTENT(IN) :: tf(stf)
131 DOUBLE PRECISION,INTENT(INOUT) :: WFEXT
132 TYPE(output_), INTENT(INOUT) :: OUTPUT !< output structure
133C-----------------------------------------------
134C L o c a l V a r i a b l e s
135C-----------------------------------------------
136 INTEGER :: NG, NEL, II, I
137 INTEGER :: LOCAL_MATID
138 INTEGER :: NBMAT, IMAT, NIX
139 INTEGER :: LENCOM
140 INTEGER :: NODE_ID
141 INTEGER, DIMENSION(:, :), POINTER :: IX
142 INTEGER :: MATLAW, NFT, ITY, ELEMTYP
143 my_real :: vdt
144 my_real :: volnew(mvsiz)
145 TYPE(g_bufel_), POINTER :: GBUF
146C -------------------------
147C Movement of nodes
148C -------------------------
149 IF (iale /= 0 .AND. .NOT. pred) THEN ! IF CORRECTION : maillage en configuration tn+1/2 pour les flux a tn+1/2
150 DO node_id = 1 + itask, numnod, nthread
151 vdt = half * timestep * wgrid(1, node_id)
152 dnod(1, node_id) = dnod(1, node_id) + vdt
153 xgrid(1, node_id) = xgrid(1, node_id) + vdt
154
155 vdt = half * timestep * wgrid(2,node_id)
156 dnod(2, node_id) = dnod(2, node_id) + vdt
157 xgrid(2, node_id) = xgrid(2, node_id) + vdt
158
159 vdt = half * timestep * wgrid(3,node_id)
160 dnod(3, node_id) = dnod(3, node_id) + vdt
161 xgrid(3, node_id) = xgrid(3, node_id) + vdt
162 ENDDO
163 ENDIF
164
165 CALL my_barrier
166C ==========================================
167C Face data computation (NX, NY, NZ, SURFACE)
168C ==========================================
169 IF (iale /= 0) THEN
170C Only ALE, since nodes have moved
171 CALL multi_face_elem_data(itask, iparg, ixs, ixq, ixtg, xgrid, wgrid, multi_fvm)
172 ENDIF
173 CALL my_barrier
174C------------------
175C MPI COM
176C------------------
177 IF (nspmd > 1) THEN
178!$OMP SINGLE
179 lencom = nercvois(nspmd + 1) + nesdvois(nspmd + 1)
180C Temporary vars used for fluxes computation
181 CALL spmd_e1vois(multi_fvm%RHO,
182 . nercvois, nesdvois, lercvois, lesdvois, lencom)
183 CALL spmd_e1vois(multi_fvm%PRES,
184 . nercvois, nesdvois, lercvois, lesdvois, lencom)
185 CALL spmd_e1vois(multi_fvm%EINT,
186 . nercvois, nesdvois, lercvois, lesdvois, lencom)
187C Velocity
188 CALL spmd_e1vois(multi_fvm%VEL(1, :),
189 . nercvois, nesdvois, lercvois, lesdvois, lencom)
190 CALL spmd_e1vois(multi_fvm%VEL(2, :),
191 . nercvois, nesdvois, lercvois, lesdvois, lencom)
192 CALL spmd_e1vois(multi_fvm%VEL(3, :),
193 . nercvois, nesdvois, lercvois, lesdvois, lencom)
194C Sound speed
195 CALL spmd_e1vois(multi_fvm%SOUND_SPEED,
196 . nercvois, nesdvois, lercvois, lesdvois, lencom)
197C Burnt fraction
198 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%BFRAC,
199 . nercvois, nesdvois, lercvois, lesdvois, lencom)
200C SUBMAT VARTIABLES
201 IF (multi_fvm%NBMAT > 1) THEN
202 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%PHASE_ALPHA,
203 . nercvois, nesdvois, lercvois, lesdvois, lencom)
204 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%PHASE_RHO,
205 . nercvois, nesdvois, lercvois, lesdvois, lencom)
206 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%PHASE_EINT,
207 . nercvois, nesdvois, lercvois, lesdvois, lencom)
208 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%PHASE_PRES,
209 . nercvois, nesdvois, lercvois, lesdvois, lencom)
210 ENDIF
211
212 IF (multi_fvm%MUSCL > 0) THEN
213 IF (iale /= 0) THEN
214 CALL spmd_envois(3, multi_fvm%ELEM_DATA%CENTROID,
215 . nercvois, nesdvois, lercvois, lesdvois, lencom)
216 ENDIF
217 ! for parith/on, need to communicate FACE_DATA%CENTROID
218 ! in order to use the same data
219 CALL spmd_envois(18, multi_fvm%FACE_DATA%CENTROID,
220 . nercvois, nesdvois, lercvois, lesdvois, lencom)
221 ENDIF
222!$OMP END SINGLE
223 CALL my_barrier
224 ENDIF
225C------------------
226C END MPI COM
227C------------------
228C ==============================
229C gradients computation for MUSCL
230C ==============================
231 IF (multi_fvm%MUSCL > 0) THEN
232 CALL multi_muscl_gradients(timers,elbuf_tab, iparg, itask, ixs, ixq, ixtg,
233 . pm, ipm, multi_fvm, ale_connectivity, wgrid, xgrid, itab, multi_fvm%NBMAT,
234 . current_time, bufmat)
235 ENDIF
236 CALL my_barrier
237
238C Communication gradient
239 IF (nspmd > 1 .AND. multi_fvm%MUSCL > 0) THEN
240!$OMP SINGLE
241 CALL startime(timers,timer_spmdcfd)
242 lencom = nercvois(nspmd + 1) + nesdvois(nspmd + 1)
243 IF (multi_fvm%MUSCL == 1) THEN
244C Velocity gradients
245 CALL spmd_envois(3, multi_fvm%GRAD_U,
246 . nercvois, nesdvois, lercvois, lesdvois, lencom)
247 CALL spmd_envois(3, multi_fvm%GRAD_V,
248 . nercvois, nesdvois, lercvois, lesdvois, lencom)
249 CALL spmd_envois(3, multi_fvm%GRAD_W,
250 . nercvois, nesdvois, lercvois, lesdvois, lencom)
251 ENDIF
252C SUBMAT gradients
253 IF (multi_fvm%NBMAT == 1) THEN
254 IF (multi_fvm%MUSCL == 1) THEN
255 CALL spmd_envois(3, multi_fvm%GRAD_RHO,
256 . nercvois, nesdvois, lercvois, lesdvois, lencom)
257 CALL spmd_envois(3, multi_fvm%GRAD_PRES,
258 . nercvois, nesdvois, lercvois, lesdvois, lencom)
259 ENDIF
260 ELSE
261 CALL spmd_envois(3 * multi_fvm%NBMAT, multi_fvm%PHASE_GRAD_ALPHA,
262 . nercvois, nesdvois, lercvois, lesdvois, lencom)
263 IF (multi_fvm%MUSCL == 1) THEN
264 CALL spmd_envois(3 * multi_fvm%NBMAT, multi_fvm%PHASE_GRAD_RHO,
265 . nercvois, nesdvois, lercvois, lesdvois, lencom)
266 CALL spmd_envois(3 * multi_fvm%NBMAT, multi_fvm%PHASE_GRAD_PRES,
267 . nercvois, nesdvois, lercvois, lesdvois, lencom)
268 ENDIF
269 ENDIF
270 CALL stoptime(timers,timer_spmdcfd)
271!$OMP END SINGLE
272 CALL my_barrier
273 ENDIF
274
275 DO ng = itask + 1, ngroup, nthread
276 matlaw = iparg(1, ng)
277 IF (matlaw == 151) THEN
278 nel = iparg(2, ng)
279 nft = iparg(3, ng)
280 ity = iparg(5, ng)
281 gbuf => elbuf_tab(ng)%GBUF
282 IF (multi_fvm%MUSCL > 0) THEN
283 CALL multi_muscl_fluxes_computation(ng, elbuf_tab, iparg, itask, ixs, ixq, ixtg,
284 . pm, ipm, multi_fvm, ale_connectivity, wgrid, xgrid, itab,
285 . multi_fvm%NBMAT, current_time, bufmat,
286 . id_global_vois,face_vois,npf,tf,ispmd, matparam)
287 ELSE
288 CALL multi_fluxes_computation(ng, elbuf_tab, iparg, itask, ixs, ixq, ixtg,
289 . pm, ipm, multi_fvm, ale_connectivity, wgrid, xgrid, itab,
290 . multi_fvm%NBMAT, current_time, bufmat,
291 . id_global_vois,npf,tf)
292 ENDIF
293 ENDIF
294 ENDDO ! DO NG = ITASK + 1, NGROUP, NTHREAD
295C---------------------
296C Boundary conditions
297C---------------------
298
299 IF (ebcs_tab%nebcs_fvm > 0) THEN
300 CALL my_barrier
301 CALL multi_ebcs(itask, multi_fvm, ixs, ixq, ixtg, xgrid, wgrid, ipm, pm, func_value,
302 . ebcs_tab,npf,tf,fsavsurf,nsurf,timestep,
303 . numels, numelq, numeltg, numnod, ncycle, nummat, matparam, output, pred)
304 CALL my_barrier
305 ENDIF
306C -------------------------
307C Movement of nodes
308C -------------------------
309 IF (iale /= 0 .AND. .NOT. pred) THEN ! IF CORRECTION : maillage en configuration tn+1 pour les volumes
310 DO node_id = 1 + itask, numnod, nthread
311 vdt = half * timestep * wgrid(1, node_id)
312 dnod(1, node_id) = dnod(1, node_id) + vdt
313 xgrid(1, node_id) = xgrid(1, node_id) + vdt
314
315 vdt = half * timestep * wgrid(2,node_id)
316 dnod(2, node_id) = dnod(2, node_id) + vdt
317 xgrid(2, node_id) = xgrid(2, node_id) + vdt
318
319 vdt = half * timestep * wgrid(3,node_id)
320 dnod(3, node_id) = dnod(3, node_id) + vdt
321 xgrid(3, node_id) = xgrid(3, node_id) + vdt
322 ENDDO
323 ENDIF
324
325 CALL my_barrier
326
327C---------------------
328 nbmat = multi_fvm%NBMAT
329
330 DO ng = itask + 1, ngroup, nthread
331 matlaw = iparg(1, ng)
332 IF (matlaw == 151) THEN
333C -------------------------
334C Multifluid law: update global values
335C -------------------------
336 CALL multi_evolve_global(timestep, ng, elbuf_tab,
337 . iparg, itask, ixs, ixq, ixtg, multi_fvm, alefvm_buffer%VERTEX, wfext)
338 IF (nbmat > 1) THEN
339C -------------------------
340C Multifluid law: evolve partial values
341C -------------------------
342 CALL multi_evolve_partial(timestep, ng, elbuf_tab,
343 . iparg, itask, ixs, ixq, ixtg, multi_fvm,
344 . pm, ipm, alefvm_buffer%VERTEX, current_time)
345 ENDIF
346 ENDIF !IF (MATLAW == 151) THEN
347 ENDDO !NG = ITASK + 1, NGROUP, NTHREAD
348
349 DO ng = itask + 1, ngroup, nthread
350 matlaw = iparg(1, ng)
351 IF (matlaw == 151) THEN
352 nel = iparg(2, ng)
353 nft = iparg(3, ng)
354 ity = iparg(5, ng)
355 gbuf => elbuf_tab(ng)%GBUF
356C -------------------------
357C Volume computation
358C -------------------------
359 volnew(1:mvsiz) = zero
360 CALL multi_computevolume(nel, ng, iparg, multi_fvm%SYM,
361 . elbuf_tab, ixs, ixq, ixtg, volnew, xgrid)
362C -------------------------
363C Multifluid law: update global values
364C -------------------------
365 CALL multi_update_global(ng, elbuf_tab, iparg, itask, multi_fvm,
366 . partsav, iparts, gresav, igrth, grth, volnew(1:nel), pred, timestep)
367
368 IF (multi_fvm%SYM == 0) THEN
369 ix => ixs(1:nixs, 1 + nft:nel + nft)
370 nix = nixs
371 elemtyp = 0
372 ELSEIF (ity == 2) THEN
373C QUADS
374 ix => ixq(1:nixq, 1 + nft:nel + nft)
375 nix = nixq
376 elemtyp = 1
377 ELSEIF (ity == 7) THEN
378C TRIANGLES
379 ix => ixtg(1:nixtg, 1 + nft:nel + nft)
380 nix = nixtg
381 elemtyp = 2
382 ENDIF
383C Check if rho is negative, then stop RADIOSS instance
384 DO ii = 1, nel
385 i = ii + nft
386 IF (multi_fvm%RHO(i) <= zero) THEN
387 IF (elemtyp == 0) THEN
388 CALL ancmsg(msgid = 167, anmode = aninfo, i1 = ix(nix, ii),
389 . r1 = multi_fvm%RHO(i))
390 ELSE
391 CALL ancmsg(msgid = 12, anmode = aninfo, i1 = ix(nix, ii),
392 . r1 = multi_fvm%RHO(i))
393 ENDIF
394 CALL arret(2)
395 ENDIF
396 ENDDO
397
398 IF (nbmat > 1) THEN
399C -------------------------
400C Multifluid law: evolve partial values
401C -------------------------
402 DO imat = 1, nbmat
403 local_matid = ipm(20 + imat, ix(1, 1))
404 CALL multi_update_partial(local_matid, pm, imat, ng,
405 . elbuf_tab, iparg, itask, multi_fvm, volnew)
406 ENDDO
407 ENDIF
408C -------------------------
409C Update volumes
410C -------------------------
411 IF (.NOT. pred) THEN
412 DO ii = 1, nel
413 gbuf%VOL(ii) = volnew(ii)
414 ENDDO
415 IF (multi_fvm%NS_DIFF) THEN
416 DO ii = 1, nel
417 i = ii + nft
418 multi_fvm%VOL(i) = volnew(ii)
419 ENDDO
420 ENDIF
421 ENDIF
422 ENDIF !IF (MATLAW == 151) THEN
423 ENDDO !NG = ITASK + 1, NGROUP, NTHREAD
424
425 CALL my_barrier
426
427 END SUBROUTINE multi_timeevolution
subroutine accele(a, ar, v, ms, in, size_nale, nale, ms_2d, size_npby, npby)
Definition accele.F:32
subroutine multi_computevolume(nel, ng, iparg, sym, elbuf_tab, ixs, ixq, ixtg, volnew, xgrid)
subroutine multi_ebcs(itask, multi_fvm, ixs, ixq, ixtg, xgrid, wgrid, ipm, pm, func_value, ebcs_tab, npf, tf, fsavsurf, nsurf, timestep, numels, numelq, numeltg, numnod, ncycle, nummat, matparam, output, pred)
Definition multi_ebcs.F:43
subroutine multi_evolve_global(timestep, ng, elbuf_tab, iparg, itask, ixs, ixq, ixtg, multi_fvm, gravity, wfext)
subroutine multi_evolve_partial(timestep, ng, elbuf_tab, iparg, itask, ixs, ixq, ixtg, multi_fvm, pm, ipm, gravity, current_time)
subroutine multi_face_elem_data(itask, iparg, ixs, ixq, ixtg, xgrid, wgrid, multi_fvm)
subroutine multi_fluxes_computation(ng, elbuf_tab, iparg, itask, ixs, ixq, ixtg, pm, ipm, multi_fvm, ale_connectivity, wgrid, xgrid, itab, nbmat, current_time, bufmat, id_global_vois, npf, tf)
subroutine multi_muscl_gradients(timers, elbuf_tab, iparg, itask, ixs, ixq, ixtg, pm, ipm, multi_fvm, ale_connectivity, wgrid, xgrid, itab, nbmat, current_time, bufmat)
subroutine multi_timeevolution(timers, timestep, elbuf_tab, iparg, itask, ixs, ixq, ixtg, pm, ipm, multi_fvm, ale_connectivity, vel, accele, wgrid, xgrid, dnod, nale, partsav, iparts, gresav, igrth, grth, nercvois, nesdvois, lercvois, lesdvois, itab, itabm1, current_time, stifn, fsky, iads, fskym, condn, condnsky, bufmat, func_value, pred, id_global_vois, face_vois, ebcs_tab, npf, tf, fsavsurf, matparam, wfext, output)
subroutine multi_update_global(ng, elbuf_tab, iparg, itask, multi_fvm, partsav, iparts, gresav, igrth, grth, volnew, pred, timestep)
subroutine multi_update_partial(local_matid, pm, imat, ng, elbuf_tab, iparg, itask, multi_fvm, volnew)
type(alefvm_buffer_), target alefvm_buffer
Definition alefvm_mod.F:120
subroutine multi_muscl_fluxes_computation(ng, elbuf_tab, iparg, itask, ixs, ixq, ixtg, pm, ipm, multi_fvm, ale_connectivity, wgrid, xgrid, itab, nbmat, current_time, bufmat, id_global_vois, face_vois, npf, tf, ispmd, matparam)
OPTION /TH/SURF outputs of Pressure and Area needed Tabs.
Definition th_surf_mod.F:61
integer, parameter th_surf_num_channel
number of /TH/SURF channels : AREA, VELOCITY, MASSFLOW, P A, MASS
subroutine spmd_envois(dim, phi, nercvois, nesdvois, lercvois, lesdvois, lencom)
Definition spmd_cfd.F:695
subroutine spmd_e1vois(phi, nercvois, nesdvois, lercvois, lesdvois, lencom)
Definition spmd_cfd.F:375
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:895
subroutine arret(nn)
Definition arret.F:86
subroutine my_barrier
Definition machine.F:31
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135