35 . ELBUF_TAB , IFUNC , IPARG , GEO , IXT ,
36 . IXP , IXR , PM , ANIM ,
37 . ONED_TENSOR , ID_ELEM , ITY_ELEM , INFO1 , INFO2 ,
38 . IS_WRITTEN_ONED, IPARTT , IPARTP , IPARTR, H3D_PART,
39 . KEYWORD , X , D , IPT_INPUT)
45 use element_mod ,
only : nixt,nixr,nixp
49#include "implicit_f.inc"
62 . pm(npropm,*), geo(npropg,*),
63 . anim(*),oned_tensor(6,*),x(3,*),d(3,*)
64 INTEGER IPARG(NPARG,*),
65 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),IFUNC,
67 . is_written_oned(*),id_elem(*),ity_elem(*),
68 . ipartt(*) ,ipartp(*),ipartr(*),h3d_part(*)
69 INTEGER INFO1, INFO2, IPT_INPUT
71 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
72 CHARACTER(NCHARLINE100)::KEYWORD
79 . off, p, vonm2, vonm, s1, s2, s12, s3, value(3),
81 .
for,
area, feq, eplas, rho0, a0, xx1, yy1, zz1, al0
82 INTEGER I, NG, NEL, NFT, ITY, NPT,
83 . IADD, N, J, LLT, MLW, NB1, NB2, NB3, NB4, NB5,
84 . NB6, NB7, NB8, NB9, NB10, NB11, NB12, NB13, NB14, NB15,
85 . NB16, LLL,NUVAR,IGTYP,
86 . ISTRAIN,NN, K1, K2,JTURB,MT,JALE, IMID, IALEL,IPID,
87 . nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nf,
88 . offset,k,inc,kk,ihbe,isrot,ilayer,ir,is,jj(6),iok_part(mvsiz),
89 . is_written_tensor(mvsiz),n1, n2, ipt
92 TYPE(g_bufel_) ,
POINTER :: GBUF
93 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
94 TYPE(L_BUFEL_),
POINTER :: LBUF
113 gbuf => elbuf_tab(ng)%GBUF
122 evar(1:6,1:nel) = zero
123 is_written_tensor(1:nel) = 0
125 IF (ity == 4) offset = 0
126 IF (ity == 5) offset = numelt
127 IF (ity == 6) offset = numelt+numelp
131 id_elem(offset+nft+i) = ixt(nixt,nft+i)
132 ity_elem(offset+nft+i) = 4
133 IF( h3d_part(ipartt(nft+i)) == 1) iok_part(i) = 1
134 ELSEIF (ity == 5)
THEN
135 id_elem(offset+nft+i) = ixp(nixp,nft+i)
136 ity_elem(offset+nft+i) = 5
137 IF( h3d_part(ipartp(nft+i)) == 1) iok_part(i) = 1
138 ELSEIF (ity == 6)
THEN
139 id_elem(offset+nft+i) = ixr(nixr,nft+i)
140 ity_elem(offset+nft+i) = 6
141 IF( h3d_part(ipartr(nft+i)) == 1) iok_part(i) = 1
147 IF(ity==4 .OR. ity==5 .OR. ity==6)
THEN
149 oned_tensor(1:6,offset+nft+i) = zero
157 IF (keyword ==
'TEST')
THEN
166 is_written_tensor(i) = 1
177 ELSEIF (keyword ==
'TENS/STRESS')
THEN
183 is_written_tensor(i) = 1
186 ELSEIF (keyword ==
'TENS/STRAIN')
THEN
189 evar(1,i) = gbuf%STRA(i)
190 is_written_tensor(i) = 1
198 IF (keyword ==
'TENS/STRESS')
THEN
204 evar(1,i) = gbuf%FOR(jj(1)+i) / geo(1,ixp(5,n))
205 evar(4,i) = gbuf%FOR(jj(2)+i) / geo(1,ixp(5,n))
206 evar(6,i) = gbuf%FOR(jj(3)+i) / geo(1,ixp(5,n))
207 is_written_tensor(i) = 1
210 ELSEIF(ipt > 0 .AND. ipt <= npt)
THEN
212 bufly => elbuf_tab(ng)%BUFLY(ilayer)
213 IF (bufly%L_SIG > 0)
THEN
214 lbuf => bufly%LBUF(1,1,ipt)
216 evar(1,i) = lbuf%SIG(jj(1)+i)
217 evar(4,i) = lbuf%SIG(jj(2)+i)
218 evar(6,i) = lbuf%SIG(jj(3)+i)
219 is_written_tensor(i) = 1
224 ELSEIF (keyword ==
'TENS/STRAIN')
THEN
227 IF(ipt < 0 .AND. npt > 0)
THEN
229 bufly => elbuf_tab(ng)%BUFLY(ilayer)
230 IF (bufly%L_STRA > 0)
THEN
232 lbuf => bufly%LBUF(1,1,ipt)
234 evar(1,i) =evar(1,i)+ lbuf%STRA(jj(1)+i)/npt
235 evar(4,i) =evar(4,i)+ lbuf%STRA(jj(2)+i)/npt
236 evar(6,i) =evar(6,i)+ lbuf%STRA(jj(3)+i)/npt
237 is_written_tensor(i) = 1
242 ELSEIF(ipt > 0 .AND. ipt <= npt)
THEN
244 bufly => elbuf_tab(ng)%BUFLY(ilayer)
245 lbuf => bufly%LBUF(1,1,ipt)
246 IF (bufly%L_STRA > 0)
THEN
248 evar(1,i) = lbuf%STRA(jj(1)+i)
249 evar(4,i) = lbuf%STRA(jj(2)+i)
250 evar(6,i) = lbuf%STRA(jj(3)+i)
251 is_written_tensor(i) = 1
256 ELSEIF (keyword ==
'TENS/STRAIN/MAX')
THEN
260 bufly => elbuf_tab(ng)%BUFLY(ilayer)
261 lbuf => bufly%LBUF(1,1,ipt)
262 IF (bufly%L_STRA > 0)
THEN
264 evar(1,i) =
max(evar(1,i), abs(lbuf%STRA(jj(1)+i)))
265 evar(4,i) =
max(evar(4,i), abs(lbuf%STRA(jj(2)+i)))
266 evar(6,i) =
max(evar(6,i), abs(lbuf%STRA(jj(3)+i)))
267 is_written_tensor(i) = 1
272 ELSEIF (keyword ==
'TENS/STRAIN/TMAX')
THEN
275 evar(1,i) =gbuf%MAXEPS(jj(1)+i)
276 evar(4,i) =gbuf%MAXEPS(jj(2)+i)
277 evar(6,i) =gbuf%MAXEPS(jj(3)+i)
278 is_written_tensor(i) = 1
295 IF (keyword ==
'TEST')
THEN
304 is_written_tensor(i) = 1
317 IF(ity==4 .OR. ity==5 .OR. ity==6)
THEN
319 . evar,is_written_tensor)