32 SUBROUTINE tensors(ELBUF_TAB,IPARG ,ITENS ,IXS ,PM ,
34 3 X ,IPART ,IPARTSP ,ISPH3D ,IPM )
42#include "implicit_f.inc"
46#include "vect01_c.inc"
57 . tens(6,*),pm(npropm,*),x(3,*)
58 INTEGER IPARG(,*),ITENS, ISPH3D,NBF,
61TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
65 . evar(6,mvsiz),off, fac, a1, a2, a3, thk, gama(6)
67INTEGER I, II,NG, NEL, IPT,MT1,NLAY,IL,
69 . nptr, npts, nptt,nptg, is, ir, it,
70 . jhbe, jivf, jclose, jplasol
71 . icsen, isorthg, ifailure, iint,jj
72 TYPE(g_bufel_) ,
POINTER :: GBUF
73 TYPE(L_BUFEL_) ,
POINTER :: LBUF
83 isolnod = iparg(28,ng)
85 2 mlw ,nel ,nft ,iad ,ity ,
86 3 npt ,jale ,ismstr ,jeul ,jtur
87 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
88 5 jpor ,kcvt ,jclose ,jplasol ,
89 6 irep ,iint ,igtyp ,israt ,isrot ,
90 7 icsen ,isorth ,isorthg ,ifailure)
102 gbuf => elbuf_tab(ng)%GBUF
103 nlay = elbuf_tab(ng)%NLAY
104 nptr = elbuf_tab(ng)%NPTR
105 npts = elbuf_tab(ng)%NPTS
106 nptt = elbuf_tab(ng)%NPTT
107 nptg = nptt*npts*nptr
110 IF (kcvt==1 .AND. isorth/=0) kcvt=2
117 evar(1,i) = gbuf%SIG(jj(1) + i)
118 evar(2,i) = gbuf%SIG(jj(2) + i)
119 evar(3,i) = gbuf%SIG(jj(3) + i)
120 evar(4,i) = gbuf%SIG(jj(4) + i)
121 evar(5,i) = gbuf%SIG(jj(5) + i)
122 evar(6,i) = gbuf%SIG(jj(6) + i)
128 IF(el2fa(nn2+n)/=0)
THEN
130 IF (kcvt==2.AND.jhbe/=14)
THEN
131 gama(1)=gbuf%GAMA(jj(1) + i)
133 gama(3)=gbuf%GAMA(jj(3) + i)
134 gama(4)=gbuf%GAMA(jj(4) + i)
135 gama(5)=gbuf%GAMA(jj(5) + i)
136 gama(6)=gbuf%GAMA(jj(6) + i)
145 CALL srota6(x,ixs(1:nixs,n),kcvt,evar(1:6,i),gama
150 ELSEIF(itens == 2)
THEN
159 IF (isolnod == 8.AND.npt == 8.AND.jhbe/=14.AND.
160 . jhbe/=24.AND.jhbe/=15 )
THEN
165 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,j)
166 evar(1,i) = evar(1,i) + lbuf%STRA(jj(1)+i)*one_over_8
167 evar(2,i) = evar(2,i) + lbuf%STRA(jj(2)+i)*one_over_8
168 evar(3,i) = evar(3,i) + lbuf%STRA(jj(3)+i
169 evar(4,i) = evar(4,i) + lbuf%STRA(jj(4)+i)*one_over_8
170 evar(5,i) = evar(5,i) + lbuf%STRA(jj(5)+i)*one_over_8
171 evar(6,i) = evar(6,i) + lbuf%STRA
176 ELSEIF(isolnod == 8 .AND. npt == 1 .AND.
177 . jhbe/=14.AND.jhbe/=15.AND.jhbe/=24)
THEN
179 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
182 evar(1,i) = lbuf%STRA(jj(1)+i)*one_over_8
183 evar(2,i) = lbuf%STRA(jj(2)+i)*one_over_8
184 evar(3,i) = lbuf%STRA(jj(3)+i)*one_over_8
185 evar(4,i) = lbuf%STRA(jj(4)+i)*one_over_8
186 evar(5,i) = lbuf%STRA(jj(5)+i)*one_over_8
187 evar(6,i) = lbuf%STRA(jj(6)+i)*one_over_8
189 ELSEIF(mlw == 14)
THEN
192 evar(1,i) = evar(1,i) + lbuf%EPE(jj(1)+i)
193 evar(2,i) = evar(2,i) + lbuf%EPE(jj(2)+i)
194 evar(3,i) = evar(3,i) + lbuf%EPE(jj(3)+i)
196 ELSEIF(mlw == 24)
THEN
199 evar(1,i) = lbuf%STRA(jj(1)+i)
200 evar(2,i) = lbuf%STRA(jj(2)+i)
201 evar(3,i) = lbuf%STRA(jj(3)+i)
202 evar(4,i) = lbuf%STRA(jj(4)+i)*half
203 evar(5,i) = lbuf%STRA(jj(5)+i)*half
204 evar(6,i) = lbuf%STRA(jj(6)+i)*half
208 ELSEIF (isolnod == 16 .OR. isolnod == 20 .OR.
209 . (isolnod == 8 .AND. jhbe == 14))
THEN
216 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
217 evar(1,i) = evar(1,i) + lbuf%STRA(jj(1)+i)/nptg
218 evar(2,i) = evar(2,i) + lbuf%STRA(jj(2)+i)/nptg
219 evar(3,i) = evar(3,i) + lbuf%STRA(jj(3)+i)/nptg
220 evar(4,i) = evar(4,i) + lbuf%STRA(jj(4)+i)/nptg
221 evar(5,i) = evar(5,i) + lbuf%STRA(jj(5)+i)/nptg
222 evar(6,i) = evar(6,i) + lbuf%STRA(jj(6)+i)/nptg
228 ELSEIF (mlw == 14)
THEN
235 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
236 evar(1,i) = evar(1,i) + lbuf%EPE(jj(1)+i)/nptg
237 evar(2,i) = evar(2,i) + lbuf%EPE(jj(2)+i)/nptg
238 evar(3,i) = evar(3,i) + lbuf%EPE(jj(3)+i)/nptg
244 ELSEIF(mlw == 24)
THEN
251 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ir,is,it)
252 IF (elbuf_tab(ng)%BUFLY(il)%L_STRA > 0)
THEN
253 evar(1,i) = evar(1,i) + lbuf%STRA(jj(1)+i)/nptg
254 evar(2,i) = evar(2,i) + lbuf%STRA(jj(2)+i)/nptg
255 evar(3,i) = evar(3,i) + lbuf%STRA(jj(3)+i)/nptg
256 evar(4,i) = evar(4,i) + lbuf%STRA(jj(4)+i)/nptg
257 evar(5,i) = evar(5,i) + lbuf%STRA(jj(5)+i)/nptg
258 evar(6,i) = evar(6,i) + lbuf%STRA(jj(6)+i)/nptg
267 ELSEIF (isolnod == 10)
THEN
272 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
273 evar(1,i) = evar(1,i)+lbuf%STRA(jj(1)+i)/npt
274 evar(2,i) = evar(2,i)+lbuf%STRA(jj(2)+i)/npt
275 evar(3,i) = evar(3,i)+lbuf%STRA(jj(3)+i)/npt
276 evar(4,i) = evar(4,i)+lbuf%STRA(jj(4)+i)/npt
277 evar(5,i) = evar(5,i)+lbuf%STRA(jj(5)+i)/npt
278 evar(6,i) = evar(6,i)+lbuf%STRA(jj(6)+i)/npt
281 ELSEIF(mlw == 14)
THEN
285 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
286 evar(1,i) = evar(1,i) + lbuf%EPE(jj(1)+i)/npt
287 evar(2,i) = evar(2,i) + lbuf%EPE(jj(2)+i)/npt
288 evar(3,i) = evar(3,i) + lbuf%EPE(jj(3)+i)/npt
291 ELSEIF (mlw == 24)
THEN
295 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ipt,1,1)
296 evar(1,i) = evar(1,i)+lbuf%STRA(jj(1)+i)/npt
297 evar(2,i) = evar(2,i)+lbuf%STRA(jj(2)+i)/npt
298 evar(3,i) = evar(3,i)+lbuf%STRA(jj(3)+i)/npt
299 evar(4,i) = evar(4,i)+lbuf%STRA(jj(4)+i)/npt
300 evar(5,i) = evar(5,i)+lbuf%STRA(jj(5)+i)/npt
301 evar(6,i) = evar(6,i)+lbuf%STRA(jj(6)+i)/npt
305 ELSEIF ((isolnod == 6.OR.isolnod == 8) .AND. jhbe == 15)
THEN
311 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ipt,1,1)
312 evar(1,i) = evar(1,i)+lbuf%STRA(jj(1)+i)/nptg
313 evar(2,i) = evar(2,i)+lbuf%STRA(jj(2)+i)/nptg
314 evar(3,i) = evar(3,i)+lbuf%STRA(jj(3)+i)/nptg
315 evar(4,i) = evar(4,i)+lbuf%STRA(jj(4)+i)/nptg
316 evar(5,i) = evar(5,i)+lbuf%STRA(jj(5)+i)/nptg
317 evar(6,i) = evar(6,i)+lbuf%STRA(jj(6)+i)/nptg
321 ELSEIF(mlw == 14)
THEN
326 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ipt,1,1)
327 evar(1,i) = evar(1,i) + lbuf%EPE(jj(1)+i)/nptg
328 evar(2,i) = evar(2,i) + lbuf%EPE(jj(2)+i)/nptg
329 evar(3,i) = evar(3,i) + lbuf%EPE(jj(3)+i)/nptg
333 ELSEIF (mlw == 24)
THEN
338 lbuf => elbuf_tab(ng)%BUFLY(il)%LBUF(ipt,1,1)
339 evar(1,i) = evar(1,i)+lbuf%STRA(jj(1)+i)/nptg
340 evar(2,i) = evar(2,i)+lbuf%STRA(jj(2)+i)/nptg
341 evar(3,i) = evar(3,i)+lbuf%STRA(jj(3)+i)/nptg
342 evar(4,i) = evar(4,i)+lbuf%STRA(jj(4)+i)/nptg
343 evar(5,i) = evar(5,i)+lbuf%STRA(jj(5)+i)/nptg
344 evar(6,i) = evar(6,i)+lbuf%STRA(jj(6)+i)/nptg
351 ELSEIF (itens == 4.AND.mlw == 24.AND.
352 . nint(pm(56,mt1)) == 1)
THEN
355 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
357 evar(1,i) = lbuf%DGLO(jj(1)+i)
358 evar(2,i) = lbuf%DGLO(jj(2)+i
359 evar(3,i) = lbuf%DGLO(jj(3)+i)
360 evar(4,i) = lbuf%DGLO(jj(4)+i)
361 evar(5,i) = lbuf%DGLO(jj(5)+i)
362 evar(6,i) = lbuf%DGLO(jj(6)+i)
368 IF(el2fa(nn2+n)/=0)
THEN
370 gama(1)= gbuf%GAMA(jj(1) + i)
371 gama(2)= gbuf%GAMA(jj(2) + i)
384 CALL srota6(x,ixs(1:nixs,n),kcvt,evar(1:6,i),gama)
402 IF(isolnod == 16)
THEN
405 IF(el2fa(nn2+n)/=0)
THEN
406 tens(1,el2fa(nn2+n)) = evar(1,i)
407 tens(2,el2fa(nn2+n)) = evar(2,i)
408 tens(3,el2fa(nn2+n)) = evar(3,i)
409 tens(4,el2fa(nn2+n)) = evar(4,i)
410 tens(5,el2fa(nn2+n)) = evar(5,i)
411 tens(6,el2fa(nn2+n)) = evar(6,i)
412 tens(1,el2fa(nn2+n)+1) = evar(1,i)
413 tens(2,el2fa(nn2+n)+1) = evar(2,i)
414 tens(3,el2fa(nn2+n)+1) = evar(3,i)
415 tens(4,el2fa(nn2+n)+1) = evar(4,i)
416 tens(5,el2fa(nn2+n)+1) = evar(5,i)
417 tens(6,el2fa(nn2+n)+1) = evar(6,i)
418 tens(1,el2fa(nn2+n)+2) = evar(1,i)
419 tens(2,el2fa(nn2+n)+2) = evar(2,i)
420 tens(3,el2fa(nn2+n)+2) = evar(3,i)
421 tens(4,el2fa(nn2+n)+2) = evar(4,i)
423 tens(6,el2fa(nn2+n)+2) = evar(6,i)
424 tens(1,el2fa(nn2+n)+3) = evar(1,i)
425 tens(2,el2fa(nn2+n)+3) = evar(2,i)
426 tens(3,el2fa(nn2+n)+3) = evar(3,i)
427 tens(4,el2fa(nn2+n)+3) = evar(4,i)
429 tens(6,el2fa(nn2+n)+3) = evar(6,i)
435 IF(el2fa(nn2+n)/=0)
THEN
436 tens(1,el2fa(nn2+n)) = evar(1,i)
437 tens(2,el2fa(nn2+n)) = evar(2,i)
438 tens(3,el2fa(nn2+n)) = evar(3,i)
439 tens(4,el2fa(nn2+n)) = evar(4,i)
440 tens(5,el2fa(nn2+n)) = evar(5,i)
441 tens(6,el2fa(nn2+n)) = evar(6,i)
446 ELSEIF(isph3d == 1.AND.ity == 51)
THEN
450 iprt=ipartsp(1 + nft)
458 IF(el2fa(nn3+n)/=0)
THEN
459 tens(1,el2fa(nn3+n)) = lbuf%SIG(jj(1) + i)
460 tens(2,el2fa(nn3+n)) = lbuf%SIG(jj(2) + i)
461 tens(3,el2fa(nn3+n)) = lbuf%SIG(jj(3) + i)
462 tens(4,el2fa(nn3+n)) = lbuf%SIG(jj(4) + i)
463 tens(5,el2fa(nn3+n)) = lbuf%SIG(jj(5) + i)
464 tens(6,el2fa(nn3+n)) = lbuf%SIG(jj(6) + i)
468 ELSEIF(itens == 4.AND.mlw == 24.
469 . and.nint(pm(56,mt1)) == 1)
THEN
472 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
475 IF (el2fa(nn3+n)/=0)
THEN
476 evar(1,i) = lbuf%DGLO(jj(1)+i)
477 evar(2,i) = lbuf%DGLO(jj(2)+i)
479 evar(4,i) = lbuf%DGLO
481 evar(6,i) = lbuf%DGLO(jj(6)+i)
487 IF(el2fa(nn3+n)/=0)
THEN
488 tens(1,el2fa(nn3+n)) = zero
489 tens(2,el2fa(nn3+n)) = zero
490 tens(3,el2fa(nn3+n)) = zero
491 tens(4,el2fa(nn3+n)) = zero
492 tens(5,el2fa(nn3+n)) = zero
493 tens(6,el2fa(nn3+n)) = zero