39 . ITRIMAT , NVAR , ITASK,
40 . ELBUF_TAB , IXS , IPARG)
67 USE multimat_param_mod ,
ONLY : m51_n0phas, m51_nvphas
68 use element_mod ,
only : nixs
72#include "implicit_f.inc"
77 INTEGER IFLG,ITASK,NVAR, IXS(NIXS,*),IPARG(NPARG,*)
79 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
92 INTEGER IE, IV,J,ITRIMAT,NIN,NBF,NBL,IB,IADJ,NG,IDLOC,IBV,JV,ICELL,ICELLv,NCELL,NUM, MCELL,MLW, NADJ, LLT_
93 my_real VALVOIS,VALEL,VL, dPHI
94 TYPE(L_BUFEL_) ,
POINTER :: LBUF
95 TYPE(buf_mat_) ,
POINTER :: MBUF
96 my_real,
DIMENSION(:),
POINTER :: var, prho , peint
97 INTEGER :: ADD, ADD0 ,K
98 INTEGER,
DIMENSION(:,:),
POINTER :: pAdjBRICK
99 my_real,
target :: nothing(2)
100 integer,
target :: inothing(2,2)
101 LOGICAL :: debug_outp
109 nbf = 1+itask*
nb/nthread
110 nbl = (itask+1)*
nb/nthread
117 padjbrick => inothing
142 if(((itrimat>0) .and. (
ibug22_itrimat/=trimat)))debug_outp=.false.
158 IF(itrimat/=0 .AND. mlw/=51)cycle
159 DO WHILE (icell<=ncell)
161 IF (icell>ncell .AND. ncell/=0)icell=9
170 icellv =
brick_list(nin,ib)%POLY(icell)%FACE(j)%Adjacent_Cell(iadj)
176 valvois =
brick_list(nin,ibv)%POLY(icellv)%PHI
184 dphi = dphi + (valvois *
brick_list(nin,ib)%POLY(icell)%FACE(j)%Adjacent_upwFLUX(iadj))
188 dphi = dphi + valel*
brick_list(nin,ib)%POLY(icell)%Adjacent_FLU1
189 dphi = -half * dt1 * dphi
210 IF(itrimat/=0 .AND. mlw/=51)cycle
213 icellv =
brick_list(nin,ib)%SecndList%ICELLv(k)
214 dphi = dphi +
brick_list(nin,ibv)%POLY(icellv)%dPHI
216 dphi = dphi +
brick_list(nin,ib)%POLY(mcell)%dPHI
231 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
232 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
235 IF(itrimat/=0 .AND. mlw/=51)cycle
241 IF(itrimat==0 .OR. mlw/=51)
THEN
242 prho => lbuf%RHO(1:llt_)
245 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
248 prho => mbuf%VAR(k+1:k+llt_)
254 ELSEIF (nvar == 2)
THEN
255 IF(itrimat==0 .OR. mlw/=51)
THEN
256 peint=> lbuf%EINT(1:llt_)
259 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
262 peint => mbuf%VAR(k+1:k+llt_)
268 ELSEIF (nvar == 3)
THEN
269 var => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%RK(1:llt_)
273 ELSEIF (nvar == 4)
THEN
278 ELSEIF (nvar == 5)
THEN
279 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(1:llt_)
283 ELSEIF (nvar == 6)
THEN
285 var => elbuf_tab(ng)%GBUF%MOM( 1 : llt_ )
290 ELSEIF (nvar == 7)
THEN
292 var => elbuf_tab(ng)%GBUF%MOM( llt_*1+1 : llt_*1+llt_ )
294 !----------------------------
297 ELSEIF (nvar == 8)
THEN
299 var => elbuf_tab(ng)%GBUF%MOM( llt_*2+1 : llt_*2+llt_ )
304 ELSEIF (nvar == 9)
THEN
310 IF(mlw/=51.AND.itrimat>0)
THEN
313 var(idloc) = var(idloc) + dphi
328 print *,
" |--------a22conv3.F--------|"
329 print *,
" | THREAD INFORMATION |"
330 print *,
" |--------------------------|"
331 print *,
" NCYCLE =", ncycle
332 print *,
" ITRIMAT =", itrimat
340 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
341 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
343 if(itrimat>0 .and. mlw/=51
346 prho => lbuf%RHO(1:llt_)
349 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
352 prho => mbuf%VAR(k+1:k+llt_)
360 print *,
" brique=", ixs(11,ie)
361 print *,
" NVAR=", nvar
362 print *,
" dval=", dphi
363 print *,
" was:", var(idloc)-dphi
364 print *,
" is:", var(idloc)
365 print *,
" MLW:", mlw
366 print *,
" ------------------------"
377 IF(trimat>0.AND.iflg==1)
THEN