40 . ELBUF_TAB ,SHELL_VECTOR,IFUNC ,IPARG ,GEO ,
41 . IXQ ,IXC ,IXTG ,PM ,
43 . NBF_L ,EHOUR ,ANIM ,NBPART ,IADG ,
44 . IPM ,IGEO ,THKE ,ERR_THK_SH4 ,ERR_THK_SH3,
46 . NV46 ,NERCVOIS ,NESDVOIS ,LERCVOIS ,LESDVOIS,
47 . STACK ,ID_ELEM ,ITY_ELEM ,INFO1 ,INFO2 ,
48 . IS_WRITTEN_SHELL,IPARTC,IPARTTG ,LAYER_INPUT ,IPT_INPUT ,
49 . PLY_INPUT ,GAUSS_INPUT,IUVAR_INPUT,H3D_PART ,KEYWORD ,
64#include "implicit_f.inc"
68#include "vect01_c.inc"
77 . shell_vector(3,*),x(3,numnod),v(3,numnod),w(3,numnod),d(3,numnod),thke(*),ehour(*),geo(npropg,numgeo),
78 . anim(*),pm(npropm,nummat),err_thk_sh4(*), err_thk_sh3(*)
79 INTEGER IPARG(NPARG,NGROUP),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),EL2FA(*),
80 . IXQ(NIXQ,NUMELQ),IFUNC,NBF,
81 . IADP(*),NBF_L, NBPART,IADG(NSPMD,*),IPM(NPROPMI,NUMMAT),
82 . IGEO(NPROPGI,NUMGEO),INVERT(*), NV46,ID_ELEM(*),ITY_ELEM(*),
83 . INFO1,INFO2,IS_WRITTEN_SHELL(*),IPARTC(*),IPARTTG(*),H3D_PART(*),
84 . LAYER_INPUT ,IPT_INPUT,GAUSS_INPUT,PLY_INPUT,IUVAR_INPUT,NG
85 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
86 TYPE (STACK_PLY) :: STACK
87 CHARACTER(LEN=NCHARLINE100)::KEYWORD
88 TYPE (MULTI_FVM_STRUCT),
INTENT(IN) :: MULTI_FVM
93 INTEGER I,NEL,NPTR,NPTS,NPTT,NLAY,ILAY,MLW,JTURB,NVARF,
94 . OFFSET,IHBE,NPG,MPT,IPT,ISUBSTACK,ITHK,NERCVOIS(*),NESDVOIS(*),LERCVOIS(*),LESDVOIS(*)
96 . iok_part(mvsiz),jj(5),iuvar,
97 . is_written_value(mvsiz)
99 TYPE(g_bufel_) ,
POINTER :: GBUF
100 TYPE(L_BUFEL_) ,
POINTER :: LBUF
101 my_real,
DIMENSION(:),
POINTER :: UVAR
105 2 mlw ,nel ,nft ,iad ,ity ,
106 3 npt ,jale ,ismstr ,jeul ,jturb ,
107 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
108 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
109 6 irep ,iint ,igtyp ,israt ,isrot ,
110 7 icsen ,isorth ,isorthg ,ifailure,jsms )
116 isubstack = iparg(71,ng)
125 is_written_value(i) = 0
130 IF (ity == 3.OR.ity == 7)
THEN
132 gbuf => elbuf_tab(ng)%GBUF
139 nptr = elbuf_tab(ng)%NPTR
140 npts = elbuf_tab(ng)%NPTS
141 nptt = elbuf_tab(ng)%NPTT
142 nlay = elbuf_tab(ng)%NLAY
145 IF (ity == 3) offset = 0
146 IF (ity == 7) offset = numelc
150 id_elem(offset+nft+i) = ixc(nixc,nft+i)
151 ity_elem(offset+nft+i) = 3
152 IF( h3d_part(ipartc(nft+i)) == 1) iok_part(i) = 1
153 ELSEIF (ity == 7)
THEN
154 id_elem(offset+nft+i) = ixtg(nixtg,nft+i)
155 ity_elem(offset+nft+i) = 7
156 IF( h3d_part(iparttg(nft+i)) == 1) iok_part(i) = 1
160 IF (igtyp == 51 .OR. igtyp == 52)
THEN
163 npt_all = npt_all + elbuf_tab(ng)%BUFLY(ipt)%NPTT
165 IF (nlay == 1) mpt =
max(1,npt_all)
173 IF (ilay == -2) ilay = 1
174 IF (ilay == -3) ilay = nlay
175 IF (ipt == -2) ipt = 1
176 IF (ipt == -3) ipt = npt
180 shell_vector(1:3,offset+nft+i) = zero
184 IF (keyword ==
'VECT/VEL')
THEN
188 value(1) = multi_fvm%VEL(1, i + nft)
189 value(2) = multi_fvm%VEL(2, i + nft)
190 value(3) = multi_fvm%VEL(3, i + nft)
197 value(1) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
198 value(2) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
199 value(3) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
200 CALL h3d_write_vector(iok_part,is_written_shell,shell_vector,i,offset,nft,
VALUE)
205 ELSEIF (keyword ==
'VECT/ACC')
THEN
207 IF (mlw == 151 .AND.
ALLOCATED(multi_fvm%ACC))
THEN
209 value(1) = multi_fvm%ACC(1, i + nft)
210 value(2) = multi_fvm%ACC(2, i + nft
211 value(3) = multi_fvm%ACC(3, i + nft)
212 CALL h3d_write_vector(iok_part,is_written_shell,shell_vector,i,offset,nft,
VALUE)
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)