31 2 INVERT,NELCUT,EL2FA,NBF ,TENS ,
33 4 X ,IXC ,IGEO ,IXTG )
41#include
"implicit_f.inc"
51 INTEGER IPARG(NPARG,*),ITENS, INVERT(*),
52 . EL2FA(*),IXC(NIXC,*), IGEO(NPROPGI,*),
53 . NELCUT,NBF,IADP(*),NBF_L,NBPART,
58 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
64 . off, fac, a1, a2, a3, thk
66 INTEGER I,J,I1,I2,N, NG, NEL, NFT, ITY, LFT, NPT, IL,IPT,NLAY,
67 . LLT, MLW, ISTRAIN, ISTRE,
68 . n0,nni,nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,ii(8)
69 TYPE(g_bufel_) ,
POINTER :: GBUF
70 TYPE(L_BUFEL_) ,
POINTER :: LBUF
71 TYPE(BUF_LAY_) ,
POINTER ::
106 tens(1,el2fa(nn3+n)) = zero
107 tens(2,el2fa(nn3+n)) = zero
108 tens(3,el2fa(nn3+n)) = zero
111 ELSEIF(ity == 3.OR.ity == 7)
THEN
114 gbuf => elbuf_tab(ng)%GBUF
115 nlay = elbuf_tab(ng)%NLAY
116 npt = iabs(iparg(6,ng))
117 istrain = iparg(44,ng)
131 IF (istrain == 1)
THEN
134 ELSEIF (itens == 6)
THEN
138 IF (istrain == 1)
THEN
141 ELSEIF (itens == 7)
THEN
145 IF (istrain == 1)
THEN
149 ELSEIF (itens == 8)
THEN
153 IF (istrain == 1)
THEN
157 ELSEIF (itens >= 201 .AND. itens <= 300)
THEN
161 IF (istrain == 1 .AND. npt /= 0)
THEN
162 ipt =
min(npt,itens - 200)
164 a2 = half*(((2*ipt-one)/npt)-one)
187 r4(j) = gbuf%FOR(ii(j)+i)
189 r4(3) = r4(3) * invert(el2fa(nni+n))
190 tens(1,el2fa(nni+n)) = r4
191 tens(2,el2fa(nni+n)) = r4(2)
192 tens(3,el2fa(nni+n)) = r4(3)
194 ELSEIF (itens == 2)
THEN
198 r4(j) = gbuf%MOM(ii(j)+i)
200 r4(3) = r4(3) * invert(el2fa(nni+n))
201 tens(1,el2fa(nni+n)) = r4(1)
202 tens(2,el2fa(nni+n)) = r4(2)
203 tens(3,el2fa(nni+n)) = r4(3)
205 ELSEIF (itens == 3)
THEN
210 r4(j) = gbuf%FOR(ii(j)+i) + six*gbuf%MOM(ii(j)+i)
212 r4(3) = r4(3) * invert(el2fa(nni+n))
213 tens(1,el2fa(nni+n)) = r4(1)
214 tens(2,el2fa(nni+n)) = r4(2)
215 tens(3,el2fa(nni+n)) = r4(3)
217 ELSEIF (mlw == 3.OR.mlw == 23)
THEN
221 r4(j) = gbuf%FOR(ii(j)+i)
223 r4(3) = r4(3) * invert(el2fa(nni+n))
224 tens(1,el2fa(nni+n)) = r4(1)
225 tens(2,el2fa(nni+n)) = r4(2)
226 tens(3,el2fa(nni+n)) = r4(3)
228 ELSEIF (mlw == 2 .OR. mlw == 19 .OR.
229 . mlw == 22 .OR. mlw == 25 .OR.
230 . mlw == 27 .OR. mlw == 32 .OR.
231 . mlw == 36 .OR. mlw == 15)
THEN
233 bufly => elbuf_tab(ng)%BUFLY(npt)
238 r4(j) = bufly%SIGPT(i1+j)
240 r4(3) = r4(3) * invert(el2fa(nni+n))
241 tens(1,el2fa(nni+n)) = r4(1)
242 tens(2,el2fa(nni+n)) = r4(2)
243 tens(3,el2fa(nni+n)) = r4(3)
246 bufly => elbuf_tab(ng)%BUFLY(1)
251 r4(j) = bufly%SIGPT((npt-1)*nel*5 + i1 + j)
253 r4(3) = r4(3) * invert(el2fa(nni+n))
254 tens(1,el2fa(nni+n)) = r4(1)
255 tens(2,el2fa(nni+n)) = r4(2)
256 tens(3,el2fa(nni+n)) = r4(3)
261 ELSEIF (itens == 4)
THEN
266 r4(j) = gbuf%FOR(ii(j)+i) - six*gbuf%MOM(ii(j)+i)
268 r4(3) = r4(3) * invert(el2fa(nni+n))
269 tens(1,el2fa(nni+n)) = r4(1)
270 tens(2,el2fa(nni+n)) = r4(2)
271 tens(3,el2fa(nni+n)) = r4(3)
273 ELSEIF (mlw == 3.OR.mlw == 23)
THEN
277 r4(j) = gbuf%FOR(ii(j)+i)
279 r4(3) = r4(3) * invert(el2fa(nni+n))
280 tens(1,el2fa(nni+n)) = r4(1)
281 tens(2,el2fa(nni+n)) = r4(2)
282 tens(3,el2fa(nni+n)) = r4(3)
284 ELSEIF (mlw == 2.OR.mlw == 19.OR.
285 . mlw == 22.OR.mlw == 25.OR.
286 . mlw == 27.OR.mlw == 32.OR.
287 . mlw == 36.OR.mlw == 15)
THEN
288 bufly => elbuf_tab(ng)%BUFLY(1)
293 r4(j) = bufly%SIGPT(i1+j)
295 r4(3) = r4(3) * invert(el2fa(nni+n))
296 tens(1,el2fa(nni+n)) = r4(1)
297 tens(2,el2fa(nni+n)) = r4(2)
298 tens(3,el2fa(nni+n)) = r4(3)
301 ELSEIF (itens>=101.AND.itens<=200)
THEN
302 IF (mlw == 1.OR.mlw == 3.OR.mlw == 23)
THEN
306 r4(j) = gbuf%FOR(ii(j)+i)
308 r4(3) = r4(3) * invert(el2fa(nni+n))
309 tens(1,el2fa(nni+n)) = r4(1)
310 tens(2,el2fa(nni+n)) = r4(2)
311 tens(3,el2fa(nni+n)) = r4(3)
313 ELSEIF (mlw == 2.OR.mlw == 19.OR.
314 . mlw == 22.OR.mlw == 25.OR.
315 . mlw == 27.OR.mlw == 32.OR.
316 . mlw == 36.OR.mlw == 15)
THEN
317 ipt =
min(npt,itens-100)
319 bufly => elbuf_tab(ng)%BUFLY(ipt)
324 r4(j) = bufly%SIGPT(i1+j)
326 r4(3) = r4(3) * invert(el2fa(nni+n))
327 tens(1,el2fa(nni+n)) = r4(1)
328 tens(2,el2fa(nni+n)) = r4(2)
329 tens(3,el2fa(nni+n)) = r4(3)
332 bufly => elbuf_tab(ng)%BUFLY(1)
337 r4(j) = bufly%SIGPT((ipt-1)*nel*5 + i1 + j)
339 r4(3) = r4(3) * invert(el2fa(nni+n))
340 tens(1,el2fa(nni+n)) = r4(1)
341 tens(2,el2fa(nni+n)) = r4(2)
342 tens(3,el2fa(nni+n)) = r4(3)
344 ENDIF !
IF (nlay > 1)
348 ELSEIF (istre == 0 .AND. gbuf%G_STRA > 0)
THEN
357 r4(j) = a1*gbuf%STRA(ii(j)+i) + a2*gbuf%STRA(ii(j)+i) * thk
361 r4(j) = gbuf%STRA(ii(j)+i)
364 r4(3) = r4(3) * invert(el2fa(nni+n)) * half
365 tens(1,el2fa(nni+n)) = r4(1)
366 tens(2,el2fa(nni+n)) = r4(2)
367 tens(3,el2fa(nni+n)) = r4(3)