39 SUBROUTINE nodalt(IFUNC , WA4 , WA4_FVM, IFLOW , RFLOW,
40 . IPARG , ELBUF_TAB, IX , NIX , NUMEL,
41 . ITAB , NV46 , MONVOL , VOLMON , AIRBAGS_TOTAL_FVM_IN_H3D,
42 . IS_WRITTEN_NODE,IS_WRITTEN_NODE_FVM, ISPMD, FVDATA_P,
43 . SWA4 , AIRBAGS_NODE_ID_SHIFT)
68#include "implicit_f.inc"
74#include "vect01_c.inc"
77#include "tabsiz_c.inc"
81 INTEGER,
INTENT(IN) :: NUMEL, IFUNC, NIX, NV46,ITAB(), ISPMD, SWA4, AIRBAGS_NODE_ID_SHIFT
82 INTEGER,
INTENT(IN) :: IFLOW(*),IPARG(NPARG,NGROUP),IX(NIX,NUMEL)
83 my_real,
INTENT(IN) :: RFLOW(*)
84 INTEGER,
INTENT(IN) :: AIRBAGS_TOTAL_FVM_IN_H3D
85 REAL,
INTENT(INOUT) :: WA4(SWA4),WA4_FVM(AIRBAGS_TOTAL_FVM_IN_H3D)
86 TYPE (ELBUF_STRUCT_),
INTENT(IN),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
87 INTEGER,
INTENT(IN) :: MONVOL(SMONVOL)
88 my_real,
INTENT(IN) :: volmon(svolmon)
89 INTEGER,
INTENT(INOUT) :: IS_WRITTEN_NODE_FVM(AIRBAGS_TOTAL_FVM_IN_H3D),IS_WRITTEN_NODE(NUMNOD)
90 TYPE(
fvbag_data),
INTENT(IN) :: FVDATA_P(NFVBAG)
94 INTEGER I, ITYP, NEL, NELv,
96 . IALEL,NNOD,IPOS,IV,NGv,IDLOCv,J1,J2,IBV
97 INTEGER NG, NBF, NBL, IB, ICELL, NIN, MCELL
98 TYPE(g_bufel_) ,
POINTER :: GBUF,GBUFv
99 my_real,
ALLOCATABLE,
DIMENSION(:) :: COUNT_VOL
101 INTEGER,
DIMENSION(:,:),
POINTER :: pAdjBRICK
115 ALLOCATE(count_vol(numnod))
121 ialel =iparg(7,ng)+iparg(11,ng)
122 IF(ityp/=1 .AND. ityp/=2)cycle
125 g_vol=elbuf_tab(ng)%GBUF%G_VOL
126 g_temp = elbuf_tab(ng)%GBUF%G_TEMP
128 IF (g_vol > 0 .AND. g_temp > 0)
THEN
138 count_vol(jj) = count_vol(jj) + v
139 is_written_node(jj)=1
145 IF(count_vol(i)/=zero)
THEN
146 wa4(i)=wa4(i)/count_vol(i)
149 DEALLOCATE(count_vol)
163 ALLOCATE(count_vol(numnod))
173 ialel =iparg(7,ng)+iparg(11,ng)
174 IF(ityp/=1 .AND. ityp/=2)cycle
176 gbuf => elbuf_tab(ng)%GBUF
178 ib = nint(gbuf%TAG22(i))
192 is_written_node(jj)=1
199 ib = nint(gbuf%TAG22(i))
204 is_written_node(jj)=1
206 IF(icell == mcell)
THEN
210 padjbrick =>
brick_list(nin,ib)%Adjacent_Brick(1:6,1:5)
211 ipos =
brick_list(nin,ib)%POLY(icell)%WhereIsMain(1)
213 iv =
brick_list(nin,ib)%Adjacent_Brick(ipos,1)
214 ngv =
brick_list(nin,ib)%Adjacent_Brick(ipos,2)
215 idlocv =
brick_list(nin,ib)%Adjacent_Brick(ipos,3)
220 ibv =
brick_list(nin,ib )%Adjacent_Brick(j1,4)
222 ngv =
brick_list(nin,ibv)%Adjacent_Brick(j2,2)
223 idlocv =
brick_list(nin,ibv)%Adjacent_Brick(j2,3)
226 gbufv => elbuf_tab(ngv)%GBUF
227 t = gbufv%TEMP(idlocv)
228 v = gbufv%VOL(idlocv)
231 count_vol(jj) = count_vol(jj) + v
238 IF(count_vol(i)/=zero)
THEN
239 wa4(i)=wa4(i)/count_vol(i)
242 DEALLOCATE(count_vol)
249 IF(nfvbag > 0 .AND. ispmd == 0 .AND. airbags_total_fvm_in_h3d > 0)
THEN
251 . nfvbag, smonvol, svolmon, airbags_total_fvm_in_h3d, is_written_node_fvm,
252 . airbags_node_id_shift)
subroutine genani(x, d, v, a, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, swaft, smas, sxnorm, siad, iparg, pm, geo, ms, sinvert, cont, smater, icut, skew, xcut, fint, itab, sel2fa, fext, fopt, lpby, npby, nstrf, rwbuf, nprw, tani, elbuf_tab, mat_param, dd_iad, weight, eani, ipart, cluster, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartur, iparttg, rby, swa4, tors, nom_opt, igrsurf, bufsf, idata, rdata, siadg, bufmat, bufgeo, kxx, ixx, ipartx, suix, sxusr, snfacptx, sixedge, sixfacet, sixsolid, snumx1, snumx2, snumx3, soffx1, soffx2, soffx3, smass1, smass2, smass3, sfunc1, sfunc2, sfunc3, kxsp, ixsp, nod2sp, ipartsp, spbuf, ixs10, ixs20, ixs16, vr, monvol, volmon, ipm, igeo, nodglob, iad_elem, fr_elem, fr_sec, fr_rby2, iad_rby2, fr_wall, iflow, rflow, fncont, ftcont, temp, thke, err_thk_sh4, err_thk_sh3, diag_sms, ipari, fncont2, dr, ale_connectivity, irbe2, irbe3, lrbe2, lrbe3, fr_rbe2, fr_rbe3m, iad_rbe2, dxancg, nod_pxfem, iel_pxfem, zi_ply, vgaz, fcontg, fncontg, ftcontg, fanreac, inod_crk, iel_crk, elcutc, iadc_crk, pdama2, res_sms, weight_md, nodglobxfe, nodedge, fcluster, mcluster, xfem_tab, w, nv46, ipartig3d, kxig3d, ixig3d, sig3dsolid, knot, wige, nercvois, nesdvois, lercvois, lesdvois, crkedge, indx_crk, xedge4n, xedge3n, stack, sph2sol, stifn, stifr, igrnod, h3d_data, subset, multi_fvm, knotlocpc, knotlocel, fcont_max, fncontp2, ftcontp2, glob_therm, drape_sh4n, drape_sh3n, drapeg, output)