38 . ITRIMAT , NVAR , ITASK,
39 . ELBUF_TAB , IXS , IPARG)
66 USE multimat_param_mod ,
ONLY
70#include "implicit_f.inc"
75 INTEGER IFLG,ITASK,NVAR, IXS(NIXS,*),IPARG(NPARG,*)
77 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
90 INTEGER IE, IV,J,ITRIMAT,NIN,NBF,NBL,IB,IADJ,NG,IDLOC,IBV,JV,ICELL,ICELLv,NCELL,NUM, MCELL,MLW, NADJ, LLT_
91 my_real VALVOIS,VALEL,VL, dPHI
92 TYPE(L_BUFEL_) ,
POINTER :: LBUF
93 TYPE() ,
POINTER :: MBUF
94 my_real,
DIMENSION(:),
POINTER :: var, prho , peint
95 INTEGER :: ADD, ADD0 ,K
96 INTEGER,
DIMENSION(:,:),
POINTER :: pAdjBRICK
97 my_real,
target :: nothing(2)
98 integer,
target :: inothing(2,2)
107 nbf = 1+itask*
nb/nthread
108 nbl = (itask+1)*
nb/nthread
115 padjbrick => inothing
140 if(((itrimat>0) .and. (
ibug22_itrimat/=trimat)))debug_outp=.false.
156 IF(itrimat/=0 .AND. mlw/=51)cycle
157 DO WHILE (icell<=ncell)
159 IF (icell>ncell .AND. ncell/=0)icell=9
161 padjbrick =>
brick_list(nin,ib)%Adjacent_Brick(1:6,1:5)
163 nadj =
brick_list(nin,ib)%POLY(icell)%FACE(j)%NAdjCell
168 icellv =
brick_list(nin,ib)%POLY(icell)%FACE(j)%Adjacent_Cell(iadj)
174 valvois =
brick_list(nin,ibv)%POLY(icellv)%PHI
181! dphi = dphi + (valvois *
brick_list(nin,ib)%upwFLUX(j,icell))
182 dphi = dphi + (valvois *
brick_list(nin,ib)%POLY(icell)%FACE(j)%Adjacent_upwFLUX(iadj))
186 dphi = dphi + valel*
brick_list(nin,ib)%POLY(icell)%Adjacent_FLU1
187 dphi = -half * dt1 * dphi
208 IF(itrimat/=0 .AND. mlw/=51)cycle
211 icellv =
brick_list(nin,ib)%SecndList%ICELLv(k)
212 dphi = dphi +
brick_list(nin,ibv)%POLY(icellv)%dPHI
214 dphi = dphi +
brick_list(nin,ib)%POLY(mcell)%dPHI
229 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
230 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
233 IF(itrimat/=0 .AND. mlw/=51)cycle
239 IF(itrimat==0 .OR. mlw/=51)
THEN
240 prho => lbuf%RHO(1:llt_)
243 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
246 prho => mbuf%VAR(k+1:k+llt_)
252 ELSEIF (nvar == 2)
THEN
253 IF(itrimat==0 .OR. mlw/=51)
THEN
254 peint=> lbuf%EINT(1:llt_)
257 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
260 peint => mbuf%VAR(k+1:k+llt_)
266 ELSEIF (nvar == 3)
THEN
267 var => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%RK(1:llt_
271 ELSEIF (nvar == 4)
THEN
272 var => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)%RE(1:llt_)
276 ELSEIF (nvar == 5)
THEN
277 var => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR(1:llt_)
281 ELSEIF (nvar == 6)
THEN
283 var => elbuf_tab(ng)%GBUF%MOM( 1 : llt_ )
288 ELSEIF (nvar == 7)
THEN
290 var => elbuf_tab(ng)%GBUF%MOM( llt_*1+1 : llt_
295 ELSEIF (nvar == 8)
THEN
297 var => elbuf_tab(ng)%GBUF%MOM( llt_*2+1 : llt_*2+llt_ )
302 ELSEIF (nvar == 9)
THEN
308 IF(mlw/=51.AND.itrimat>0)
THEN
311 var(idloc) = var(idloc) + dphi
326 print *,
" |--------a22conv3.F--------|"
327 print *,
" | THREAD INFORMATION |"
328 print *,
" |--------------------------|"
329 print *,
" NCYCLE =", ncycle
330 print *,
" ITRIMAT =", itrimat
338 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
339 mbuf => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)
341 if(itrimat>0 .and. mlw/=51)cycle
344 prho => lbuf%RHO(1:llt_)
347 add0 = m51_n0phas + (itrimat-1)*m51_nvphas
350 prho => mbuf%VAR(k+1:k+llt_)
358 print *,
" brique=", ixs(11,ie)
359 print *,
" NVAR=", nvar
360 print *,
" dval=", dphi
361 print *,
" was:", var(idloc)-dphi
362 print *,
" is:", var(idloc)
363 print *,
" MLW:", mlw
364 print *,
" ------------------------"
375 IF(trimat>0.AND.iflg==1)
THEN