56#include "implicit_f.inc"
69 INTEGER IXS(NIXS,*),NV46,ITRIMAT,ITASK
71 . flux(nv46,*),vfrac(*)
72 TYPE(elbuf_struct_),
TARGET,
DIMENSION(NGROUP)
78 . vol0,av0,uav0,alphi,ualphi,aaa,ff(nv46,5),udt,phi0
79 INTEGER :: IE, MLW, IADJv, NADJv, IB, NBF, NBL, ICELL,ICELLM, MCELL, IE_M, IBM,NG,IDLOC,NADJ,IADJ
80 INTEGER :: NIN,NCELL,IBV,IFV,ICELLv, IEV
81 my_real :: volg, alph, alphv(6,5), tmpflux(nv46,5)
99 nbf = 1+itask*
nb/nthread
100 nbl = (itask+1)*
nb/nthread
127 if (kk==0)debug_outp=.false.
132 print *,
" |----ale51_antidiff3_int22.F-----|"
133 print *,
" | THREAD INFORMATION |"
134 print *,
" |--------------------------------|"
135 print *,
" NCYCLE =", ncycle
136 print *,
" ITRIMAT =", itrimat
147 DO WHILE (icell<=ncell)
149 IF (icell>ncell .AND. ncell/=0)icell=9
151 j =
brick_list(nin,ib)%POLY(icell)%WhereIsMain(1)
152 icellm =
brick_list(nin,ib)%POLY(icell)%WhereIsMain(2)
163 ibv =
brick_list(nin,ib )%Adjacent_Brick(j1,4)
164 ie_m =
brick_list(nin,ibv)%Adjacent_Brick(j2,1)
165 ibm =
brick_list(nin,ibv)%Adjacent_Brick(j2,4)
171 alph =
brick_list(nin,ibm)%POLY(icellm)%VFRACm(itrimat)
172 volg = elbuf_tab(ng)%GBUF%VOL(idloc)
184 nadj =
brick_list(nin,ib)%POLY(icell)%FACE(k)%NAdjCell
186 tmpflux(k,iadj) =
brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_UpwFLUX(iadj)
187 IF(tmpflux(k,iadj)>zero)
THEN
191 icellv =
brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(iadj)
192 IF(icellv==0)
THEN !adj elem does not exist
196 IF(iev==0)print *,
"inter22 : potential material leakage, Check domain boundaries..."
197 alphv(k,iadj) = vfrac(iev)
199 alphv(k,iadj) =
brick_list(nin,ibv)%POLY(icellv)%VFRACm
202 ff(k,iadj)= alphv(k,iadj) * tmpflux(k,iadj
204 alphi = alphi + ff(k,iadj)
206 phi0 = phi0 + tmpflux(k,iadj)
211 ualphi = phi0 - alphi
215 IF(alphi>av0.AND.av0>zero)
THEN
221 nadj =
brick_list(nin,ib)%POLY(icell)%FACE(k)%NAdjCell
223 IF(tmpflux(k,iadj)>zero)
THEN
224 ff(k,iadj) = ff(k,iadj) * aaa
228 ELSEIF(ualphi>uav0.AND.uav0>zero)
THEN
234 nadj =
brick_list(nin,ib)%POLY(icell)%FACE(k)%NAdjCell
236 IF(tmpflux(k,iadj)>zero)
THEN
237 ff(k,iadj) = tmpflux(k,iadj) + (ff(k,iadj)-tmpflux(k,iadj))*aaa
251 icellv =
brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(iadj
252 IF(tmpflux(k,iadj)>zero)
THEN
253 ff(k,iadj) = half * ( ff(k,iadj)*(one-
ale%UPWIND%UPWSM)+alph*tmpflux(k,iadj)*(one+
ale%UPWIND%UPWSM) )
262 print *,
" brique =", ixs(11,ie)
263 print *,
" icell =", icell
264 print *,
" FACE =", k
265 print *,
" ALPH =", alph
266 print *,
" ALPHv =", alphv(k,iadj)
267 write (*,fmt=
'(A,6E26.14)')
" WAS Flux(J) =",
brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_upwFLUX
268 write (*,fmt=
'(A,6E26.14)')
" IS Flux(J) =", ff(k,iadj)
269 print *,
" ------------------------"
275 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_UpwFLUX(iadj) = ff(k,iadj)
283 nadjv =
brick_list(nin,ibv)%POLY(icellv)%FACE(ifv)%NAdjCell
285 IF(
brick_list(nin,ibv)%POLY(icellv)%FACE(ifv)%Adjacent_Cell(iadjv)==icell)
EXIT
289 brick_list(nin,ibv)%POLY(icellv)%FACE(ifv)%Adjacent_UpwFLUX(iadjv) = -ff(k
292 debug_tmp = flux(ifv,iev)
293 flux(ifv,iev) = -ff(k,iadj)
299 print *,
" => Setting adjacent flux consequently :"
300 print *,
" brique.V =", ixs(11,iev
301 print *,
" icell.V =", icellv
302 print *,
" FACE.V =", ifv
303 write (*,fmt=
'(A,6E26.14)')
305 write (*,fmt=
'(A,6E26.14)')