36 SUBROUTINE tensor0(ELBUF_TAB,IPARG ,ITENS ,PM ,EL2FA ,
37 2 NBF ,TENS ,EPSDOT ,IADP ,
38 3 NBPART ,X ,IADG ,IPART ,IPARTSP ,
49#include "implicit_f.inc"
53#include "vect01_c.inc"
65 . tens(6,*),epsdot(6,*),pm(npropm,*),x(3,*)
66 INTEGER IPARG(NPARG,*),ITENS, EL2FA(*),IADG(NSPMD,*),
67 . nbf,iadp(*),nbpart,ipart(lipart1,*),ipartsp(*),ipm(npropmi,*)
68 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
72 . g11,g22,g33,g12,g21,g23,g32,g13,g31,
73 . l11,l22,l33,l12,l21,l23,l32,l13,l31,
74 . s11,s22,s33,s12,s21,s23,s32,s13
76 REAL,
DIMENSION(:),
ALLOCATABLE :: WA
78 INTEGER I,, NG, , IPT, MT1,IADD, N, J, MLW,
79 . nn1,nn2,iprt,buf, istrain, nuvar, nuvarr,jj(6)
80 TYPE(g_bufel_) ,
POINTER :: GBUF
81 TYPE(l_bufel_) ,
POINTER :: LBUF
83 CALL my_alloc(wa,6*nbf)
89 nn2 = nn1 + (numsph+maxpjet)
94 3 npt ,jale ,ismstr ,jeul ,jtur ,
95 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
96 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
97 6 irep ,iint ,igtyp ,israt ,isrot ,
98 7 icsen ,isorth ,isorthg ,ifailure,jsms )
110 gbuf => elbuf_tab(ng)%GBUF
111 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
112 iprt=ipartsp(1 + nft)
120 IF(el2fa(nn1+n)/=0)
THEN
121 tens(1,el2fa(nn1+n)) = gbuf%SIG(jj(1) + i)
122 tens(2,el2fa(nn1+n)) = gbuf%SIG(jj(2) + i)
123 tens(3,el2fa(nn1+n)) = gbuf%SIG(jj(3) + i)
124 tens(4,el2fa(nn1+n)) = gbuf%SIG(jj(4) + i)
125 tens(5,el2fa(nn1+n)) = gbuf%SIG(jj(5) + i)
126 tens(6,el2fa(nn1+n)) = gbuf%SIG(jj(6) + i)
129 ELSEIF(itens == 4.AND.mlw == 24.
130 . and.nint(pm(56,mt1)) == 1)
THEN
137 tens(1,el2fa(nn1+n)) = lbuf%DGLO(jj(1) + i)
138 tens(2,el2fa(nn1+n)) = lbuf%DGLO(jj(2) + i)
139 tens(3,el2fa(nn1+n)) = lbuf%DGLO(jj(3) + i)
140 tens(4,el2fa(nn1+n)) = lbuf%DGLO(jj(4) + i)
141 tens(5,el2fa(nn1+n)) = lbuf%DGLO(jj(5) + i)
142 tens(6,el2fa(nn1+n)) = lbuf%DGLO(jj(6) + i)
147 l11 = lbuf%DGLO(jj(1) + i)
148 l21 = lbuf%DGLO(jj(2) + i)
149 l31 = lbuf%DGLO(jj(3) + i)
150 l12 = lbuf%DGLO(jj(4) + i)
151 l22 = lbuf%DGLO(jj(5) + i)
152 l32 = lbuf%DGLO(jj(6) + i)
153 l13 = l21*l32-l31*l22
154 l23 = l31*l12-l11*l32
155 l33 = l11*l22-l21*l12
156 g11 = gbuf%GAMA(jj(1) + i)
157 g21 = gbuf%GAMA(jj(2) + i)
158 g31 = gbuf%GAMA(jj(3) + i)
159 g12 = gbuf%GAMA(jj(4) + i)
160 g22 = gbuf%GAMA(jj(5) + i)
161 g32 = gbuf%GAMA(jj(6) + i)
162 g13 = g21*g32-g31*g22
163 g23 = g31*g12-g11*g32
164 g33 = g11*g22-g21*g12
165 s11 =l11*g11+l12*g12+l13*g13
166 s12 =l11*g21+l12*g22+l13*g23
167 s13 =l11*g31+l12*g32+l13*g33
168 s21 =l12*g11+l22*g12+l23*g13
169 s22 =l12*g21+l22*g22+l23*g23
170 s23 =l12*g31+l22*g32+l23*g33
171 s31 =l13*g11+l23*g12+l33*g13
172 s32 =l13*g21+l23*g22+l33*g23
173 s33 =l13*g31+l23*g32+l33*g33
174 tens(1,el2fa(nn1+n)) = g11*s11+g12*s21+g13*s31
175 tens(2,el2fa(nn1+n)) = g21*s12+g22*s22+g23*s32
176 tens(3,el2fa(nn1+n)) = g31*s13+g32*s23+g33*s33
177 tens(4,el2fa(nn1+n)) = g11*s12+g12*s22+g13*s32
178 tens(5,el2fa(nn1+n)) = g21*s13+g22*s23+g23*s33
179 tens(6,el2fa(nn1+n)) = g11*s13+g12*s23+g13*s33
182 ELSEIF(itens == 2)
THEN
186 iprt=ipartsp(1 + nft)
188 istrain= iparg(44,ng)
190 nuvarr = ipm(221,mt1)
191 IF (mlw>=28.AND.mlw/=49)
THEN
194 tens(1,el2fa(nn1+n)) = lbuf%STRA(jj(1) + i)
195 tens(2,el2fa(nn1+n)) = lbuf%STRA(jj(2) + i)
196 tens(3,el2fa(nn1+n)) = lbuf%STRA(jj(3) + i)
197 tens(4,el2fa(nn1+n)) = lbuf%STRA(jj(4) + i)*half
198 tens(5,el2fa(nn1+n)) = lbuf%STRA(jj(5) + i)*half
199 tens(6,el2fa(nn1+n)) = lbuf%STRA(jj(6) + i)*half
201 ELSEIF(mlw == 14)
THEN
204 tens(1,el2fa(nn1+n)) = lbuf%EPE(jj(1) + i)
205 tens(2,el2fa(nn1+n)) = lbuf%EPE(jj(2) + i)
206 tens(3,el2fa(nn1+n)) = lbuf%EPE(jj(3) + i)
207 tens(4,el2fa(nn1+n)) = zero
208 tens(5,el2fa(nn1+n)) = zero
209 tens(6,el2fa(nn1+n)) = zero
211 ELSEIF(mlw == 24)
THEN
214 tens(1,el2fa(nn1+n)) = lbuf%STRA(jj(1) + i)
215 tens(2,el2fa(nn1+n)) = lbuf%STRA(jj(2) + i)
216 tens(3,el2fa(nn1+n)) = lbuf%STRA(jj(3) + i)
217 tens(4,el2fa(nn1+n)) = lbuf%STRA(jj(4) + i)*half
218 tens(5,el2fa(nn1+n)) = lbuf%STRA(jj(5) + i)*half
219 tens(6,el2fa(nn1+n)) = lbuf%STRA(jj(6) + i)*half
221 ELSEIF(istrain == 1)
THEN
222 IF(mlw/=14.AND.mlw/=24.AND.mlw<28.OR.
226 tens(1,el2fa(nn1+n)) = lbuf%STRA(jj(1) + i)
227 tens(2,el2fa(nn1+n)) = lbuf%STRA(jj(2) + i)
228 tens(3,el2fa(nn1+n)) = lbuf%STRA(jj(3) + i)
229 tens(4,el2fa(nn1+n)) = lbuf%STRA(jj(4) + i)*half
230 tens(5,el2fa(nn1+n)) = lbuf%STRA(jj(5) + i)*half
231 tens(6,el2fa(nn1+n)) = lbuf%STRA(jj(6) + i)*half
235 tens(1,el2fa(nn1+n)) = zero
236 tens(2,el2fa(nn1+n)) = zero
237 tens(3,el2fa(nn1+n)) = zero
238 tens(4,el2fa(nn1+n)) = zero
239 tens(5,el2fa(nn1+n)) = zero
240 tens(6,el2fa(nn1+n)) = zero
244 ELSEIF (itens == 5)
THEN
251 tens(1,el2fa(nn1+n)) = lbuf%PLA(jj(1) + i + nel)
252 tens(2,el2fa(nn1+n)) = lbuf%PLA(jj(2) + i + nel)
253 tens(3,el2fa(nn1+n)) = lbuf%PLA(jj(3) + i + nel)
254 tens(4,el2fa(nn1+n)) = lbuf%PLA(jj(4) + i + nel)*half
255 tens(5,el2fa(nn1+n)) = lbuf%PLA(jj(5) + i + nel)*half
256 tens(6,el2fa(nn1+n)) = lbuf%PLA(jj(6) + i + nel)*half
266 IF(el2fa(nn1+n)/=0)
THEN
267 tens(1,el2fa(nn1+n)) = zero
268 tens(2,el2fa(nn1+n)) = zero
269 tens(3,el2fa(nn1+n)) = zero
270 tens(4,el2fa(nn1+n)) = zero
271 tens(5,el2fa(nn1+n)) = zero
272 tens(6,el2fa(nn1+n)) = zero
294 wa(6*n-5) = tens(1,n)
295 wa(6*n-4) = tens(2,n)
296 wa(6*n-3) = tens(3,n)
297 wa(6*n-2) = tens(4,n)
298 wa(6*n-1) = tens(5,n)