OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
aconve.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!|| aconve ../engine/source/ale/aconve.F
25!||--- called by ------------------------------------------------------
26!|| alethe ../engine/source/ale/alethe.F
27!||--- calls -----------------------------------------------------
28!|| a22conv3 ../engine/source/ale/alefvm/cut_cells/a22conv3.F
29!|| a4conv3 ../engine/source/ale/ale3d/a4conv3.F
30!|| aconv2 ../engine/source/ale/ale2d/aconv2.F
31!|| aconv3 ../engine/source/ale/ale3d/aconv3.F
32!|| bconv2 ../engine/source/ale/ale2d/bconv2.F
33!|| initbuf ../engine/share/resol/initbuf.F
34!|| my_barrier ../engine/source/system/machine.F
35!|| spmd_e1vois ../engine/source/mpi/fluid/spmd_cfd.F
36!|| varcondec ../engine/source/interfaces/interf/varcondec.F
37!||--- uses -----------------------------------------------------
38!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.F
39!|| ale_mod ../common_source/modules/ale/ale_mod.F
40!|| alefvm_mod ../common_source/modules/ale/alefvm_mod.F
41!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
42!|| element_mod ../common_source/modules/elements/element_mod.F90
43!|| i22bufbric_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
44!|| i22tri_mod ../common_source/modules/interfaces/cut-cell-search_mod.F
45!|| initbuf_mod ../engine/share/resol/initbuf.F
46!|| multimat_param_mod ../common_source/modules/multimat_param_mod.F90
47!|| segvar_mod ../engine/share/modules/segvar_mod.F
48!||====================================================================
49 SUBROUTINE aconve(
50 1 IPARG ,ELBUF_TAB ,FLUX ,FLU1 ,PHI ,
51 2 ALE_CONNECT ,NVAR ,ITASK ,NERCVOIS ,NESDVOIS,
52 3 LERCVOIS ,LESDVOIS ,LENCOM ,SEGVAR ,BHOLE ,
53 4 ITRIMAT ,QMV ,IFLG ,IXS ,IXQ ,
54 5 PM ,X )
55C-----------------------------------------------
56C M o d u l e s
57C-----------------------------------------------
58 USE initbuf_mod
59 USE elbufdef_mod
60 USE i22tri_mod
62 USE segvar_mod
64 USE alefvm_mod , only:alefvm_param
65 USE ale_mod
66 USE multimat_param_mod , ONLY : m51_nvphas, m51_n0phas
67 use element_mod , only : nixs,nixq
68C-----------------------------------------------
69C I m p l i c i t T y p e s
70C-----------------------------------------------
71#include "implicit_f.inc"
72C-----------------------------------------------
73C C o m m o n B l o c k s
74C-----------------------------------------------
75#include "com01_c.inc"
76#include "com04_c.inc"
77#include "vect01_c.inc"
78#include "param_c.inc"
79#include "task_c.inc"
80#include "spmd_c.inc"
81#include "inter22.inc"
82#include "warn_c.inc"
83C-----------------------------------------------
84C D u m m y A r g u m e n t s
85C-----------------------------------------------
86 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
87
88 INTEGER IPARG(NPARG,NGROUP),NVAR,ITRIMAT,
89 . NERCVOIS(*),NESDVOIS(*),LERCVOIS(*), LESDVOIS(*),
90 . BHOLE(*),IXS(NIXS,NUMELS),IXQ(NIXQ,NUMELQ), LENCOM,
91 . iflg, itask
92
93 my_real flux(*), flu1(*) , phi(*) ,
94 . qmv(*) , pm(npropm,nummat), x(3, numnod)
95
96 TYPE(t_segvar) :: SEGVAR
97 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
98C-----------------------------------------------
99C L o c a l V a r i a b l e s
100C-----------------------------------------------
101 INTEGER NMN, NM, NG, JMUL, IADR, I, J, K, NF1,ISILENT,NFX, IOFF, IMAT
102 INTEGER JCODV(ALE%GLOBAL%LCONV),CODTOT,NGSEG,ISEG,ISOLNOD
103 INTEGER ADD0, ADD
104
105 TYPE(L_BUFEL_) ,POINTER :: LBUF
106 TYPE(g_bufel_) ,POINTER :: GBUF
107 TYPE(buf_mat_) ,POINTER :: MBUF
108
109 my_real, DIMENSION(:), POINTER :: var, prho , pvol , peint, piad22
110 INTEGER :: ICELLv,IB,IBv,NIN,NUM, MCELL, IDX, NDIM
111C-----------------------------------------------
112C S o u r c e L i n e s
113C-----------------------------------------------
114C--------------------
115 CALL my_barrier
116C--------------------
117
118 NULLIFY (var)
119
120C=======================================================================
121C PHI IS DEFINED DEPENDING ON NVAR VALUE
122C=======================================================================
123
124 nmn=max(1,nmult)
125
126 DO nm=1,nmn
127 DO ng=itask+1,ngroup,nthread
128C ALE ON / OFF
129 IF (iparg(76, ng) == 1) cycle ! --> OFF
130 CALL initbuf(iparg ,ng ,
131 2 mtn ,llt ,nft ,iadr ,ity ,
132 3 npt ,jale ,ismstr ,jeul ,jtur ,
133 4 jthe ,jlag ,jmul ,jhbe ,jivf ,
134 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
135 6 irep ,iint ,igtyp ,israt ,isrot ,
136 7 icsen ,isorth ,isorthg ,ifailure,jsms )
137 isilent = iparg(64,ng)
138 !-----------------------------!
139 ! UNPLUG CONDITIONS !
140 !-----------------------------!
141 IF (jale+jeul == 0) cycle
142 IF (iparg(8,ng) == 1) cycle
143 IF (max(1,jmul) < nm) cycle
144 IF (itrimat /= 0 .AND. mtn /= 51) cycle
145 !-----------------------------!
146 ! POINTERS FOR CURRENT GROUP !
147 !-----------------------------!
148 gbuf => elbuf_tab(ng)%GBUF
149 lbuf => elbuf_tab(ng)%BUFLY(nm)%LBUF(1,1,1)
150 mbuf => elbuf_tab(ng)%BUFLY(nm)%MAT(1,1,1)
151
152 CALL varcondec(jcodv,iparg(34,ng),codtot)
153 IF (jcodv(nvar) /= 0) THEN
154 isolnod = iparg(28,ng)
155 IF (jmul /= 0) mtn =iparg(24+nm,ng)
156 lft=1
157 !----------------------------!
158 ! N V A R = 1 !
159 ! in : RHO !
160 ! Out: Rho * Flight!
161 !----------------------------!
162 IF (nvar == 1) THEN
163 IF(itrimat==0)THEN
164 prho => lbuf%RHO(1:llt)
165 pvol => lbuf%VOL(1:llt)
166 ELSE
167 !USE PHASIS DATA
168 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
169 add = add0 + 9 ! ADD+9 => RHO
170 k = llt*(add-1) ! UVAR(I,ADD) = UVAR(K+I)
171 prho => mbuf%VAR(k+1:k+llt)
172 add = add0 + 11 ! ADD+11 => VOL
173 k = llt*(add-1) ! UVAR(I,ADD) = UVAR(K+I)
174 pvol => mbuf%VAR(k+1:k+llt)
175 !dbKEY="R/V TRIMAT "
176 END IF
177#include "vectorize.inc"
178 DO i=lft,llt
179 j=i+nft
180 phi(j)=prho(i)
181 ENDDO
182 DO i=lft,llt
183 prho(i) = prho(i)*pvol(i)
184 ENDDO
185 !----------------------------!
186 ! N V A R = 2 !
187 ! in : E (J/m3)!
188 ! out : EINT (J) !
189 !----------------------------!
190 ELSEIF (nvar == 2) THEN
191 IF(itrimat == 0)THEN
192 peint=> lbuf%EINT(1:llt)
193 pvol => lbuf%VOL(1:llt)
194 ELSE
195 !USE PHASIS DATA
196 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
197 add = add0 + 8 ! ADD+8 => EINT
198 k = llt*(add-1) ! UVAR(I,ADD) = UVAR(K+I)
199 peint=> mbuf%VAR(k+1:k+llt)
200 add = add0 + 11 ! ADD+11 => VOL
201 k = llt*(add-1) ! UVAR(I,ADD) = UVAR(K+I)
202 pvol => mbuf%VAR(k+1:k+llt)
203 END IF
204#include "vectorize.inc"
205 DO i=lft,llt
206 j=i+nft
207 phi(j)=peint(i)
208 ENDDO
209 DO i=lft,llt
210 peint(i) = peint(i)*pvol(i)
211 ENDDO
212 !----------------------------!
213 ! N V A R = 3 !
214 !----------------------------!
215 ELSEIF (nvar == 3) THEN ! JTUR > 0
216#include "vectorize.inc"
217 DO i=lft,llt
218 j=i+nft
219 phi(j)=lbuf%RK(i)
220 ENDDO
221 DO i=lft,llt
222 lbuf%RK(i) = lbuf%RK(i)*lbuf%VOL(i)
223 ENDDO
224 !----------------------------!
225 ! N V A R = 4 !
226 !----------------------------!
227 ELSEIF (nvar == 4) THEN ! JTUR > 0
228#include "vectorize.inc"
229 DO i=lft,llt
230 j=i+nft
231 phi(j)=lbuf%RE(i)
232 ENDDO
233 DO i=lft,llt
234 lbuf%RE(i) = lbuf%RE(i)*lbuf%VOL(i)
235 ENDDO
236 !----------------------------!
237 ! N V A R = 5 !
238 !----------------------------!
239 !Uvar (I, 1): rho_liq*v_liq/v
240 !UVAR(I,2) : density of gas
241 !UVAR(I,3) : density of liquid
242 !UVAR(I,4) : volumetric fraction of liquid
243 !UVAR(I,5) : volumetric fraction of gas
244 ELSEIF (nvar == 5) THEN ! Law 37 or law 41
245 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(1:llt) ! <---- UVAR(1:LLT,1)
246 IF (mtn == 41) THEN
247 prho => gbuf%RHO
248#include "vectorize.inc"
249 DO i=lft,llt
250 j=i+nft
251 phi(j) = var(i) * prho(i)
252 ENDDO
253 DO i=lft,llt
254 var(i) = var(i) * prho(i) * lbuf%VOL(i)
255 ENDDO
256 ELSE
257#include "vectorize.inc"
258 DO i=lft,llt
259 j=i+nft
260 phi(j) = var(i)
261 ENDDO
262 DO i=lft,llt
263 var(i) = var(i)*lbuf%VOL(i)
264 ENDDO
265 ENDIF
266 !-------------------------------!
267 ! N V A R = 6 !
268 ! in : RHO*v_x !
269 ! out : RHO*v_x *VOL !
270 !-------------------------------!
271 ELSEIF (nvar == 6) THEN
272 IF(itrimat == 0)THEN
273 idx = 1
274 ndim = 3
275 var => gbuf%MOM(1:llt*ndim)
276#include "vectorize.inc"
277 DO i=lft,llt
278 j = i+nft
279 k = llt*(idx-1) + i
280 phi(j) = var(k)
281 var(k) = var(k) *lbuf%VOL(i) ![rhoU]*VOL, U needed for fluxes calculation
282 ENDDO
283 ENDIF
284
285 !-----------------------------!
286 ! N V A R = 7 !
287 ! in : RHO*v_y !
288 ! out : RHO*v_y *VOL !
289 !-----------------------------!
290 ELSEIF (nvar == 7) THEN
291 IF(itrimat == 0)THEN
292 idx = 2
293 ndim = 3
294 var => gbuf%MOM(1:llt*ndim)
295#include "vectorize.inc"
296 DO i=lft,llt
297 j = i+nft
298 k = llt*(idx-1) + i
299 phi(j) = var(k)
300 var(k) = var(k) *lbuf%VOL(i) ![rhoU]*VOL, U needed for fluxes calculation
301 ENDDO
302 ENDIF
303
304 !-----------------------------!
305 ! N V A R = 8 !
306 ! in : RHO*v_z !
307 ! out : RHO*v_z *VOL !
308 !-----------------------------!
309 ELSEIF (nvar == 8) THEN
310 IF(itrimat == 0)THEN
311 idx = 3
312 ndim = 3
313 var => gbuf%MOM(1:llt*ndim)
314#include "vectorize.inc"
315 DO i=lft,llt
316 j = i+nft
317 k = llt*(idx-1) + i
318 phi(j) = var(k)
319 var(k) = var(k) *lbuf%VOL(i) ![rhoU]*VOL, U needed for fluxes calculation
320 ENDDO
321 ENDIF
322
323 ELSEIF (nvar == 9 .AND. isilent == 1) THEN
324 ELSEIF (nvar == 10 .AND. isilent == 1) THEN
325 ELSE
326 !--------------------------!
327 ! DEFAULT 3D CASE !
328 !--------------------------!
329 IF (n2d == 0) THEN
330#include "vectorize.inc"
331 DO i=lft,llt
332 j=i+nft
333 imat=ixs(1,j)
334 phi(j)=pm(180+nvar,imat)*lbuf%RHO(i)
335 END DO
336 !--------------------------!
337 ! DEFAULT 2D CASE !
338 !--------------------------!
339 ELSE
340#include "vectorize.inc"
341 DO i=lft,llt
342 j=i+nft
343 imat=ixq(1,j)
344 phi(j)=pm(180+nvar,imat)*lbuf%RHO(i)
345 END DO
346 END IF
347 END IF
348 ELSE
349 DO i=lft,llt
350 j=i+nft
351 phi(j)=zero
352 ENDDO
353 ENDIF
354
355 !--------------------------!
356 ! INTERFACE 22 !
357 !--------------------------!
358 !Fill Secnd cells linked to current main cell with main cell value.
359 IF(int22 > 0)THEN
360 nin = 1
361 piad22 => elbuf_tab(ng)%GBUF%TAG22(1:)
362 DO i=lft,llt
363 j = i+nft
364 ib = nint(piad22(i))
365 IF(ib==0)cycle
366 num = brick_list(nin,ib)%SecndList%Num
367 mcell = brick_list(nin,ib)%mainID
368 brick_list(nin,ib)%POLY(mcell)%PHI = phi(j)
369 DO k=1,num
370 ibv = brick_list(nin,ib)%SecndList%IBV(k)
371 icellv = brick_list(nin,ib)%SecndList%ICELLv(k)
372 brick_list(nin,ibv)%POLY(icellv)%PHI = phi(j)
373 ENDDO
374 enddo!next I
375 ENDIF
376
377 ENDDO !next NG
378
379
380 !--------------------------!
381 ! EBCS **** !
382 !--------------------------!
383 ioff = 0
384 IF(nsegflu > 0)THEN
385 ioff = numels+numelq+numeltg
386 IF(nspmd > 1) THEN
387 ioff = ioff + nsvois
388 ENDIF
389 ngseg=nsegflu/nvsiz
390 IF(nsegflu-ngseg*nvsiz > 0)ngseg=ngseg+1
391 DO i=itask+1,ngseg,nthread
392 iseg=(i-1)*nvsiz
393 SELECT CASE(nvar)
394 !RHO
395 CASE(1)
396 IF(itrimat==0)THEN
397 DO j=iseg+1,min(iseg+nvsiz,nsegflu)
398 phi(ioff+j)=segvar%RHO(j)
399 ENDDO
400 ELSE
401 DO j=iseg+1,min(iseg+nvsiz,nsegflu)
402 phi(ioff+j)=segvar%PHASE_RHO(itrimat,j)
403 ENDDO
404 ENDIF
405 !EINT
406 CASE(2)
407 IF(itrimat==0)THEN
408 DO j=iseg+1,min(iseg+nvsiz,nsegflu)
409 phi(ioff+j)=segvar%EINT(j)
410 ENDDO
411 ELSE
412 DO j=iseg+1,min(iseg+nvsiz,nsegflu)
413 phi(ioff+j)=segvar%PHASE_EINT(itrimat,j)
414 ENDDO
415 ENDIF
416 !RK
417 CASE(3)
418 DO j=iseg+1,min(iseg+nvsiz,nsegflu)
419 phi(ioff+j)=segvar%RK(j)
420 ENDDO
421 !RE
422 CASE(4)
423 DO j=iseg+1,min(iseg+nvsiz,nsegflu)
424 phi(ioff+j)=segvar%RE(j)
425 ENDDO
426 !UVAR
427 CASE(5)
428 DO j=iseg+1,min(iseg+nvsiz,nsegflu)
429 phi(ioff+j)=segvar%UVAR(j)
430 ENDDO
431 END SELECT
432 ENDDO
433 ENDIF
434C----------------------
435 CALL my_barrier
436C----------------------
437 !-----------------------------------------------!
438 ! SPMD EXCHANGES !
439 !-----------------------------------------------!
440 IF (nspmd > 1) THEN
441!$OMP SINGLE
442 CALL spmd_e1vois(phi,nercvois,nesdvois,lercvois, lesdvois,lencom )
443!$OMP END SINGLE
444 END IF
445
446
447C=======================================================================
448C CONVECTION DEPENDING ON NVAR VALUE
449C=======================================================================
450
451 ! CONVECTION OFF WITH DEBUG OPTION /DEBUG/CONV0/[cycle]
452 IF(debug(10) /= 0)THEN
453 IF(ncycle >= debug(10))THEN
454 !write (*,*) "ADVECTION SET OFF"
455 cycle
456 ENDIF
457 ENDIF
458
459 !----------------------------!
460 ! CUT CELL (INTER22) !
461 !----------------------------!
462 !TREAT FIRST POLYHEDRA FROM CUT CELL BUFFER
463 !ELEMENTARY BUFFER IS ALSO UPDATED AND USED LATER
464 !TO TREAT USUAL BRICK ELEMS WHILE DEALING WITH ADJACENT VALUES
465 IF(int22 > 0)THEN
466 nf1=nft+1+(nm-1)*numels
467 nfx=nft+(nm-1)*numels
468 CALL a22conv3(
469 1 phi ,
470 2 iflg ,
471 3 itrimat , nvar , itask ,
472 4 elbuf_tab, ixs , iparg)
473 ENDIF
474
475 DO ng=itask+1,ngroup,nthread
476C ALE ON / OFF
477 IF (iparg(76, ng) == 1) cycle ! --> OFF
478 CALL varcondec(jcodv,iparg(34,ng),codtot)
479 IF (jcodv(nvar) == 0) cycle
480 CALL initbuf( iparg ,ng ,
481 2 mtn ,llt ,nft ,iadr ,ity ,
482 3 npt ,jale ,ismstr ,jeul ,jtur ,
483 4 jthe ,jlag ,jmul ,jhbe ,jivf ,
484 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
485 6 irep ,iint ,igtyp ,israt ,isrot ,
486 7 icsen ,isorth ,isorthg ,ifailure,jsms )
487 isilent = iparg(64,ng)
488 IF (isilent == 1) cycle !silent boundaries law 11 & 51
489 IF (iparg(8,ng) == 1) cycle
490 IF (max(1,jmul) < nm) cycle
491 IF (itrimat /= 0 .AND. mtn /= 51) cycle
492
493 isolnod = iparg(28,ng)
494
495 !-----------------------------!
496 ! POINTERS FROM CURRENT GROUP !
497 !-----------------------------!
498 gbuf => elbuf_tab(ng)%GBUF
499 lbuf => elbuf_tab(ng)%BUFLY(nm)%LBUF(1,1,1)
500 mbuf => elbuf_tab(ng)%BUFLY(nm)%MAT(1,1,1)
501 !-----------------------------!
502 IF (jmul /= 0) THEN
503 mtn =iparg(24+nm,ng)
504 ENDIF
505 lft=1
506
507 !----------------------------!
508 ! N V A R = 1 !
509 !----------------------------!
510 IF (nvar == 1) THEN
511 IF(itrimat == 0)THEN
512 prho => lbuf%RHO(1:llt)
513 ELSE
514 !USE PHASIS DATA
515 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
516 add = add0 + 9 ! ADD+9 => RHO
517 k = llt*(add-1) ! UVAR(I,ADD) = UVAR(K+I)
518 prho => mbuf%VAR(k+1:k+llt)
519 END IF
520 var => prho
521 !----------------------------!
522 ! N V A R = 2 !
523 !----------------------------!
524 ELSEIF (nvar == 2) THEN
525 IF(itrimat == 0)THEN
526 peint=> lbuf%EINT(1:llt)
527 ELSE
528 !USE PHASIS DATA
529 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
530 add = add0 + 8 ! ADD+9 => RHO
531 k = llt*(add-1) ! UVAR(I,ADD) = UVAR(K+I)
532 peint => mbuf%VAR(k+1:k+llt)
533 END IF
534 var => peint
535 !----------------------------!
536 ! N V A R = 3 !
537 !----------------------------!
538 ELSEIF (nvar == 3) THEN
539 var => elbuf_tab(ng)%BUFLY(nm)%LBUF(1,1,1)%RK(1:llt)
540 !----------------------------!
541 ! N V A R = 4 !
542 !----------------------------!
543 ELSEIF (nvar == 4) THEN
544 var => elbuf_tab(ng)%BUFLY(nm)%LBUF(1,1,1)%RE(1:llt)
545 !----------------------------!
546 ! N V A R = 5 !
547 !----------------------------!
548 ELSEIF (nvar == 5) THEN
549 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(1:llt)
550 !----------------------------!
551 ! N V A R = 6 !
552 !----------------------------!
553 ELSEIF (nvar == 6) THEN
554 IF(alefvm_param%IEnabled==0)THEN
555 IF (mtn == 51 .AND. itrimat /= 0) THEN
556 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(5*llt+1:6*llt)
557 ELSE
558 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(llt+1:2*llt)
559 ENDIF
560 ELSE
561 var => elbuf_tab(ng)%GBUF%MOM( 1 : llt )
562 ENDIF
563 !----------------------------!
564 ! N V A R = 7 !
565 !----------------------------!
566 ELSEIF (nvar == 7) THEN
567 IF(alefvm_param%IEnabled == 0)THEN
568 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(2*llt+1:3*llt)
569 ELSE
570 var => elbuf_tab(ng)%GBUF%MOM( llt*1+1 : llt*1+llt )
571 ENDIF
572 !----------------------------!
573 ! N V A R = 8 !
574 !----------------------------!
575 ELSEIF (nvar == 8) THEN
576 IF(alefvm_param%IEnabled == 0)THEN
577 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(3*llt+1:4*llt)
578 ELSE
579 var => elbuf_tab(ng)%GBUF%MOM( llt*2+1 : llt*2+llt )
580 ENDIF
581 !----------------------------!
582 ! N V A R = 9 !
583 !----------------------------!
584 ELSEIF (nvar == 9) THEN
585 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(4*llt+1:5*llt)
586 ENDIF
587
588 !----------------------------!
589 ! CALL ACONVE3 !
590 !----------------------------!
591 piad22 => elbuf_tab(ng)%GBUF%TAG22(1:)
592 IF (n2d == 0) THEN
593 nf1=nft+1+(nm-1)*numels
594 nfx=nft+(nm-1)*numels
595 pvol => lbuf%VOL(1:llt)
596 IF (isolnod /= 4) THEN
597 CALL aconv3(
598 1 var , phi ,flux(6*nfx+1), flu1(nf1) ,ixs ,
599 2 ale_connect , ioff ,qmv(12*nfx+1), iflg ,
600 3 piad22 , nvar ,itask)
601 ELSE
602 CALL a4conv3(
603 1 var ,phi,flux(6*nfx+1),flu1(nf1),
604 2 ale_connect ,ioff )
605 ENDIF
606 !----------------------------!
607 ! CALL ACONVE2 !
608 !----------------------------!
609 ELSE
610 nf1=nft+1+(nm-1)*numelq
611 nfx=nft+(nm-1)*numelq
612 IF (nmult == 0) THEN
613 CALL aconv2(var ,phi ,flux(4*nfx+1),flu1(nf1),
614 . ale_connect ,qmv(8*nfx+1),iflg ,ixq ,
615 . x ,ioff )
616 ELSE
617 CALL bconv2(var, phi, flux(4*nfx+1), flu1(nf1), ale_connect ,bhole ,nm)
618 ENDIF
619 ENDIF !(N2D == 0)
620 !----------------------------!
621 ENDDO ! next NG
622
623
624C----------------------
625 CALL my_barrier
626C----------------------
627 END DO !next NM
628
629C-----------------------------------------------
630 RETURN
631 END
subroutine a22conv3(phi, iflg, itrimat, nvar, itask, elbuf_tab, ixs, iparg)
Definition a22conv3.F:41
subroutine a4conv3(vtot, phi, flux, flu1, ale_connect, ioff)
Definition a4conv3.F:32
subroutine aconv2(vtot, phi, flux, flu1, ale_connect, qmv, iflg, ixq, x, ioff)
Definition aconv2.F:32
subroutine aconv3(vtot, phi, flux, flu1, ixs, ale_connect, ioff, qmv, iflg, tag22, nvar, itask)
Definition aconv3.F:38
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)
Definition aconve.F:55
subroutine bconv2(vtot, phi, flux, flu1, ale_connect, bhole, nm)
Definition bconv2.F:32
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
type(alefvm_param_), target alefvm_param
Definition alefvm_mod.F:121
type(brick_entity), dimension(:,:), allocatable, target brick_list
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
subroutine varcondec(icodv, varconv, codtot)
Definition varcondec.F:33