OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
arezon.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!|| arezon_mod ../engine/source/ale/arezon.F
25!||--- called by ------------------------------------------------------
26!|| alethe ../engine/source/ale/alethe.F
27!||====================================================================
29 CONTAINS
30!||====================================================================
31!|| arezon ../engine/source/ale/arezon.F
32!||--- called by ------------------------------------------------------
33!|| alethe ../engine/source/ale/alethe.F
34!||--- calls -----------------------------------------------------
35!|| arezo2 ../engine/source/ale/ale2d/arezo2.F
36!|| arezo3 ../engine/source/ale/ale3d/arezo3.F
37!|| brezo2 ../engine/source/ale/ale2d/brezo2.F
38!|| initbuf ../engine/share/resol/initbuf.F
39!|| my_barrier ../engine/source/system/machine.F
40!|| spmd_e1vois ../engine/source/mpi/fluid/spmd_cfd.F
41!||--- uses -----------------------------------------------------
42!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
43!|| arezo2_mod ../engine/source/ale/ale2d/arezo2.F
44!|| arezo3_mod ../engine/source/ale/ale3d/arezo3.F
45!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
46!|| initbuf_mod ../engine/share/resol/initbuf.F
47!|| multimat_param_mod ../common_source/modules/multimat_param_mod.F90
48!||====================================================================
49 SUBROUTINE arezon(
50 1 IPARG ,ELBUF_STR,FLUX ,PHI ,ALE_CONNECT ,
51 2 NVAR ,NV ,ITASK ,NERCVOIS,
52 3 NESDVOIS,LERCVOIS ,LESDVOIS,LENCOM,BHOLE ,
53 4 ITRIMAT ,OPT_FLAG_MAT_EOS)
54C-----------------------------------------------
55C M o d u l e s
56C-----------------------------------------------
57 USE initbuf_mod
58 USE elbufdef_mod
60 USE multimat_param_mod , ONLY : m51_n0phas, m51_nvphas
61 USE arezo3_mod , ONLY : arezo3
62 USE arezo2_mod , ONLY : arezo2
63C-----------------------------------------------
64C I m p l i c i t T y p e s
65C-----------------------------------------------
66#include "implicit_f.inc"
67C-----------------------------------------------
68C C o m m o n B l o c k s
69C-----------------------------------------------
70#include "com01_c.inc"
71#include "com04_c.inc"
72#include "vect01_c.inc"
73#include "param_c.inc"
74#include "task_c.inc"
75C-----------------------------------------------
76C D u m m y A r g u m e n t s
77C-----------------------------------------------
78 my_real flux(*), phi(*)
79 INTEGER NVAR, ITASK, LENCOM,ITRIMAT,NV,
80 . IPARG(NPARG,NGROUP),
81 . NERCVOIS(*),NESDVOIS(*),LERCVOIS(*),LESDVOIS(*),
82 . bhole(*)
83 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_STR
84 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
85 INTEGER,INTENT(IN),OPTIONAL :: OPT_FLAG_MAT_EOS
86C-----------------------------------------------
87C L o c a l V a r i a b l e s
88C-----------------------------------------------
89 INTEGER :: NG, IRS, IRE, I, J, K, NM, NMN, NFX, ADD, ADD0,IDX,INDX,NEL
90 INTEGER :: NUVAR_MAT !< number of user variable (MATERIAL) to rezon
91 INTEGER :: NUVAR_EOS !< number of user variable (EOS) to rezon
92 my_real, DIMENSION(:), POINTER :: VAR,SIG,VOL, TAG22,TEMP
93 INTEGER :: FLAG_MAT_EOS
94C-----------------------------------------------
95C S o u r c e L i n e s
96C-----------------------------------------------
97 flag_mat_eos = 0
98 IF(PRESENT(opt_flag_mat_eos))flag_mat_eos = opt_flag_mat_eos
99 idx=nv
100 nmn=max(1,nmult)
101 DO nm=1,nmn
102C---------------------
103 CALL my_barrier
104C---------------------
105 DO ng=itask+1,ngroup,nthread
106C ALE ON / OFF
107 IF (iparg(76, ng) == 1) cycle ! --> OFF
108 CALL initbuf(iparg ,ng ,
109 2 mtn ,llt ,nft ,iad ,ity ,
110 3 npt ,jale ,ismstr ,jeul ,jtur ,
111 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
112 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
113 6 irep ,iint ,igtyp ,israt ,isrot ,
114 7 icsen ,isorth ,isorthg ,ifailure,jsms )
115 !-----------------------------!
116 ! PRECONDITIONS !
117 !-----------------------------!
118 nuvar_mat = iparg(81,ng)
119 nuvar_eos = iparg(82,ng)
120 IF (nvar == 11)THEN
121 IF (flag_mat_eos == 0 .OR. idx == 0) cycle ! %VAR (MAT and EOS)
122 IF(flag_mat_eos == 1)THEN
123 IF(idx > nuvar_mat) cycle ! rezon uvar( I, 1:NUVAR_MAT) only
124 ELSEIF (flag_mat_eos == 2)THEN
125 IF(idx > nuvar_eos) cycle ! rezon uvar( I, 1:NUVAR_MAT) only
126 ENDIF
127 IF(mtn == 51 .AND. (itrimat==0.OR.itrimat==4))cycle
128 ENDIF
129 IF (itrimat > 0 .AND. mtn /= 51) cycle
130 IF (jale+jeul == 0) cycle
131 IF (iparg(8,ng) == 1) cycle
132 IF (max(1,jmult) < nm) cycle
133 ! pressurer rezoning for outlets (continuity)
134 IF (jmult /= 0) mtn=iparg(24+nm,ng)
135 IF (nvar == 10 .AND. (mtn == 37)) cycle
136 IF (nvar == 12 .AND. elbuf_str(ng)%GBUF%G_TEMP == 0) cycle
137 !-----------------------------!
138 irs=iparg(15,ng) !rezoning sigma enabled
139 ire=iparg(16,ng) !rezoning plasticity or burning time
140 lft=1
141 nel=llt
142
143 !----------------------------!
144 ! N V A R = 2 !
145 ! (SIGMA) !
146 !----------------------------!
147 IF (nvar == 2 .AND. irs == 1) THEN
148 IF (itrimat > 0 .AND. mtn == 51) THEN
149 add = m51_n0phas + (itrimat-1)*m51_nvphas + idx ! ADD+1 => SIG(1)
150 add = add *llt
151 DO i=lft,llt
152 j = i+nft
153 phi(j) = elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(add+i)
154 END DO
155 ELSE
156 DO i=lft,llt !other material laws or mtn=51
157 j = i+nft
158 k = (idx-1)*nel + i !idx : 1:6
159 phi(j) = elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%SIG(k)
160 ENDDO
161 ENDIF
162 !----------------------------!
163 ! N V A R = 10 !
164 ! (PLAS) !
165 ! (TB) explo. !
166 ! (RK) turb. !
167 !----------------------------!
168 ELSEIF (nvar == 10 .AND. ire == 1) THEN
169 IF (mtn == 41) cycle
170 IF (mtn==51) THEN !submat 4 is JWL
171 IF(itrimat==0)THEN
172 cycle
173 ELSEIF(itrimat <= 3)THEN
174 add0= m51_n0phas + (itrimat-1)*m51_nvphas
175 add = add0 + 15 ! PLAS
176 k = llt*(add-1)
177 var => elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
178 ELSEIF(itrimat == 4)THEN
179 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%TB(1:llt)
180 ENDIF
181 ELSEIF (mtn == 5 .OR. mtn ==97 .OR. mtn==105) THEN ! DETONATION TIME
182 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%TB(1:llt)
183 ELSEIF (mtn == 6) THEN
184 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%RK(1:llt)
185 ELSEIF (mtn >= 28 .AND. mtn /= 67 .AND. mtn /= 49) THEN
186 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%PLA(1:llt)
187 ELSE
188 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%PLA(1:llt)
189 ENDIF
190 DO i=lft,llt
191 j = i+nft
192 phi(j) = var(i)
193 ENDDO
194 !----------------------------!
195 ! N V A R = 11 !
196 ! (MAT/EOS %VAR) !
197 !----------------------------!
198 ELSEIF (nvar == 11) THEN
199 IF( flag_mat_eos == 1 ) THEN
200 ! MAT %VAR buffer
201 var => elbuf_str(ng)%BUFLY(nm)%MAT(1,1,1)%VAR(llt*(idx-1)+1:llt*(idx))
202 DO i=lft,llt
203 j = i+nft
204 phi(j) = var(i)
205 ENDDO
206 ELSEIF( flag_mat_eos == 2 )THEN
207 ! EOS %VAR buffer
208 IF(itrimat == 0) THEN ! precondition : mtn /=51 in this case
209 var => elbuf_str(ng)%BUFLY(nm)%EOS(1,1,1)%VAR(llt*(idx-1)+1:llt*(idx))
210 ELSEIF(itrimat /= 4)THEN
211 add0= m51_n0phas + (itrimat-1)*m51_nvphas
212 add = add0 + 23 + idx ! EOSVAR
213 k = llt*(add-1)
214 var => elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
215 ENDIF
216 DO i=lft,llt
217 j = i+nft
218 phi(j) = var(i)
219 ENDDO
220 ENDIF
221 !----------------------------!
222 ! N V A R = 12 !
223 ! (TEMP) !
224 !----------------------------!
225 ELSEIF (nvar == 12) THEN
226
227 IF (mtn == 51) THEN !submat 4 is JWL
228 IF(itrimat == 0)THEN
229 cycle
230 ELSE
231 add0= m51_n0phas + (itrimat-1)*m51_nvphas
232 add = add0 + 16 ! TEMP
233 k = llt*(add-1)
234 var => elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
235 ENDIF
236 ELSE
237 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%TEMP(1:llt)
238 ENDIF
239 DO i=lft,llt
240 j = i+nft
241 phi(j) = var(i)
242 ENDDO
243 !----------------------------!
244 ! DEFAULT !
245 !----------------------------!
246 ELSE
247 DO i=lft,llt
248 j=i+nft
249 phi(j)=zero
250 ENDDO
251 ENDIF !(NVAR == 2 .AND. IRS == 1)
252 ENDDO ! NG
253C---------------------
254 CALL my_barrier
255C---------------------
256 !------------------------------------!
257 ! SPMD EXCHANGES !
258 !------------------------------------!
259 IF (nspmd > 1)THEN
260!$OMP SINGLE
261 CALL spmd_e1vois(phi,nercvois,nesdvois,lercvois,lesdvois,lencom )
262!$OMP END SINGLE
263 END IF
264
265
266C=======================================================================
267C REZONING DEPENDING ON NVAR VALUE
268C=======================================================================
269
270 DO ng=itask+1,ngroup,nthread
271C ALE ON / OFF
272 IF (iparg(76, ng) == 1) cycle ! --> OFF
273 CALL initbuf(iparg ,ng ,
274 2 mtn ,llt ,nft ,iad ,ity ,
275 3 npt ,jale ,ismstr ,jeul ,jtur ,
276 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
277 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
278 6 irep ,iint ,igtyp ,israt ,isrot ,
279 7 icsen ,isorth ,isorthg ,ifailure,jsms )
280 !-----------------------------!
281 ! UNPLUG CONDITIONS !
282 !-----------------------------!
283 nuvar_mat = iparg(81,ng)
284 nuvar_eos = iparg(82,ng)
285 IF (nvar == 11)THEN
286 IF (flag_mat_eos == 0 .OR. idx == 0) cycle ! %VAR (MAT and EOS)
287 IF(flag_mat_eos == 1)THEN
288 IF(idx > nuvar_mat) cycle ! rezon uvar( I, 1:NUVAR_MAT) only
289 ELSEIF (flag_mat_eos == 2)THEN
290 IF(idx > nuvar_eos) cycle ! rezon uvar( I, 1:NUVAR_MAT) only
291 ENDIF
292 IF(mtn == 51 .AND. (itrimat==0.OR.itrimat==4))cycle
293 ENDIF
294 IF (max(1,jmult) < nm) cycle
295 IF (jale+jeul == 0) cycle
296 IF (iparg(8,ng) == 1) cycle
297 IF (itrimat /= 0.AND.mtn /= 51) cycle
298 IF (jmult /= 0) mtn = iparg(24+nm,ng)
299 IF (nvar == 10 .AND. (mtn == 37)) cycle
300 IF (nvar == 10 .AND. mtn==51 .AND. itrimat == 0) cycle
301 IF (nvar == 12 .AND. elbuf_str(ng)%GBUF%G_TEMP == 0) cycle
302
303 !-----------------------------!
304 irs=iparg(15,ng)
305 ire=iparg(16,ng)
306 nel=llt
307 !----------------------------!
308 ! N V A R = 2 !
309 ! (SIGMA) !
310 !----------------------------!
311 IF (nvar == 2 .AND. irs == 1) THEN
312 indx = idx
313 IF (itrimat > 0) THEN
314 add = m51_n0phas + (itrimat-1)*m51_nvphas + idx ! ADD+1 => SIG[IDX](i=1)
315 add = add *llt
316 sig => elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(add+1:add+llt) ! S[INDX] , S1,S2,S3,...,or S6
317 add = m51_n0phas + (itrimat-1)*m51_nvphas + 10 ! ADD+1 => VOL(1)
318 add = add *llt
319 vol => elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(add+1:add+llt)
320 indx = 1
321 ELSE
322 sig => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%SIG(llt*(indx-1)+1:llt*idx)
323 vol => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%VOL(1:llt)
324 ENDIF
325 IF (n2d == 0) THEN
326 tag22 => elbuf_str(ng)%GBUF%TAG22(1:) !inter22 only (cut cell)
327 CALL arezo3(ale_connect,sig,phi,flux(6*nft+1),vol,tag22)
328 ELSE
329 nfx = nft+(nm-1)*numelq
330 IF (nmult == 0) THEN
331 CALL arezo2(ale_connect,sig,phi,flux(4*nfx+1),vol)
332 ELSE
333 CALL brezo2(ale_connect,sig ,phi,flux(4*nfx+1),vol,bhole,nm)
334 ENDIF
335 ENDIF
336 !----------------------------!
337 ! N V A R = 10 !
338 ! (PLAS) !
339 ! (TB) explo. !
340 ! (RK) turb. !
341 !----------------------------!
342 ELSEIF (nvar == 10 .AND. ire == 1) THEN
343 IF (mtn == 41) cycle
344 indx = idx
345 vol => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%VOL(1:llt)
346 IF (itrimat /= 0 .AND. itrimat /= 4)THEN
347 add0= m51_n0phas + (itrimat-1)*m51_nvphas
348 add = add0 + 15 ! UVAR(ADD+1) => PLAS
349 k = llt*(add-1)
350 var =>elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
351 add0= m51_n0phas + (itrimat-1)*m51_nvphas
352 add = add0 + 11
353 k = llt*(add-1)
354 vol =>elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
355 indx=1
356 ELSEIF (mtn == 5 .OR. mtn == 97 .OR. mtn==105 .OR. itrimat == 4) THEN
357 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%TB(1:llt)
358 ELSEIF (mtn == 6) THEN
359 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%RK(1:llt)
360 ELSEIF (mtn >= 28 .AND. mtn /= 67 .AND. mtn /= 49) THEN
361 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%PLA(1:llt)
362 ELSE
363 IF(mtn==51 .AND. itrimat == 0)cycle
364 var => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%PLA(1:llt)
365 ENDIF
366 IF (n2d == 0) THEN
367 tag22 => elbuf_str(ng)%GBUF%TAG22(1:) !inter22 only
368 CALL arezo3(ale_connect,var,phi,flux(6*nft+1),vol,tag22)
369 ELSE
370 nfx=nft+(nm-1)*numelq
371 IF(nmult == 0)THEN
372 CALL arezo2(ale_connect,var,phi,flux(4*nfx+1),vol)
373 ELSE
374 CALL brezo2(ale_connect,var,phi,flux(4*nfx+1),vol,bhole,nm)
375 ENDIF
376 ENDIF
377 !----------------------------!
378 ! N V A R = 11 !
379 ! (MAT/EOS %VAR) !
380 !----------------------------!
381 ELSEIF (nvar == 11) THEN
382
383 IF (itrimat /= 0) THEN
384 IF(itrimat /=4)THEN
385 !VOLUME
386 add0= m51_n0phas + (itrimat-1)*m51_nvphas
387 add = add0 + 11 ! UVAR(ADD+1) => VOL
388 k = llt*(add-1)
389 vol =>elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
390 !VAR
391 add0= m51_n0phas + (itrimat-1)*m51_nvphas
392 add = add0 + 24 + idx ! UVAR(ADD+1) => TEMP
393 k = llt*(add-1)
394 var =>elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
395 indx=1
396 ENDIF
397 ELSE
398 vol => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%VOL(1:llt)
399 IF(flag_mat_eos == 1)THEN
400 var => elbuf_str(ng)%BUFLY(nm)%MAT(1,1,1)%VAR(llt*(idx-1)+1:llt*(idx))
401 ELSEIF (flag_mat_eos == 2)THEN
402 var => elbuf_str(ng)%BUFLY(nm)%EOS(1,1,1)%VAR(llt*(idx-1)+1:llt*(idx))
403 ENDIF
404 ENDIF
405
406 DO i=lft,llt
407 j = i+nft
408 phi(j) = var(i)
409 ENDDO
410 IF (n2d == 0) THEN
411 tag22 => elbuf_str(ng)%GBUF%TAG22(1:llt) !inter22 only
412 CALL arezo3(ale_connect,var,phi,flux(6*nft+1),vol,tag22)
413 ELSE
414 nfx=nft+(nm-1)*numelq
415 IF(nmult == 0)THEN
416 CALL arezo2(ale_connect,var,phi,flux(4*nfx+1),vol)
417 ELSE
418 CALL brezo2(ale_connect,var,phi,flux(4*nfx+1),vol,bhole,nm)
419 ENDIF
420 ENDIF
421
422 !----------------------------!
423 ! N V A R = 12 !
424 ! (TEMP) !
425 !----------------------------!
426 ELSEIF (nvar == 12) THEN
427 indx = idx
428 temp => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%TEMP(1:llt)
429 IF (itrimat /= 0) THEN
430 add0= m51_n0phas + (itrimat-1)*m51_nvphas
431 add = add0 + 11 ! UVAR(ADD+1) => VOL
432 k = llt*(add-1)
433 vol =>elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
434 add = add0 + 16 ! UVAR(ADD+1) => TEMP
435 k = llt*(add-1)
436 temp =>elbuf_str(ng)%BUFLY(1)%MAT(1,1,1)%VAR(k+1:k+llt)
437 indx=1
438 ELSE
439 IF(mtn == 51 .AND. itrimat == 0)cycle
440 temp => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%TEMP(1:llt)
441 vol => elbuf_str(ng)%BUFLY(nm)%LBUF(1,1,1)%VOL(1:llt)
442 ENDIF
443 IF (n2d == 0) THEN
444 tag22 => elbuf_str(ng)%GBUF%TAG22(1:)
445 CALL arezo3(ale_connect,temp,phi,flux(6*nft+1),vol,tag22)
446 ELSE
447 nfx=nft+(nm-1)*numelq
448 IF(nmult == 0)THEN
449 CALL arezo2(ale_connect,temp,phi,flux(4*nfx+1),vol)
450 ELSE
451 CALL brezo2(ale_connect,temp,phi,flux(4*nfx+1),vol,bhole,nm)
452 ENDIF
453 ENDIF
454
455 ENDIF ! (NVAR == 2 .AND. IRS == 1)
456 ENDDO ! next NG
457 END DO !next NM
458C-----------
459 RETURN
460 END SUBROUTINE arezon
461 END MODULE arezon_mod
subroutine brezo2(ale_connect, var, phi, flux, vol, bhole, nm)
Definition brezo2.F:31
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21
subroutine arezo2(ale_connect, var, phi, flux, vol)
Definition arezo2.F:38
subroutine arezo3(ale_connect, var, phi, flux, vol, iad22)
Definition arezo3.F:38
subroutine arezon(iparg, elbuf_str, flux, phi, ale_connect, nvar, nv, itask, nercvois, nesdvois, lercvois, lesdvois, lencom, bhole, itrimat, opt_flag_mat_eos)
Definition arezon.F:54
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
Definition initbuf.F:261
subroutine spmd_e1vois(phi, nercvois, nesdvois, lercvois, lesdvois, lencom)
Definition spmd_cfd.F:375
subroutine my_barrier
Definition machine.F:31