31 2 INVERT,NELCUT,EL2FA,NBF ,TENS ,
33 4 X ,IXC ,IGEO ,IXTG )
38 use element_mod ,
only : nixc,nixtg
42#include "implicit_f.inc"
52 INTEGER IPARG(NPARG,*),ITENS, INVERT(*),
53 . EL2FA(*),IXC(NIXC,*), IGEO(NPROPGI,*),
54 . NELCUT,NBF,IADP(*),NBF_L,NBPART,
59 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
65 . off, fac, a1, a2, a3, thk
67 INTEGER I,J,I1,I2,N, NG, NEL, NFT, ITY, LFT, NPT, IL,IPT,NLAY,
68 . LLT, MLW, ISTRAIN, ISTRE,
69 . n0,nni,nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,ii(8)
70 TYPE(g_bufel_) ,
POINTER :: GBUF
71 TYPE(L_BUFEL_) ,
POINTER :: LBUF
72 TYPE(BUF_LAY_) ,
POINTER :: BUFLY
107 tens(1,el2fa(nn3+n)) = zero
108 tens(2,el2fa(nn3+n)) = zero
109 tens(3,el2fa(nn3+n)) = zero
112 ELSEIF(ity == 3.OR.ity == 7)
THEN
115 gbuf => elbuf_tab(ng)%GBUF
116 nlay = elbuf_tab(ng)%NLAY
117 npt = iabs(iparg(6,ng))
118 istrain = iparg(44,ng)
132 IF (istrain == 1)
THEN
135 ELSEIF (itens == 6)
THEN
139 IF (istrain == 1)
THEN
142 ELSEIF (itens == 7)
THEN
146 IF (istrain == 1)
THEN
150 ELSEIF (itens == 8)
THEN
154 IF (istrain == 1)
THEN
158 ELSEIF (itens >= 201 .AND. itens <= 300)
THEN
162 IF (istrain == 1 .AND. npt /= 0)
THEN
163 ipt =
min(npt,itens - 200)
165 a2 = half*(((2*ipt-one)/npt)-one)
188 r4(j) = gbuf%FOR(ii(j)+i)
190 r4(3) = r4(3) * invert(el2fa(nni+n))
191 tens(1,el2fa(nni+n)) = r4(1)
192 tens(2,el2fa(nni+n)) = r4(2)
193 tens(3,el2fa(nni+n)) = r4(3)
195 ELSEIF (itens == 2)
THEN
199 r4(j) = gbuf%MOM(ii(j)+i)
201 r4(3) = r4(3) * invert(el2fa(nni+n))
202 tens(1,el2fa(nni+n)) = r4(1)
203 tens(2,el2fa(nni+n)) = r4(2)
204 tens(3,el2fa(nni+n)) = r4(3)
206 ELSEIF (itens == 3)
THEN
211 r4(j) = gbuf%FOR(ii(j)+i) + six*gbuf%MOM(ii(j)+i)
213 r4(3) = r4(3) * invert(el2fa(nni+n))
214 tens(1,el2fa(nni+n)) = r4(1)
215 tens(2,el2fa(nni+n)) = r4(2)
216 tens(3,el2fa(nni+n)) = r4(3)
218 ELSEIF (mlw == 3.OR.mlw == 23)
THEN
222 r4(j) = gbuf%FOR(ii(j)+i)
224 r4(3) = r4(3) * invert(el2fa(nni+n))
225 tens(1,el2fa(nni+n)) = r4(1)
226 tens(2,el2fa(nni+n)) = r4(2)
227 tens(3,el2fa(nni+n)) = r4(3)
229 ELSEIF (mlw == 2 .OR. mlw == 19 .OR.
230 . mlw == 22 .OR. mlw == 25 .OR.
231 . mlw == 27 .OR. mlw == 32 .OR.
232 . mlw == 36 .OR. mlw == 15)
THEN
234 bufly => elbuf_tab(ng)%BUFLY(npt)
239 r4(j) = bufly%SIGPT(i1+j)
241 r4(3) = r4(3) * invert(el2fa(nni+n))
242 tens(1,el2fa(nni+n)) = r4(1)
243 tens(2,el2fa(nni+n)) = r4(2)
244 tens(3,el2fa(nni+n)) = r4(3)
247 bufly => elbuf_tab(ng)%BUFLY(1)
252 r4(j) = bufly%SIGPT((npt-1)*nel*5 + i1 + j)
254 r4(3) = r4(3) * invert(el2fa(nni+n))
255 tens(1,el2fa(nni+n)) = r4(1)
256 tens(2,el2fa(nni+n)) = r4(2)
257 tens(3,el2fa(nni+n)) = r4(3)
262 ELSEIF (itens == 4)
THEN
267 r4(j) = gbuf%FOR(ii(j)+i) - six*gbuf%MOM(ii(j)+i)
269 r4(3) = r4(3) * invert(el2fa(nni+n))
270 tens(1,el2fa(nni+n)) = r4(1)
271 tens(2,el2fa(nni+n)) = r4(2)
272 tens(3,el2fa(nni+n)) = r4(3)
274 ELSEIF (mlw == 3.OR.mlw == 23)
THEN
278 r4(j) = gbuf%FOR(ii(j)+i)
280 r4(3) = r4(3) * invert(el2fa(nni+n))
281 tens(1,el2fa(nni+n)) = r4(1)
282 tens(2,el2fa(nni+n)) = r4(2)
283 tens(3,el2fa(nni+n)) = r4(3)
285 ELSEIF (mlw == 2.OR.mlw == 19.OR.
286 . mlw == 22.OR.mlw == 25.OR.
287 . mlw == 27.OR.mlw == 32.OR.
288 . mlw == 36.OR.mlw == 15)
THEN
289 bufly => elbuf_tab(ng)%BUFLY(1)
294 r4(j) = bufly%SIGPT(i1+j)
296 r4(3) = r4(3) * invert(el2fa(nni+n))
297 tens(1,el2fa(nni+n)) = r4(1)
298 tens(2,el2fa(nni+n)) = r4(2)
299 tens(3,el2fa(nni+n)) = r4(3)
302 ELSEIF (itens>=101.AND.itens<=200)
THEN
303 IF (mlw == 1.OR.mlw == 3.OR.mlw == 23)
THEN
307 r4(j) = gbuf%FOR(ii(j)+i)
309 r4(3) = r4(3) * invert(el2fa(nni+n))
310 tens(1,el2fa(nni+n)) = r4(1)
311 tens(2,el2fa(nni+n)) = r4(2)
312 tens(3,el2fa(nni+n)) = r4(3)
314 ELSEIF (mlw == 2.OR.mlw == 19.OR.
315 . mlw == 22.OR.mlw == 25.OR.
316 . mlw == 27.OR.mlw == 32.OR.
317 . mlw == 36.OR.mlw == 15)
THEN
318 ipt =
min(npt,itens-100)
320 bufly => elbuf_tab(ng)%BUFLY(ipt)
325 r4(j) = bufly%SIGPT(i1+j)
327 r4(3) = r4(3) * invert(el2fa(nni+n))
328 tens(1,el2fa(nni+n)) = r4(1)
329 tens(2,el2fa(nni+n)) = r4(2)
330 tens(3,el2fa(nni+n)) = r4(3)
333 bufly => elbuf_tab(ng)%BUFLY(1)
338 r4(j) = bufly%SIGPT((ipt-1)*nel*5 + i1 + j)
340 r4(3) = r4(3) * invert(el2fa(nni+n))
341 tens(1,el2fa(nni+n)) = r4(1)
342 tens(2,el2fa(nni+n)) = r4(2)
343 tens(3,el2fa(nni+n)) = r4(3)
349 ELSEIF (istre == 0 .AND. gbuf%G_STRA > 0)
THEN
358 r4(j) = a1*gbuf%STRA(ii(j)+i) + a2*gbuf%STRA(ii(j)+i) * thk
362 r4(j) = gbuf%STRA(ii(j)+i)
365 r4(3) = r4(3) * invert(el2fa(nni+n)) * half
366 tens(1,el2fa(nni+n)) = r4(1)
367 tens(2,el2fa(nni+n)) = r4(2)
368 tens(3,el2fa(nni+n)) = r4(3)