37 2 EL2FA ,TENS ,EPSDOT,IADP ,
38 3 NBPART,IADG ,X ,IXQ ,
39 4 IGEO ,IXTG ,IPM ,STACK,ID_ELEM ,INFO1,
40 5 INFO2 ,IS_WRITTEN_QUAD,IPARTQ ,IPARTTG ,LAYER_INPUT ,IPT_INPUT ,
41 6 PLY_INPUT,GAUSS_INPUT,IUVAR_INPUT,H3D_PART, KEYWORD,
42 7 IR_INPUT ,IS_INPUT ,IT_INPUT )
52#include "implicit_f.inc"
64 INTEGER IPARG(NPARG,*),ITENS,INVERT(*),
65 . EL2FA(*),IXQ(NIXQ,*), IGEO(NPROPGI,*),
66 . NELCUT,IADP(*),NBPART,IADG(NSPMD,*),
67 . IXTG(NIXTG,*),IPM(NPROPMI,*),ID_ELEM(*),
68 . INFO1,INFO2,IS_WRITTEN_QUAD(*),IPARTQ(*),IPARTTG(*),H3D_PART(*),
69 . LAYER_INPUT ,IPT_INPUT,GAUSS_INPUT,PLY_INPUT,IUVAR_INPUT,II,
70 . ir_input,is_input,it_input
73 . tens(3,*),epsdot(6,*),x(3,*),quad_tensor(6,*)
74 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
75 TYPE (STACK_PLY) :: STACK
76 CHARACTER(LEN=NCHARLINE100) :: KEYWORD
82 . a1,a2,a3,thk,y1,y2,y3,y4,z1,z2,z3,z4,
83 . sy,sz,ty,tz,suma,r11,r12,r13,r21,r22,
84 . r23,r31,r32,r33,s1,s2,s4,t1,t2,t3,t4,ct,cs,
85 . g22,g23,g32,g33,t22,t23,t32,t33
89 . evar(6,mvsiz), gama(6,mvsiz)
91 INTEGER I,NG,NEL,NFT,ITY,LFT,NPT,MPT,IPT,
92 . n,j,llt,mlw,istrain,il,ir,is,it,nptr,npts,nlay,
93 . ipid,i1,i2,ns1,ns2,istre,
94 . nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nni,n0,
95 . ihbe,irep,buf,npg,k,isrot,nuvarv,ivisc,
96 . ipmat,igtyp,matly,isubstack,iigeo,iadi,ipmat_iply,
97 . npt_all,nptt,ilay,ius,id_ply,ipang,ippos,ipthk,offset,iselect,
98 . iply,iuvar,iad,jale,jturb,jcvt,nc1,nc2,nc3,nc4,isorth
99 INTEGER PID(MVSIZ),MAT(MVSIZ),IOK_PART(MVSIZ),JJ(6),IS_WRITTEN_TENSOR(MVSIZ)
101 TYPE(BUF_LAY_) ,
POINTER ::
102 TYPE(G_BUFEL_) ,
POINTER :: GBUF
103 TYPE(L_BUFEL_) ,
POINTER :: LBUF
106 .
DIMENSION(:),
POINTER :: dir_a
108 .
DIMENSION(:),
POINTER :: uvar
117 is_written_quad(i) = 0
131 istrain = iparg(44,ng)
132 isubstack = iparg(71,ng)
133 isorth = iparg(42,ng)
139 nptr = elbuf_tab(ng)%NPTR
140 npts = elbuf_tab(ng)%NPTS
141 nptt = elbuf_tab(ng)%NPTT
146 isubstack = iparg(71,ng)
154 evar(1:6,1:nel) = zero
155 is_written_tensor(1:nel) = 0
161 gbuf => elbuf_tab(ng)%GBUF
162 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
163 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR
164 jale=(iparg(7,ng)+iparg(11,ng))
165 jturb=iparg(12,ng)*jale
168 id_elem(nft+i) = ixq(nixq,nft+i)
169 IF( h3d_part(ipartq(nft+i)) == 1) iok_part(i) = 1
173 IF (isorth == 0)
THEN
181 gama(1,i)=gbuf%GAMA(jj(1) + i)
182 gama(2,i)=gbuf%GAMA(jj(2) + i)
183 gama(3,i)=gbuf%GAMA(jj(3) + i)
184 gama(4,i)=gbuf%GAMA(jj(4) + i)
185 gama(5,i)=gbuf%GAMA(jj(5) + i)
186 gama(6,i)=gbuf%GAMA(jj(6) + i)
190 IF (keyword ==
'TENS/STRESS')
THEN
198 IF( ilay == -1 .AND. ir == -1 .AND. is == -1 .AND. it == -1 )
THEN
201 evar(1,i) = gbuf%SIG(jj(1) + i)
202 evar(2,i) = gbuf%SIG(jj(2) + i)
203 evar(4,i) = gbuf%SIG(jj(4) + i)
204 is_written_tensor(i) = 1
208 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
211 evar(1,i) =evar(1,i)+ lbuf%VISC(jj(1) + i)
212 evar(2,i) =evar(2,i)+ lbuf%VISC(jj(2) + i)
213 evar(4,i) =evar(4,i)+ lbuf%VISC(jj(4) + i)
217 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
THEN
219 evar(1,i) = evar(1,i) * gbuf%FILL(i)
220 evar(2,i) = evar(2,i) * gbuf%FILL(i)
221 evar(4,i) = evar(4,i) * gbuf%FILL(i)
225 IF (jcvt == 0 .OR. isorth /= 0)
THEN
228 1 x, ixq(1,nft+1),jcvt, evar,
229 2 gbuf%GAMA, nel, isorth)
232 ELSEIF ( ilay == -1 .AND. iabs(it) == 1 .AND. ir >= 0 .AND.
233 . ir <= nptr .AND. is >= 0 .AND. is <= npts)
THEN
235 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
238 evar(1,i) = lbuf%SIG(jj(1) + i)
239 evar(2,i) = lbuf%SIG(jj(2) + i)
240 evar(4,i) = lbuf%SIG(jj(4) + i)
241 is_written_tensor(i) = 1
247 evar(1,i) =evar(1,i)+ lbuf%VISC(jj(1) + i)
248 evar(2,i) =evar(2,i)+ lbuf%VISC(jj(2) + i)
249 evar(4,i) =evar(4,i)+ lbuf%VISC(jj(4) + i)
253 IF( nfilsol /= 0 .AND. gbuf%G_FILL /= 0 )
THEN
255 evar(1,i) = evar(1,i) * gbuf%FILL(i)
256 evar(2,i) = evar(2,i) * gbuf%FILL(i)
257 evar(4,i) = evar(4,i) * gbuf%FILL(i)
261 IF (jcvt == 0 .OR. isorth /= 0)
THEN
264 1 x, ixq(1,nft+1),jcvt, evar,
265 2 gbuf%GAMA, nel, isorth)
271 ELSEIF (keyword == 'tens/strain
') THEN
273.AND..AND..AND.
IF( ILAY == -1 IR == -1 IS == -1 IT == -1 )THEN
280 LBUF => ELBUF_TAB(NG)%BUFLY(1)%LBUF(IR,IS,IT)
281 EVAR(1,I) = EVAR(1,I) + LBUF%STRA(JJ(1) + I)/NPT
282 EVAR(2,I) = EVAR(2,I) + LBUF%STRA(JJ(2) + I)/NPT
283 EVAR(4,I) = EVAR(4,I) + LBUF%STRA(JJ(4) + I)*HALF/NPT
284 IS_WRITTEN_TENSOR(I) = 1
290.OR.
IF (JCVT == 0 ISORTH /= 0) THEN
293 1 X, IXQ(1,NFT+1),JCVT, EVAR,
294 2 GBUF%GAMA, NEL, ISORTH)
297.AND..AND..AND.
ELSEIF ( ILAY == -1 IABS(IT) == 1 IR >= 0
298.AND..AND.
. IR <= NPTR IS >= 0 IS <= NPTS) THEN
300 LBUF => ELBUF_TAB(NG)%BUFLY(1)%LBUF(IR,IS,1)
303 EVAR(1,I) = EVAR(1,I) + LBUF%STRA(JJ(1) + I)
304 EVAR(2,I) = EVAR(2,I) + LBUF%STRA(JJ(2) + I)
305 EVAR(4,I) = EVAR(4,I) + LBUF%STRA(JJ(4) + I)
306 IS_WRITTEN_TENSOR(I) = 1
309.OR.
IF (JCVT == 0 ISORTH /= 0) THEN
312 1 X, IXQ(1,NFT+1),JCVT, EVAR,
313 2 GBUF%GAMA, NEL, ISORTH)
319 ELSEIF (KEYWORD == 'tens/dama
') THEN
321.AND..AND..AND.
IF( ILAY == -1 IR == -1 IS == -1 IT == -1 )THEN
328 LBUF => ELBUF_TAB(NG)%BUFLY(1)%LBUF(IR,IS,IT)
329 IF(ELBUF_TAB(NG)%BUFLY(1)%L_DGLO > 0) THEN
330 EVAR(1,I) = EVAR(1,I)+LBUF%DGLO(JJ(1) + I)/NPT
331 EVAR(2,I) = EVAR(2,I)+LBUF%DGLO(JJ(2) + I)/NPT
332 EVAR(4,I) = EVAR(4,I)+LBUF%DGLO(JJ(4) + I)/NPT
333 IS_WRITTEN_TENSOR(I) = 1
340.AND..AND..AND.
ELSEIF ( ILAY == -1 IABS(IT) == 1 IR >= 0
341.AND..AND.
. IR <= NPTR IS >= 0 IS <= NPTS) THEN
343 LBUF => ELBUF_TAB(NG)%BUFLY(1)%LBUF(IR,IS,1)
344 IF (ELBUF_TAB(NG)%BUFLY(1)%L_DGLO > 0) THEN
347 EVAR(1,I) = EVAR(1,I)+LBUF%DGLO(JJ(1) + I)
348 EVAR(2,I) = EVAR(2,I)+LBUF%DGLO(JJ(2) + I)
349 EVAR(4,I) = EVAR(4,I)+LBUF%DGLO(JJ(4) + I)
350 IS_WRITTEN_TENSOR(I) = 1
356 ELSEIF (KEYWORD == 'tens/epsp
') THEN
358.AND..AND..AND.
IF( ILAY == -1 IR == -1 IS == -1 IT == -1 )THEN
365 LBUF => ELBUF_TAB(NG)%BUFLY(1)%LBUF(IR,IS,IT)
366 EVAR(1,I) = EVAR(1,I) + LBUF%PLA(JJ(1) + I + NEL)/NPT
367 EVAR(2,I) = EVAR(2,I) + LBUF%PLA(JJ(2) + I + NEL)/NPT
368 EVAR(4,I) = EVAR(4,I) + LBUF%PLA(JJ(4) + I + NEL)*HALF/NPT
369 IS_WRITTEN_TENSOR(I) = 1
375.OR.
IF (JCVT == 0 ISORTH /= 0) THEN
378 1 X, IXQ(1,NFT+1),JCVT, EVAR,
379 2 GBUF%GAMA, NEL, ISORTH)
382.AND..AND..AND.
ELSEIF ( ILAY == -1 IABS(IT) == 1 IR >= 0
383.AND..AND.
. IR <= NPTR IS >= 0 IS <= NPTS) THEN
385 LBUF => ELBUF_TAB(NG)%BUFLY(1)%LBUF(IR,IS,1)
388 EVAR(1,I) = EVAR(1,I) + LBUF%PLA(JJ(1) + I + NEL)
389 EVAR(2,I) = EVAR(2,I) + LBUF%PLA(JJ(2) + I + NEL)
390 EVAR(4,I) = EVAR(4,I) + LBUF%PLA(JJ(4) + I + NEL)
391 IS_WRITTEN_TENSOR(I) = 1
394.OR.
IF (JCVT == 0 ISORTH /= 0) THEN
397 1 X, IXQ(1,NFT+1),JCVT, EVAR,
398 2 GBUF%GAMA, NEL, ISORTH)
404 CALL H3D_WRITE_TENSOR(IOK_PART,IS_WRITTEN_QUAD,QUAD_TENSOR,NEL,0,NFT,
405 . EVAR,IS_WRITTEN_TENSOR)
439 ENDIF ! IF (MLW /= 13)