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!|| initbuf_mod ../engine/share/resol/initbuf.F
51!|| matparam_def_mod ../common_source/modules/mat_elem/matparam_def_mod.F90
52!|| message_mod ../engine/share/message_module/message_mod.F
53!|| multi_fvm_mod ../common_source/modules/ale/multi_fvm_mod.F90
54!|| multi_muscl_fluxes_computation_mod ../engine/source/multifluid/multi_muscl_fluxes_computation.F
55!|| th_surf_mod ../common_source/modules/interfaces/th_surf_mod.F
56!|| timer_mod ../engine/source/system/timer_mod.F90
57!||====================================================================
58 SUBROUTINE multi_timeevolution(TIMERS,TIMESTEP, ELBUF_TAB, IPARG, ITASK, IXS, IXQ, IXTG,
59 . PM, IPM, MULTI_FVM, ALE_CONNECTIVITY, VEL, ACCELE, WGRID, XGRID, DNOD, NALE,
60 . PARTSAV, IPARTS, GRESAV, IGRTH, GRTH,
61 . NERCVOIS, NESDVOIS, LERCVOIS, LESDVOIS,
62 . ITAB, ITABM1, CURRENT_TIME,
63 . STIFN, FSKY, IADS, FSKYM,
64 . CONDN, CONDNSKY, BUFMAT, FUNC_VALUE, PRED,ID_GLOBAL_VOIS,FACE_VOIS,EBCS_TAB,NPF,TF,FSAVSURF,MATPARAM,
65 . WFEXT)
66C-----------------------------------------------
67C M o d u l e s
68C-----------------------------------------------
69 USE timer_mod
70 USE initbuf_mod
71 USE elbufdef_mod
72 USE multi_fvm_mod
73 USE alefvm_mod
74 USE message_mod
75 USE ebcs_mod
78 USE matparam_def_mod, ONLY : matparam_struct_
80C-----------------------------------------------
81C I m p l i c i t T y p e s
82C-----------------------------------------------
83#include "implicit_f.inc"
84#include "comlock.inc"
85C-----------------------------------------------
86C C o m m o n B l o c k s
87C-----------------------------------------------
88#include "com01_c.inc"
89#include "com04_c.inc"
90#include "param_c.inc"
91#include "task_c.inc"
92#include "mvsiz_p.inc"
93#include "tabsiz_c.inc"
94C-----------------------------------------------
95C D u m m y A r g u m e n t s
96C-----------------------------------------------
97 TYPE(timer_), INTENT(INOUT) :: TIMERS
98 TYPE(MATPARAM_STRUCT_),DIMENSION(NUMMAT),INTENT(IN) :: MATPARAM !< material buffer
99 my_real,INTENT(INOUT) :: FSAVSURF(TH_SURF_NUM_CHANNEL,NSURF)
100 my_real, INTENT(IN) :: TIMESTEP
101 TYPE(ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
102 INTEGER, INTENT(IN) :: IPARG(NPARG, *), IADS(8, *)
103 INTEGER, INTENT(IN) :: ITASK ! SMP TASK
104 INTEGER, INTENT(IN), TARGET :: IXS(NIXS, *), IXQ(NIXQ, *), IXTG(NIXTG, *)
105 INTEGER, INTENT(IN) :: IPM(NPROPMI, *)
106 my_real, INTENT(IN) :: pm(npropm, *)
107 TYPE(multi_fvm_struct), INTENT(INOUT) :: MULTI_FVM
108 ! for parith/on : ID_GLOBAL_VOIS --> user id ; FACE_VOIS --> face of the remote element
109 INTEGER, INTENT(IN) :: ID_GLOBAL_VOIS(*),FACE_VOIS(*)
110 my_real, INTENT(INOUT) :: vel(3, *), accele(3, *)
111 my_real, INTENT(IN) :: wgrid(3, *)
112 my_real, INTENT(INOUT) :: xgrid(3, *), dnod(3, *)
113 INTEGER, INTENT(IN) :: NALE(*)
114 my_real, INTENT(INOUT) :: partsav(npsav, *), gresav(*)
115 INTEGER, INTENT(IN) :: IPARTS(*), IGRTH(*), GRTH(*)
116 INTEGER, INTENT(IN) :: NERCVOIS(*), NESDVOIS(*), LERCVOIS(*), LESDVOIS(*)
117 INTEGER, INTENT(IN) :: ITAB(*), ITABM1(*)
118 my_real, INTENT(IN) :: current_time
119 my_real, INTENT(INOUT) :: fskym(*), stifn(*), fsky(*),
120 . condn(*), condnsky(*), bufmat(*)
121 LOGICAL, INTENT(IN) :: PRED
122 my_real, INTENT(IN) :: func_value(*)
123 TYPE(t_ebcs_tab), INTENT(IN) :: EBCS_TAB
124 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECTIVITY
125 INTEGER, INTENT(IN) :: NPF(SNPC)
126 my_real, INTENT(IN) :: tf(stf)
127 DOUBLE PRECISION,INTENT(INOUT) :: WFEXT
128C-----------------------------------------------
129C L o c a l V a r i a b l e s
130C-----------------------------------------------
131 INTEGER :: NG, NEL, II, I
132 INTEGER :: LOCAL_MATID
133 INTEGER :: NBMAT, IMAT, NIX
134 INTEGER :: LENCOM
135 INTEGER :: NODE_ID
136 INTEGER, DIMENSION(:, :), POINTER :: IX
137 INTEGER :: MATLAW, NFT, ITY, ELEMTYP
138 my_real :: vdt
139 my_real :: volnew(mvsiz)
140 TYPE(g_bufel_), POINTER :: GBUF
141C -------------------------
142C Deplacement des noeuds
143C -------------------------
144 IF (iale /= 0 .AND. .NOT. pred) THEN ! IF CORRECTION : maillage en configuration tn+1/2 pour les flux a tn+1/2
145 DO node_id = 1 + itask, numnod, nthread
146 vdt = half * timestep * wgrid(1, node_id)
147 dnod(1, node_id) = dnod(1, node_id) + vdt
148 xgrid(1, node_id) = xgrid(1, node_id) + vdt
149
150 vdt = half * timestep * wgrid(2,node_id)
151 dnod(2, node_id) = dnod(2, node_id) + vdt
152 xgrid(2, node_id) = xgrid(2, node_id) + vdt
153
154 vdt = half * timestep * wgrid(3,node_id)
155 dnod(3, node_id) = dnod(3, node_id) + vdt
156 xgrid(3, node_id) = xgrid(3, node_id) + vdt
157 ENDDO
158 ENDIF
159
160 CALL my_barrier
161C ==========================================
162C Face data computation (NX, NY, NZ, SURFACE)
163C ==========================================
164 IF (iale /= 0) THEN
165C Only ALE, since nodes have moved
166 CALL multi_face_elem_data(itask, iparg, ixs, ixq, ixtg, xgrid, wgrid, multi_fvm)
167 ENDIF
168 CALL my_barrier
169C------------------
170C MPI COM
171C------------------
172 IF (nspmd > 1) THEN
173!$OMP SINGLE
174 lencom = nercvois(nspmd + 1) + nesdvois(nspmd + 1)
175C Temporary vars used for fluxes computation
176 CALL spmd_e1vois(multi_fvm%RHO,
177 . nercvois, nesdvois, lercvois, lesdvois, lencom)
178 CALL spmd_e1vois(multi_fvm%PRES,
179 . nercvois, nesdvois, lercvois, lesdvois, lencom)
180 CALL spmd_e1vois(multi_fvm%EINT,
181 . nercvois, nesdvois, lercvois, lesdvois, lencom)
182C Velocity
183 CALL spmd_e1vois(multi_fvm%VEL(1, :),
184 . nercvois, nesdvois, lercvois, lesdvois, lencom)
185 CALL spmd_e1vois(multi_fvm%VEL(2, :),
186 . nercvois, nesdvois, lercvois, lesdvois, lencom)
187 CALL spmd_e1vois(multi_fvm%VEL(3, :),
188 . nercvois, nesdvois, lercvois, lesdvois, lencom)
189C Sound speed
190 CALL spmd_e1vois(multi_fvm%SOUND_SPEED,
191 . nercvois, nesdvois, lercvois, lesdvois, lencom)
192C Burnt fraction
193 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%BFRAC,
194 . nercvois, nesdvois, lercvois, lesdvois, lencom)
195C SUBMAT VARTIABLES
196 IF (multi_fvm%NBMAT > 1) THEN
197 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%PHASE_ALPHA,
198 . nercvois, nesdvois, lercvois, lesdvois, lencom)
199 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%PHASE_RHO,
200 . nercvois, nesdvois, lercvois, lesdvois, lencom)
201 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%PHASE_EINT,
202 . nercvois, nesdvois, lercvois, lesdvois, lencom)
203 CALL spmd_envois(multi_fvm%NBMAT, multi_fvm%PHASE_PRES,
204 . nercvois, nesdvois, lercvois, lesdvois, lencom)
205 ENDIF
206
207 IF (multi_fvm%MUSCL > 0) THEN
208 IF (iale /= 0) THEN
209 CALL spmd_envois(3, multi_fvm%ELEM_DATA%CENTROID,
210 . nercvois, nesdvois, lercvois, lesdvois, lencom)
211 ENDIF
212 ! for parith/on, need to communicate face_data%CENTROID
213 ! in order to use the same data
214 CALL spmd_envois(18, multi_fvm%FACE_DATA%CENTROID,
215 . nercvois, nesdvois, lercvois, lesdvois, lencom)
216 ENDIF
217!$OMP END SINGLE
218 CALL my_barrier
219 ENDIF
220C------------------
221C END MPI COM
222C------------------
223C ==============================
224C gradients computation for MUSCL
225C ==============================
226 IF (multi_fvm%MUSCL > 0) THEN
227 CALL multi_muscl_gradients(timers,elbuf_tab, iparg, itask, ixs, ixq, ixtg,
228 . pm, ipm, multi_fvm, ale_connectivity, wgrid, xgrid, itab, multi_fvm%NBMAT,
229 . current_time, bufmat)
230 ENDIF
231 CALL my_barrier
232
233C Gradient communication
234 IF (nspmd > 1 .AND. multi_fvm%MUSCL > 0) THEN
235!$OMP SINGLE
236 CALL startime(timers,timer_spmdcfd)
237 lencom = nercvois(nspmd + 1) + nesdvois(nspmd + 1)
238 IF (multi_fvm%MUSCL == 1) THEN
239C Velocity gradients
240 CALL spmd_envois(3, multi_fvm%GRAD_U,
241 . nercvois, nesdvois, lercvois, lesdvois, lencom)
242 CALL spmd_envois(3, multi_fvm%GRAD_V,
243 . nercvois, nesdvois, lercvois, lesdvois, lencom)
244 CALL spmd_envois(3, multi_fvm%GRAD_W,
245 . nercvois, nesdvois, lercvois, lesdvois, lencom)
246 ENDIF
247C SUBMAT gradients
248 IF (multi_fvm%NBMAT == 1) THEN
249 IF (multi_fvm%MUSCL == 1) THEN
250 CALL spmd_envois(3, multi_fvm%GRAD_RHO,
251 . nercvois, nesdvois, lercvois, lesdvois, lencom)
252 CALL spmd_envois(3, multi_fvm%GRAD_PRES,
253 . nercvois, nesdvois, lercvois, lesdvois, lencom)
254 ENDIF
255 ELSE
256 CALL spmd_envois(3 * multi_fvm%NBMAT, multi_fvm%PHASE_GRAD_ALPHA,
257 . nercvois, nesdvois, lercvois, lesdvois, lencom)
258 IF (multi_fvm%MUSCL == 1) THEN
259 CALL spmd_envois(3 * multi_fvm%NBMAT, multi_fvm%PHASE_GRAD_RHO,
260 . nercvois, nesdvois, lercvois, lesdvois, lencom)
261 CALL spmd_envois(3 * multi_fvm%NBMAT, multi_fvm%PHASE_GRAD_PRES,
262 . nercvois, nesdvois, lercvois, lesdvois, lencom)
263 ENDIF
264 ENDIF
265 CALL stoptime(timers,timer_spmdcfd)
266!$OMP END SINGLE
267 CALL my_barrier
268 ENDIF
269
270 DO ng = itask + 1, ngroup, nthread
271 matlaw = iparg(1, ng)
272 IF (matlaw == 151) THEN
273 nel = iparg(2, ng)
274 nft = iparg(3, ng)
275 ity = iparg(5, ng)
276 gbuf => elbuf_tab(ng)%GBUF
277 IF (multi_fvm%MUSCL > 0) THEN
278 CALL multi_muscl_fluxes_computation(ng, elbuf_tab, iparg, itask, ixs, ixq, ixtg,
279 . pm, ipm, multi_fvm, ale_connectivity, wgrid, xgrid, itab,
280 . multi_fvm%NBMAT, current_time, bufmat,
281 . id_global_vois,face_vois,npf,tf,ispmd, matparam)
282 ELSE
283 CALL multi_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,npf,tf)
287 ENDIF
288 ENDIF
289 ENDDO ! DO NG = ITASK + 1, NGROUP, NTHREAD
290C---------------------
291C Boundary conditions
292C---------------------
293
294 IF (ebcs_tab%nebcs_fvm > 0) THEN
295 CALL my_barrier
296 CALL multi_ebcs(itask, multi_fvm, ixs, ixq, ixtg, xgrid, wgrid, ipm, pm, func_value,
297 . ebcs_tab,npf,tf,fsavsurf,nsurf,timestep,
298 . numels, numelq, numeltg, numnod, ncycle, nummat, matparam)
299 CALL my_barrier
300 ENDIF
301C -------------------------
302C Deplacement des noeuds
303C -------------------------
304 IF (iale /= 0 .AND. .NOT. pred) THEN ! IF CORRECTION : maillage en configuration tn+1 pour les volumes
305 DO node_id = 1 + itask, numnod, nthread
306 vdt = half * timestep * wgrid(1, node_id)
307 dnod(1, node_id) = dnod(1, node_id) + vdt
308 xgrid(1, node_id) = xgrid(1, node_id) + vdt
309
310 vdt = half * timestep * wgrid(2,node_id)
311 dnod(2, node_id) = dnod(2, node_id) + vdt
312 xgrid(2, node_id) = xgrid(2, node_id) + vdt
313
314 vdt = half * timestep * wgrid(3,node_id)
315 dnod(3, node_id) = dnod(3, node_id) + vdt
316 xgrid(3, node_id) = xgrid(3, node_id) + vdt
317 ENDDO
318 ENDIF
319
320 CALL my_barrier
321
322C---------------------
323 nbmat = multi_fvm%NBMAT
324
325 DO ng = itask + 1, ngroup, nthread
326 matlaw = iparg(1, ng)
327 IF (matlaw == 151) THEN
328C -------------------------
329C Multifluid law: update global values
330C -------------------------
331 CALL multi_evolve_global(timestep, ng, elbuf_tab,
332 . iparg, itask, ixs, ixq, ixtg, multi_fvm, alefvm_buffer%VERTEX, wfext)
333 IF (nbmat > 1) THEN
334C -------------------------
335C Multifluid law: evolve partial values
336C -------------------------
337 CALL multi_evolve_partial(timestep, ng, elbuf_tab,
338 . iparg, itask, ixs, ixq, ixtg, multi_fvm,
339 . pm, ipm, alefvm_buffer%VERTEX, current_time)
340 ENDIF
341 ENDIF !IF (MATLAW == 151) THEN
342 ENDDO !NG = ITASK + 1, NGROUP, NTHREAD
343
344 DO ng = itask + 1, ngroup, nthread
345 matlaw = iparg(1, ng)
346 IF (matlaw == 151) THEN
347 nel = iparg(2, ng)
348 nft = iparg(3, ng)
349 ity = iparg(5, ng)
350 gbuf => elbuf_tab(ng)%GBUF
351C -------------------------
352C Volume computation
353C -------------------------
354 volnew(1:mvsiz) = zero
355 CALL multi_computevolume(nel, ng, iparg, multi_fvm%SYM,
356 . elbuf_tab, ixs, ixq, ixtg, volnew, xgrid)
357C -------------------------
358C Multifluid law: update global values
359C -------------------------
360 CALL multi_update_global(ng, elbuf_tab, iparg, itask, multi_fvm,
361 . partsav, iparts, gresav, igrth, grth, volnew(1:nel), pred, timestep)
362
363 IF (multi_fvm%SYM == 0) THEN
364 ix => ixs(1:nixs, 1 + nft:nel + nft)
365 nix = nixs
366 elemtyp = 0
367 ELSEIF (ity == 2) THEN
368C QUADS
369 ix => ixq(1:nixq, 1 + nft:nel + nft)
370 nix = nixq
371 elemtyp = 1
372 ELSEIF (ity == 7) THEN
373C TRIANGLES
374 ix => ixtg(1:nixtg, 1 + nft:nel + nft)
375 nix = nixtg
376 elemtyp = 2
377 ENDIF
378C Check if rho is negative, then stop RADIOSS instance
379 DO ii = 1, nel
380 i = ii + nft
381 IF (multi_fvm%RHO(i) <= zero) THEN
382 IF (elemtyp == 0) THEN
383 CALL ancmsg(msgid = 167, anmode = aninfo, i1 = ix(nix, ii),
384 . r1 = multi_fvm%RHO(i))
385 ELSE
386 CALL ancmsg(msgid = 12, anmode = aninfo, i1 = ix(nix, ii),
387 . r1 = multi_fvm%RHO(i))
388 ENDIF
389 CALL arret(2)
390 ENDIF
391 ENDDO
392
393 IF (nbmat > 1) THEN
394C -------------------------
395C Multifluid law: evolve partial values
396C -------------------------
397 DO imat = 1, nbmat
398 local_matid = ipm(20 + imat, ix(1, 1))
399 CALL multi_update_partial(local_matid, pm, imat, ng,
400 . elbuf_tab, iparg, itask, multi_fvm, volnew)
401 ENDDO
402 ENDIF
403C -------------------------
404C Update volumes
405C -------------------------
406 IF (.NOT. pred) THEN
407 DO ii = 1, nel
408 gbuf%VOL(ii) = volnew(ii)
409 ENDDO
410 IF (multi_fvm%NS_DIFF) THEN
411 DO ii = 1, nel
412 i = ii + nft
413 multi_fvm%VOL(i) = volnew(ii)
414 ENDDO
415 ENDIF
416 ENDIF
417 ENDIF !IF (MATLAW == 151) THEN
418 ENDDO !NG = ITASK + 1, NGROUP, NTHREAD
419
420 CALL my_barrier
421
422 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)
Definition multi_ebcs.F:41
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)
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)
for(i8=*sizetab-1;i8 >=0;i8--)
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:60
integer, parameter th_surf_num_channel
number of /TH/SURF channels : AREA, VELOCITY, MASSFLOW, P A, MASS
Definition th_surf_mod.F:99
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:889
subroutine arret(nn)
Definition arret.F:87
subroutine my_barrier
Definition machine.F:31
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135