41 . ELBUF_TAB ,SHELL_VECTOR,IFUNC ,IPARG ,GEO ,
42 . IXQ ,IXC ,IXTG ,PM ,
44 . NBF_L ,EHOUR ,ANIM ,NBPART ,IADG ,
45 . IPM ,IGEO ,THKE ,ERR_THK_SH4 ,ERR_THK_SH3,
47 . NV46 ,NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS,
48 . STACK ,ID_ELEM ,ITY_ELEM ,INFO1 ,INFO2 ,
49 . IS_WRITTEN_SHELL,IPARTC,IPARTTG ,LAYER_INPUT ,IPT_INPUT ,
50 . PLY_INPUT ,GAUSS_INPUT,IUVAR_INPUT,H3D_PART ,KEYWORD ,
62 use element_mod ,
only : nixq,nixc,nixtg
66#include "implicit_f.inc"
70#include "vect01_c.inc"
79 . shell_vector(3,*),x(3,numnod),v(3,numnod),w(3,numnod),d(3,numnod),thke(*),ehour(*),geo(npropg,numgeo),
80 . anim(*),pm(npropm,nummat),err_thk_sh4(*), err_thk_sh3(*)
81 INTEGER IPARG(NPARG,NGROUP),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),EL2FA(*),
82 . IXQ(NIXQ,NUMELQ),IFUNC,NBF,
83 . IADP(*),NBF_L, NBPART,IADG(NSPMD,*),IPM(NPROPMI,NUMMAT),
84 . IGEO(NPROPGI,NUMGEO),INVERT(*), NV46,ID_ELEM(*),ITY_ELEM(*),
85 . INFO1,INFO2,IS_WRITTEN_SHELL(*),IPARTC(*),IPARTTG(*),H3D_PART(*),
86 . LAYER_INPUT ,IPT_INPUT,GAUSS_INPUT,PLY_INPUT,IUVAR_INPUT,NG
87 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
88 TYPE (STACK_PLY) :: STACK
89 CHARACTER(LEN=NCHARLINE100)::KEYWORD
90 TYPE (MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
95 INTEGER I, NEL, NPTR, NPTS, NPTT, NLAY, ILAY, MLW, JTURB,
96 . OFFSET,IHBE,NPG,MPT,IPT,NERCVOIS(*),NESDVOIS(*),LERCVOIS(*),LESDVOIS(*)
98 . iok_part(mvsiz),jj(5),iuvar,
99 . is_written_value(mvsiz)
101 TYPE(g_bufel_) ,
POINTER :: GBUF
108 3 npt ,jale ,ismstr ,jeul ,jturb ,
109 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
110 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
111 6 irep ,iint ,igtyp ,israt ,isrot ,
112 7 icsen ,isorth ,isorthg ,ifailure,jsms )
118 isubstack = iparg(71,ng)
127 is_written_value(i) = 0
132 IF (ity == 3.OR.ity == 7)
THEN
134 gbuf => elbuf_tab(ng)%GBUF
141 nptr = elbuf_tab(ng)%NPTR
142 npts = elbuf_tab(ng)%NPTS
143 nptt = elbuf_tab(ng)%NPTT
144 nlay = elbuf_tab(ng)%NLAY
147 IF (ity == 3) offset = 0
148 IF (ity == 7) offset = numelc
152 id_elem(offset+nft+i) = ixc(nixc,nft+i)
153 ity_elem(offset+nft+i) = 3
154 IF( h3d_part(ipartc(nft+i)) == 1) iok_part(i) = 1
155 ELSEIF (ity == 7)
THEN
156 id_elem(offset+nft+i) = ixtg(nixtg,nft+i)
157 ity_elem(offset+nft+i) = 7
158 IF( h3d_part(iparttg(nft+i)) == 1) iok_part(i) = 1
162 IF (igtyp == 51 .OR. igtyp == 52)
THEN
165 npt_all = npt_all + elbuf_tab(ng)%BUFLY(ipt)%NPTT
167 IF (nlay == 1) mpt =
max(1,npt_all)
175 IF (ilay == -2) ilay = 1
176 IF (ilay == -3) ilay = nlay
177 IF (ipt == -2) ipt = 1
178 IF (ipt == -3) ipt = npt
182 shell_vector(1:3,offset+nft+i) = zero
186 IF (keyword ==
'VECT/VEL')
THEN
190 value(1) = multi_fvm%VEL(1, i + nft)
192 value(3) = multi_fvm%VEL(3, i + nft)
199 value(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
200 value(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO
201 value(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
207 ELSEIF (keyword ==
'VECT/ACC')
THEN
209 IF (mlw == 151 .AND.
ALLOCATED(multi_fvm%ACC))
THEN
211 value(1) = multi_fvm%ACC(1, i + nft)
212 value(2) = multi_fvm%ACC(2, i + nft)
213 value(3) = multi_fvm%ACC(3, i + nft)
subroutine h3d_shell_vector_1(elbuf_tab, shell_vector, ifunc, iparg, geo, ixq, ixc, ixtg, pm, el2fa, nbf, iadp, nbf_l, ehour, anim, nbpart, iadg, ipm, igeo, thke, err_thk_sh4, err_thk_sh3, invert, x, v, w, nv46, nercvois, nesdvois, lercvois, lesdvois, stack, id_elem, ity_elem, info1, info2, is_written_shell, ipartc, iparttg, layer_input, ipt_input, ply_input, gauss_input, iuvar_input, h3d_part, keyword, d, ng, multi_fvm)
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)