34 . ELBUF_TAB , IFUNC , IPARG , GEO , IXT ,
35 . IXP , IXR , PM , ANIM ,
36 . ONED_TENSOR , ID_ELEM , ITY_ELEM , INFO1 , INFO2 ,
37 . IS_WRITTEN_ONED, IPARTT , IPARTP , IPARTR, H3D_PART,
38 . KEYWORD , X , D , IPT_INPUT)
47#include "implicit_f.inc"
60 . pm(npropm,*), geo(npropg,*),
61 . anim(*),oned_tensor(6,*),x(3,*),d(3,*)
62 INTEGER IPARG(NPARG,*),
63 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IFUNC,
65 . is_written_oned(*),id_elem(*),ity_elem(*),
66 . ipartt(*) ,ipartp(*),ipartr(*),h3d_part(*)
67 INTEGER BUF,INFO1,,IPT_INPUT
69 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
70 CHARACTER(NCHARLINE100)::KEYWORD
77 . off, p, vonm2, vonm, s1, s2, s12, s3, value(3),
78 . a1,b1,b2,b3,yeq,f1,m1,m2,m3, xm,
79 .
for,
area, feq, eplas, rho0, a0, xx1, yy1, zz1, al0
80 INTEGER I, II, NG, NEL, NFT, IAD, ITY, LFT, NPT, ISS, ISC,
81 . IADD, N, J, LLT, MLW, NB1, NB2, NB3, NB4, NB5,
82 . NB6, NB7, NB8, NB9, NB10, NB11, NB12, NB13, NB14, NB15,
83 . NB16, LLL,NUVAR,IGTYP,
84 . ISTRAIN,NN, K1, K2,JTURB,MT,JALE, IMID, IALEL,IPID,
85 . nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nf,
86 . offset,k,inc,kk,ihbe,isrot,ilayer,ir,is,jj(6),iok_part(mvsiz),
87 . is_written_tensor(mvsiz),n1, n2, ipt
90 TYPE(G_BUFEL_) ,
POINTER :: GBUF
91 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
92 TYPE(L_BUFEL_),
POINTER :: LBUF
111 gbuf => elbuf_tab(ng)%GBUF
120 evar(1:6,1:nel) = zero
121 is_written_tensor(1:nel) = 0
123 IF (ity == 4) offset = 0
124 IF (ity == 5) offset = numelt
125 IF (ity == 6) offset = numelt+numelp
129 id_elem(offset+nft+i) = ixt(nixt,nft+i)
130 ity_elem(offset+nft+i) = 4
131 IF( h3d_part(ipartt(nft+i)) == 1) iok_part(i) = 1
132 ELSEIF (ity == 5)
THEN
133 id_elem(offset+nft+i) = ixp(nixp,nft+i)
134 ity_elem(offset+nft+i) = 5
135 IF( h3d_part(ipartp(nft+i)) == 1) iok_part(i) = 1
136 ELSEIF (ity == 6)
THEN
137 id_elem(offset+nft+i) = ixr(nixr,nft+i)
138 ity_elem(offset+nft+i) = 6
139 IF( h3d_part(ipartr(nft+i)) == 1) iok_part(i) = 1
145 IF(ity==4 .OR. ity==5 .OR. ity==6)
THEN
147 oned_tensor(1:6,offset+nft+i) = zero
155 IF (keyword ==
'TEST')
THEN
164 is_written_tensor(i) = 1
175 ELSEIF (keyword ==
'TENS/STRESS'THEN
181 is_written_tensor(i) = 1
184 ELSEIF (keyword ==
'TENS/STRAIN')
THEN
188 is_written_tensor(i) = 1
196 IF (keyword ==
'TENS/STRESS')
THEN
202 evar(1,i) = gbuf%FOR(jj(1)+i) / geo(1,ixp(5,n)
203 evar(4,i) = gbuf%FOR(jj(2)+i) / geo(1,ixp(5,n))
204 evar(6,i) = gbuf%FOR(jj(3)+i) / geo(1,ixp(5,n))
205 is_written_tensor(i) = 1
208 ELSEIF(ipt > 0 .AND. ipt <= npt)
THEN
210 bufly => elbuf_tab(ng)%BUFLY(ilayer)
211 IF (bufly%L_SIG > 0)
THEN
212 lbuf => bufly%LBUF(1,1,ipt)
214 evar(1,i) = lbuf%SIG(jj(1)+i)
215 evar(4,i) = lbuf%SIG(jj(2)+i)
216 evar(6,i) = lbuf%SIG(jj(3)+i)
217 is_written_tensor(i) = 1
222 ELSEIF (keyword ==
'TENS/STRAIN')
THEN
225 IF(ipt < 0 .AND. npt > 0)
THEN
227 bufly => elbuf_tab(ng)%BUFLY(ilayer)
228 IF (bufly%L_STRA > 0)
THEN
230 lbuf => bufly%LBUF(1,1,ipt)
232 evar(1,i) =evar(1,i)+ lbuf%STRA(jj(1)+i)/npt
233 evar(4,i) =evar(4,i)+ lbuf%STRA(jj(2)+i)/npt
234 evar(6,i) =evar(6,i)+ lbuf%STRA(jj(3)+i)/npt
235 is_written_tensor(i) = 1
240 ELSEIF(ipt > 0 .AND. ipt <= npt)
THEN
242 bufly => elbuf_tab(ng)%BUFLY(ilayer)
243 lbuf => bufly%LBUF(1,1,ipt)
244 IF (bufly%L_STRA > 0)
THEN
246 evar(1,i) = lbuf%STRA
247 evar(4,i) = lbuf%STRA(jj(2)+i)
248 evar(6,i) = lbuf%STRA(jj(3)+i)
249 is_written_tensor(i) = 1
254 ELSEIF (keyword ==
'TENS/STRAIN/MAX')
THEN
258 bufly => elbuf_tab(ng)%BUFLY(ilayer)
259 lbuf => bufly%LBUF(1,1,ipt)
260 IF (bufly%L_STRA > 0)
THEN
262 evar(1,i) =
max(evar(1,i), abs(lbuf%STRA(jj(1)+i)))
263 evar(4,i) =
max(evar(4,i), abs(lbuf%STRA(jj(2)+i)))
264 evar(6,i) =
max(evar(6,i), abs(lbuf%STRA(jj(3)+i)))
265 is_written_tensor(i) = 1
270 ELSEIF (keyword ==
'TENS/STRAIN/TMAX')
THEN
273 evar(1,i) =gbuf%MAXEPS(jj(1)+i)
274 evar(4,i) =gbuf%MAXEPS(jj(2)+i)
275 evar(6,i) =gbuf%MAXEPS(jj(3)+i)
276 is_written_tensor(i) = 1
293 IF (keyword ==
'TEST')
THEN
302 is_written_tensor(i) = 1
315 IF(ity==4 .OR. ity==5 .OR. ity==6)
THEN
317 . evar,is_written_tensor)
subroutine genh3d(timers, 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, anin, 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, 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_connect, 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, sh4tree, sh3tree, h3d_data, multi_fvm, subset, pskids, tag_skins6, tf, npf, fcont_max, mds_matid, fncontp2, ftcontp2, ibcl, iloadp, lloadp, fac, sensors, tagncont, loadp_hyd_inter, xframe, forc, ar, csefric, csefricg, csefric_stamp, csefricg_stamp, table, iframe, loads, drape_sh4n, drape_sh3n, drapeg, x_c, glob_therm, pblast)