38 2 EL2FA ,TENS ,EPSDOT,IADP ,
39 3 NBPART,IADG ,X ,IXQ ,
40 4 IGEO ,IXTG ,IPM ,STACK,ID_ELEM ,INFO1,
41 5 INFO2 ,IS_WRITTEN_QUAD,IPARTQ ,IPARTTG ,LAYER_INPUT ,IPT_INPUT ,
42 6 PLY_INPUT,GAUSS_INPUT,IUVAR_INPUT,H3D_PART, KEYWORD,
43 7 IR_INPUT ,IS_INPUT ,IT_INPUT )
50 use element_mod ,
only : nixq,nixtg
54#include "implicit_f.inc"
66 INTEGER IPARG(NPARG,*),ITENS,INVERT(*),
67 . EL2FA(*),IXQ(NIXQ,*), IGEO(NPROPGI,*),
68 . NELCUT,IADP(*),NBPART,IADG(NSPMD,*),
69 . IXTG(NIXTG,*),IPM(NPROPMI,*),ID_ELEM(*),
70 . INFO1,INFO2,IS_WRITTEN_QUAD(*),IPARTQ(*),IPARTTG(*),H3D_PART(*),
71 . LAYER_INPUT ,IPT_INPUT,GAUSS_INPUT,PLY_INPUT,IUVAR_INPUT,II,
72 . ir_input,is_input,it_input
75 . tens(3,*),epsdot(6,*),x(3,*),quad_tensor(6,*)
76 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
77 TYPE (STACK_PLY) :: STACK
78 CHARACTER(LEN=NCHARLINE100) :: KEYWORD
84 . a1,a2,a3,thk,y1,y2,y3,y4,z1,z2,z3,z4,
85 . sy,sz,ty,tz,suma,r11,r12,r13,r21,r22,
86 . r23,r31,r32,r33,s1,s2,s4,t1,t2,t3,t4,ct,cs,
87 . g22,g23,g32,g33,t22,t23,t32,t33
91 . evar(6,mvsiz), gama(6,mvsiz)
93 INTEGER I, NG, NEL, NFT, ITY, LFT, NPT,
94 . n,j,llt,mlw,istrain,il,ir,is,it,nptr,npts,nlay,
95 . ipid,i1,i2,ns1,ns2,istre,
96 . nn1,nn2,nn3,nn4,nn5,nn6
97 . ihbe,irep,buf,npg,k,isrot,nuvarv,ivisc,
98 . ipmat,igtyp,matly,isubstack,iigeo,iadi,ipmat_iply,
99 . npt_all,nptt,ilay,ius,id_ply,ipang,ippos,ipthk,offset,iselect,
100 . iply,iuvar,iad,jale,jturb,jcvt,nc1,nc2,nc3,nc4,isorth
101 INTEGER IOK_PART(MVSIZ), JJ(6), IS_WRITTEN_TENSOR(MVSIZ)
104 TYPE(G_BUFEL_) ,
POINTER :: GBUF
105 TYPE(L_BUFEL_) ,
POINTER :: LBUF
107 .
DIMENSION(:),
POINTER :: uvar
116 is_written_quad(i) = 0
130 istrain = iparg(44,ng)
131 isubstack = iparg(71,ng)
132 isorth = iparg(42,ng)
138 nptr = elbuf_tab(ng)%NPTR
139 npts = elbuf_tab(ng)%NPTS
140 nptt = elbuf_tab(ng)%NPTT
145 isubstack = iparg(71,ng)
153 evar(1:6,1:nel) = zero
154 is_written_tensor(1:nel) = 0
160 gbuf => elbuf_tab(ng)%GBUF
161 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
162 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR
163 jale=(iparg(7,ng)+iparg(11,ng))
164 jturb=iparg(12,ng)*jale
167 id_elem(nft+i) = ixq(nixq,nft+i)
168 IF( h3d_part(ipartq(nft+i)) == 1) iok_part(i) = 1
172 IF (isorth == 0)
THEN
180 gama(1,i)=gbuf%GAMA(jj(1) + i)
181 gama(2,i)=gbuf%GAMA(jj(2) + i)
182 gama(3,i)=gbuf%GAMA(jj(3) + i)
183 gama(4,i)=gbuf%GAMA(jj(4) + i)
184 gama(5,i)=gbuf%GAMA(jj(5) + i)
185 gama(6,i)=gbuf%GAMA(jj(6) + i)
189 IF (keyword ==
'TENS/STRESS')
THEN
197 IF( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1 )
THEN
200 evar(1,i) = gbuf%SIG(jj(1) + i)
201 evar(2,i) = gbuf%SIG(jj(2) + i)
202 evar(4,i) = gbuf%SIG(jj(4) + i)
203 is_written_tensor(i) = 1
207 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
210 evar(1,i) =evar(1,i)+ lbuf%VISC(jj(1) + i)
211 evar(2,i) =evar(2,i)+ lbuf%VISC(jj(2) + i)
212 evar(4,i) =evar(4,i)+ lbuf%VISC(jj(4) + i)
216 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
THEN
218 evar(1,i) = evar(1,i) * gbuf%FILL(i)
219 evar(2,i) = evar(2,i) * gbuf%FILL(i)
220 evar(4,i) = evar(4,i) * gbuf%FILL(i)
224 IF (jcvt == 0 .OR. isorth /= 0)
THEN
227 1 x, ixq(1,nft+1),jcvt, evar,
228 2 gbuf%GAMA, nel, isorth)
231 ELSEIF ( ilay == -1 .AND. iabs(it) == 1 .AND. ir >= 0 .AND.
232 . ir <= nptr .AND. is >= 0 .AND. is <= npts)
THEN
234 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
237 evar(1,i) = lbuf%SIG(jj(1) + i)
238 evar(2,i) = lbuf%SIG(jj(2) + i)
239 evar(4,i) = lbuf%SIG(jj(4) + i)
240 is_written_tensor(i) = 1
246 evar(1,i) =evar(1,i)+ lbuf%VISC(jj(1) + i)
247 evar(2,i) =evar(2,i)+ lbuf%VISC(jj(2) + i)
248 evar(4,i) =evar(4,i)+ lbuf%VISC(jj(4) + i)
252 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
THEN
254 evar(1,i) = evar(1,i) * gbuf%FILL(i)
255 evar(2,i) = evar(2,i) * gbuf%FILL(i)
256 evar(4,i) = evar(4,i) * gbuf%FILL(i)
260 IF (jcvt == 0 .OR. isorth /= 0)
THEN
263 1 x, ixq(1,nft+1),jcvt, evar,
264 2 gbuf%GAMA, nel, isorth)
270 ELSEIF (keyword ==
'TENS/STRAIN')
THEN
272 IF( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1 )
THEN
279 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
280 evar(1,i) = evar(1,i) + lbuf%STRA(jj(1) + i)/npt
281 evar(2,i) = evar(2,i) + lbuf%STRA(jj(2) + i)/npt
282 evar(4,i) = evar(4,i) + lbuf%STRA(jj(4) + i)*half/npt
283 is_written_tensor(i) = 1
289 IF (jcvt == 0 .OR. isorth /= 0)
THEN
292 1 x, ixq(1,nft+1),jcvt, evar,
293 2 gbuf%GAMA, nel, isorth)
296 ELSEIF ( ilay == -1 .AND. iabs(it) == 1 .AND. ir >= 0 .AND.
297 . ir <= nptr .AND. is >= 0 .AND. is <= npts)
THEN
299 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
302 evar(1,i) = evar(1,i) + lbuf%STRA(jj(1) + i)
303 evar(2,i) = evar(2,i) + lbuf%STRA(jj(2) + i)
304 evar(4,i) = evar(4,i) + lbuf%STRA(jj(4) + i)
308 IF (jcvt == 0 .OR. isorth /= 0)
THEN
311 1 x, ixq(1,nft+1),jcvt, evar,
312 2 gbuf%GAMA, nel, isorth)
318 ELSEIF (keyword ==
'TENS/DAMA')
THEN
320 IF( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1 )
THEN
327 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
328 IF(elbuf_tab(ng)%BUFLY(1)%L_DGLO > 0)
THEN
329 evar(1,i) = evar(1,i)+lbuf%DGLO(jj(1) + i)/npt
330 evar(2,i) = evar(2,i)+lbuf%DGLO(jj(2) + i)/npt
331 evar(4,i) = evar(4,i)+lbuf%DGLO(jj(4) + i)/npt
332 is_written_tensor(i) = 1
339 ELSEIF ( ilay == -1 .AND. iabs(it) == 1 .AND. ir >= 0 .AND.
340 . ir <= nptr .AND. is >= 0 .AND. is <= npts)
THEN
342 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
343 IF (elbuf_tab(ng)%BUFLY(1)%L_DGLO > 0)
THEN
346 evar(1,i) = evar(1,i)+lbuf%DGLO(jj(1) + i)
347 evar(2,i) = evar(2,i)+lbuf%DGLO(jj(2) + i)
348 evar(4,i) = evar(4,i)+lbuf%DGLO(jj(4) + i)
349 is_written_tensor(i) = 1
355 ELSEIF (keyword ==
'TENS/EPSP')
THEN
357 IF( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1 )
THEN
364 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,it)
365 evar(1,i) = evar(1,i) + lbuf%PLA(jj(1) + i + nel)/npt
367 evar(4,i) = evar(4,i) + lbuf%PLA(jj(4) + i + nel)*half/npt
368 is_written_tensor(i) = 1
374 IF (jcvt == 0 .OR. isorth /= 0)
THEN
377 1 x, ixq(1,nft+1),jcvt, evar,
378 2 gbuf%GAMA, nel, isorth)
381 ELSEIF ( ilay == -1 .AND. iabs(it) == 1 .AND. ir >= 0 .AND.
382 . ir <= nptr .AND. is >= 0 .AND. is <= npts)
THEN
384 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
387 evar(1,i) = evar(1,i) + lbuf%PLA(jj(1) + i + nel)
388 evar(2,i) = evar(2,i) + lbuf%PLA(jj(2) + i + nel)
389 evar(4,i) = evar(4,i) + lbuf%PLA(jj(4) + i + nel)
390 is_written_tensor(i) = 1
393 IF (jcvt == 0 .OR. isorth /= 0)
THEN
396 1 x, ixq(1,nft+1),jcvt, evar,
397 2 gbuf%GAMA, nel, isorth)
404 . evar,is_written_tensor)