34 SUBROUTINE anim_nodal_p_elems(IFUNC, WA4, IPARG, ELBUF_TAB, IX , NIX , NUMEL, ITAB , NV46, IS_WRITTEN_NODE)
57#include "implicit_f.inc"
63#include "vect01_c.inc"
69 INTEGERINTENT(IN)),ITAB(NUMNOD),NIX,NV46,NUMEL
70 REAL,
INTENT(INOUT) :: WA4(*)
71 TYPE (ELBUF_STRUCT_),
INTENT(IN),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
72 INTEGER,
INTENT(INOUT) :: IS_WRITTEN_NODE()
76 INTEGER IADI, IADR, I, ITYP, NINOUT, NNO, NEL, NELv,II1, II2,
77 . IR1, IR2, J, JJ, NNO_L, NNI_L, II3, II4, JJJ, NNI,
78 . IALEL,NNOD,IPOS,IV,NGv,IDLOCv,J1,J2,IBV
79 INTEGER MLW, NG, KCVT, II(6), NBF, NBL, IB, ICELL, NIN, MCELL
80 TYPE(g_bufel_) ,
POINTER :: GBUF,GBUFv
81 my_real,
ALLOCATABLE,
DIMENSION(:) :: sum_weight
83 INTEGER,
DIMENSION(:,:),
POINTER :: pAdjBRICK
96 ALLOCATE(sum_weight(numnod))
108 IF(ityp/=1 .AND. ityp/=2)cycle
109 gbuf => elbuf_tab(ng)%GBUF
110 IF(gbuf%G_SIG > 0)
THEN
112 p = gbuf%SIG(nel*(1-1)+i)+gbuf%SIG(nel*(2-1)+i)+gbuf%SIG(nel*(3-1)+i)
117 is_written_node(jj)=1
118 wa4(jj)=wa4(jj)+weight*p
119 sum_weight(jj) = sum_weight(jj) + weight
147 ialel =iparg(7,ng)+iparg(11,ng)
148 gbuf => elbuf_tab(ng)%GBUF
151 IF(gbuf%G_SIG==0)cycle
153 ib = nint(gbuf%TAG22(i))
161 p = gbuf%SIG(nel*(1-1)+i)+gbuf%SIG(nel*(2-1)+i)+gbuf%SIG(nel*(3-1)+i)
166 is_written_node(jj)=1
167 wa4(jj)=wa4(jj)+ p*weight
168 sum_weight(jj) = sum_weight(jj) + weight
175 ib = nint(gbuf%TAG22(i))
180 is_written_node(jj)=1
182 IF(icell == mcell)
THEN
183 p = gbuf%SIG(nel*(1-1)+i)+gbuf%SIG(nel*(2-1)+i)+gbuf%SIG(nel*(3-1)+i)
187 padjbrick =>
brick_list(nin,ib)%Adjacent_Brick(1:6,1:5)
188 ipos =
brick_list(nin,ib)%POLY(icell)%WhereIsMain(1)
190 iv =
brick_list(nin,ib)%Adjacent_Brick(ipos,1)
191 ngv =
brick_list(nin,ib)%Adjacent_Brick(ipos,2)
192 idlocv =
brick_list(nin,ib)%Adjacent_Brick(ipos,3)
197 ibv =
brick_list(nin,ib )%Adjacent_Brick(j1,4)
199 ngv =
brick_list(nin,ibv)%Adjacent_Brick(j2,2)
200 idlocv =
brick_list(nin,ibv)%Adjacent_Brick(j2,3)
203 gbufv => elbuf_tab(ngv)%GBUF
204 p = gbufv%SIG(nelv*(1-1)+idlocv)+gbufv%SIG(nelv*(2-1)+idlocv)+gbufv%SIG(nelv*(3-1)+idlocv)
206 weight = gbufv%VOL(idlocv)
208 wa4(jj)=wa4(jj)+p*weight
209 sum_weight(jj) = sum_weight(jj) + weight
219 IF(sum_weight(i)/=zero)
THEN
220 wa4(i)=wa4(i)/sum_weight(i)
224 DEALLOCATE(sum_weight)