44 use element_mod ,
only : nixs
58#include "implicit_f.inc"
71 INTEGER IXS(NIXS,*),NV46,ITRIMAT,ITASK
73 . flux(nv46,*),vfrac(*)
74 TYPE(elbuf_struct_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
80 . vol0,av0,uav0,alphi,ualphi,aaa,ff(nv46,5),udt,phi0
81 INTEGER :: IE, MLW, IADJv, NADJv, IB, NBF, NBL, ICELL,ICELLM, MCELL, IE_M, IBM,NG,IDLOC,NADJ,IADJ
82 INTEGER :: NIN,NCELL,IBV,IFV,ICELLv, IEV
83 my_real :: volg, alph, alphv(6,5), tmpflux(nv46,5)
101 nbf = 1+itask*
nb/nthread
102 nbl = (itask+1)*
nb/nthread
129 if (kk==0)debug_outp=.false.
134 print *,
" |----ale51_antidiff3_int22.F-----|"
135 print *,
" | THREAD INFORMATION |"
136 print *,
" |--------------------------------|"
137 print *,
" NCYCLE =", ncycle
138 print *,
" ITRIMAT =", itrimat
149 DO WHILE (icell<=ncell)
151 IF (icell>ncell .AND. ncell/=0)icell=9
153 j =
brick_list(nin,ib)%POLY(icell)%WhereIsMain(1)
154 icellm =
brick_list(nin,ib)%POLY(icell)%WhereIsMain(2)
165 ibv =
brick_list(nin,ib )%Adjacent_Brick(j1,4)
166 ie_m =
brick_list(nin,ibv)%Adjacent_Brick(j2,1)
173 alph =
brick_list(nin,ibm)%POLY(icellm)%VFRACm(itrimat)
174 volg = elbuf_tab(ng)%GBUF%VOL(idloc)
186 nadj =
brick_list(nin,ib)%POLY(icell)%FACE(k)%NAdjCell
188 tmpflux(k,iadj) =
brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_UpwFLUX(iadj)
189 IF(tmpflux(k,iadj)>zero)
THEN
193 icellv =
brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(iadj)
198 IF(iev==0)print *,
"inter22 : potential material leakage, Check domain boundaries..."
199 alphv(k,iadj) = vfrac(iev)
201 alphv(k,iadj) =
brick_list(nin,ibv)%POLY(icellv)%VFRACm(itrimat)
204 ff(k,iadj)= alphv(k,iadj) * tmpflux(k,iadj)
206 alphi = alphi + ff(k,iadj)
208 phi0 = phi0 + tmpflux(k,iadj)
213 ualphi = phi0 - alphi
217 IF(alphi>av0.AND.av0>zero)
THEN
223 nadj =
brick_list(nin,ib)%POLY(icell)%FACE(k)%NAdjCell
225 IF(tmpflux(k,iadj)>zero)
THEN
226 ff(k,iadj) = ff(k,iadj) * aaa
230 ELSEIF(ualphi>uav0.AND.uav0>zero)
THEN
236 nadj =
brick_list(nin,ib)%POLY(icell)%FACE(k)%NAdjCell
238 IF(tmpflux(k,iadj)>zero)
THEN
239 ff(k,iadj) = tmpflux(k,iadj) + (ff(k,iadj)-tmpflux(k,iadj
248 nadj =
brick_list(nin,ib)%POLY(icell)%FACE(k)%NAdjCell
253 icellv =
brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_Cell(iadj)
254 IF(tmpflux(k,iadj)>zero)
THEN
255 ff(k,iadj) = half * ( ff(k,iadj)*(one-
ale%UPWIND%UPWSM)+alph*tmpflux(k,iadj)*(one+
ale%UPWIND%UPWSM) )
265 print *,
" icell =", icell
266 print *,
" FACE =", k
267 print *,
" ALPH =", alph
268 print *,
" ALPHv =", alphv(k,iadj)
269 write (*,fmt=
'(A,6E26.14)')
" WAS Flux(J) =",
brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_upwFLUX(iadj)
270 write (*,fmt=
'(A,6E26.14)')
" IS Flux(J) =", ff(k,iadj)
271 print *,
" ------------------------"
277 brick_list(nin,ib)%POLY(icell)%FACE(k)%Adjacent_UpwFLUX(iadj) = ff(k,iadj)
285 nadjv =
brick_list(nin,ibv)%POLY(icellv)%FACE(ifv)%NAdjCell
287 IF(
brick_list(nin,ibv)%POLY(icellv)%FACE(ifv)%Adjacent_Cell(iadjv)==icell
EXIT
290 debug_tmp =
brick_list(nin,ibv)%POLY(icellv)%FACE(ifv)%Adjacent_UpwFLUX(iadjv)
291 brick_list(nin,ibv)%POLY(icellv)%FACE(ifv)%Adjacent_UpwFLUX(iadjv) = -ff(k,iadj)
294 debug_tmp = flux(ifv,iev)
295 flux(ifv,iev) = -ff(k,iadj)
301 print *,
" => Setting adjacent flux consequently :"
302 print *,
" brique.V =", ixs(11,iev)
303 print *,
" icell.V =", icellv
304 print *,
" FACE.V =", ifv
305 write (*,fmt=
'(A,6E26.14)')
307 write (*,fmt=
'(A,6E26.14)')
308 .
" IS Flux(J) =", -ff(k,iadj)