43
44
45
47 USE elbufdef_mod
49 USE my_alloc_mod
50
51
52
53#include "implicit_f.inc"
54
55
56
57#include "vect01_c.inc"
58#include "mvsiz_p.inc"
59#include "com01_c.inc"
60#include "com04_c.inc"
61#include "param_c.inc"
62
63
64
65 my_real func1(3,*),func2(3,*),geo(npropg,*),x(3,*),pm(npropm,*)
66 INTEGER IPARG(NPARG,*),
67 . IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),
68 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),
69 . IXS10(6,*) ,IXS16(8,*) ,IXS20(12,*) ,ITAGPS(*)
70 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
71
72
73
75 . off, p, vonm2, vonm, s1, s2, s12, s3, VALUE,
76 . a1,b1,b2,b3,yeq,f1,m1,m2,m3,
for,
area(mvsiz),
77 . a_gauss_r,a_gauss_s,a_gauss_t,n1,
78 . a_gauss_r1,a_gauss_s1,a_gauss_t1,
79 . a_gauss_p_r,a_gauss_p_s,a_gauss_p_t
80 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: evar
81 INTEGER I,II, NG, NEL, ISS, ISC,,KCVT,
82 . IADD, N, J, MLW,
83 . ISTRAIN,NN, JTURB,MT, IMID, IALEL,IPID,
84 . NN1,NF,OFFSET,K,INC,KK, IUS, NUVAR,
85 . INOD, ISOLNOD, IPRT, LIAD, NPTR, NPTS, NPTT, IPT,
86 . IS, IR, IT, NPTG,NC(20,MVSIZ),NNOD,IEXPAN,IHBE,MPT,ILAY,
87 . ICSIG,DIR,IVISC,JJ(6),IP
88 INTEGER MLW2,NLAY
89 TYPE(G_BUFEL_) ,POINTER :: GBUF
90 TYPE() ,POINTER :: LBUF
92 . a_gauss(9,9),evar_tmp(6),
alpha,beta,alpha_1,beta_1,
93 . jr0(mvsiz),js0(mvsiz),jt0(mvsiz),nu(mvsiz),
94 . rbid(6,mvsiz),
95 . xd1(mvsiz), xd2(mvsiz), xd3(mvsiz), xd4(mvsiz), xd5(mvsiz),
96 . xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
97 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz), yd5(mvsiz),
98 . yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
99 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz), zd5(mvsiz),
100 . zd6(mvsiz), zd7(mvsiz), zd8(mvsiz),
101 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
102 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
103 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
104 . rx(mvsiz),ry(mvsiz),rz(mvsiz),sx(mvsiz),sy(mvsiz),sz(mvsiz),
105 . tx(mvsiz),ty(mvsiz),tz(mvsiz),
106 . xdl(mvsiz), ydl(mvsiz), zdl(mvsiz),str_is24(mvsiz,6,8),
107 . evar_t10(6,10)
108 INTEGER
109 . SOL_NODE(3,8), (10),IPERM2(10),NN2,ITSH
110 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
111 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
112
113 DATA a_gauss /
114 1 0. ,0. ,0. ,
115 1 0. ,0. ,0. ,
116 1 0. ,0. ,0. ,
117 2 -.577350269189626,0.577350269189626,0. ,
118 2 0. ,0. ,0. ,
119 2 0. ,0. ,0. ,
120 3 -.774596669241483,0. ,0.774596669241483,
121 3 0. ,0. ,0. ,
122 3 0. ,0. ,0. ,
123 4 -.861136311594053,-.339981043584856,0.339981043584856,
124 4 0.861136311594053,0. ,0. ,
125 4 0. ,0. ,0. ,
126 5 -.906179845938664,-.538469310105683,0. ,
127 5 0.538469310105683,0.906179845938664,0. ,
128 5 0. ,0. ,0. ,
129 6 -.932469514203152,-.661209386466265,-.238619186083197,
130 6 0.238619186083197,0.661209386466265,0.932469514203152,
131 6 0. ,0. ,0. ,
132 7 -.949107912342759,-.741531185599394,-.405845151377397,
133 7 0. ,0.405845151377397,0.741531185599394,
134 7 0.949107912342759,0. ,0. ,
135 8 -.960289856497536,-.796666477413627,-.525532409916329,
136 8 -.183434642495650,0.183434642495650,0.525532409916329,
137 8 0.796666477413627,0.960289856497536,0. ,
138 9 -.968160239507626,-.836031107326636,-.613371432700590,
139 9 -.324253423403809,0. ,0.324253423403809,
140 9 0.613371432700590,0.836031107326636,0.968160239507626/
141 DATA sol_node /
142 1 -1 ,-1 ,-1 ,
143 2 -1 ,-1 , 1 ,
144 3 1 ,-1 , 1 ,
145 4 1 ,-1 ,-1 ,
146 5 -1 , 1 ,-1 ,
147 6 -1 , 1 , 1 ,
148 7 1 , 1 , 1 ,
149 8 1 , 1 ,-1 /
150
152 beta = zep5854102
153 CALL my_alloc(evar,6,numnod)
154 DO i=1,numnod
155 evar(1,i) = zero
156 evar(2,i) = zero
157 evar(3,i) = zero
158 evar(4,i) = zero
159 evar(5,i) = zero
160 evar(6,i) = zero
161 ENDDO
162 DO ng=1,ngroup
164 ivisc = iparg(61,ng)
165 gbuf => elbuf_tab(ng)%GBUF
167 2 mlw ,nel ,nft ,iad ,ity ,
168 3 npt ,jale ,ismstr ,jeul ,jtur ,
169 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
170 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
171 6 irep ,iint ,igtyp ,israt ,isrot ,
172 7 icsen ,isorth ,isorthg ,ifailure,jsms )
173 mlw2 = mlw
174 IF (iparg(8,ng)==1.OR.mlw==0.OR.mlw==13) cycle
175 icsig=iparg(17,ng)
176 isolnod = iparg(28,ng)
177 lft=1
178 llt=nel
179 nnod = 0
180
181 DO i=1,6
182 jj(i) = nel*(i-1)
183 ENDDO
184
185
186
187
188 IF (ity == 1) THEN
189 gbuf => elbuf_tab(ng)%GBUF
190 IF (kcvt==1.AND.isorth/=0) kcvt=2
191 nnod = isolnod
192 DO i=lft,llt
193 n = i + nft
194 IF(isolnod == 8)THEN
195 DO j = 1,isolnod
196 nc(j,i) = ixs(j+1,n)
197 ENDDO
198 ELSEIF(isolnod == 4)THEN
199 nc(1,i)=ixs(2,n)
200 nc(2,i)=ixs(4,n)
201 nc(3,i)=ixs(7,n)
202 nc(4,i)=ixs(6,n)
203 ELSEIF(isolnod == 6)THEN
204 nc(1,i)=ixs(2,n)
205 nc(2,i)=ixs(3,n)
206 nc(3,i)=ixs(4,n)
207 nc(4,i)=ixs(6,n)
208 nc(5,i)=ixs(7,n)
209 nc(6,i)=ixs(8,n)
210 ELSEIF(isolnod == 10)THEN
211 nc(1,i)=ixs(2,n)
212 nc(2,i)=ixs(4,n)
213 nc(3,i)=ixs(7,n)
214 nc(4,i)=ixs(6,n)
215 nn1 = n - numels8
216 DO j=1,6
217 nc(j+4,i) = ixs10(j,nn1)
218 ENDDO
219 ELSEIF(isolnod == 16)THEN
220 DO j = 1,8
221 nc(j,i) = ixs(j+1,n)
222 ENDDO
223 nn1 = n - (numels8+numels10+numels20)
224 DO j=1,8
225 nc(j+8,i) = ixs16(j,nn1)
226 ENDDO
227 ELSEIF(isolnod == 20)THEN
228 DO j = 1,8
229 nc(j,i) = ixs(j+1,n)
230 ENDDO
231 nn1 = n - (numels8+numels10)
232 DO j=1,12
233 nc(j+8,i) = ixs20(j,nn1)
234 ENDDO
235 ENDIF
236 ENDDO
237 nptr = elbuf_tab(ng)%NPTR
238 npts = elbuf_tab(ng)%NPTS
239 nptt = elbuf_tab(ng)%NPTT
240 nlay = elbuf_tab(ng)%NLAY
241 npt = nptr*npts*nptt
242 nnod = isolnod
243 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22) THEN
244 itsh=1
245 ELSE
246 itsh=0
247 ENDIF
248 IF (jhbe == 24) THEN
249 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
250 nptr = 2
251 npts = 2
252 nptt = 2
253 CALL szstraingps(lbuf%STRA, str_is24, gbuf%STRHG,nel)
254 ENDIF
255
256 IF((isolnod == 4.AND. isrot/=1).OR.(isolnod == 8.AND. jhbe<9))THEN
257
258 DO i=lft,llt
259 n = i + nft
260 IF (kcvt /= 0) THEN
261 IF(kcvt==2)THEN
262 gama(1) = gbuf%GAMA(jj(1) + i)
263 gama(2) = gbuf%GAMA(jj(2) + i)
264 gama(3) = gbuf%GAMA(jj(3) + i)
265 gama(4) = gbuf%GAMA(jj(4) + i)
266 gama(5) = gbuf%GAMA(jj(5) + i)
267 gama(6) = gbuf%GAMA(jj(6) + i)
268 ELSE
269 gama(1)=one
270 gama(2)=zero
271 gama(3)=zero
272 gama(4)=zero
273 gama(5)=one
274 gama(6)=zero
275 END IF
276 END IF
277 n1 = fourth
278 ilay = 1
279 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(1,1,1)
280 evar_tmp(1) = lbuf%STRA(jj(1) + i)
281 evar_tmp(2) = lbuf%STRA(jj(2) + i)
282 evar_tmp(3) = lbuf%STRA(jj(3) + i)
283 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
284 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
285 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
286 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
287 DO j=1,isolnod
288 evar(1:6,nc(j,i)) = evar(1:6,nc(j,i)) +evar_tmp(1:6)
289 ENDDO
290 ENDDO
291 ELSEIF(isolnod == 6 .OR. isolnod == 8 .OR. isolnod == 16 .OR. isolnod == 20)THEN
292
293
294 IF(itsh > 0 .AND. jhbe /= 14) THEN
295 DO i=lft,llt
296 ii = 6*(i-1)
297 n = i + nft
298 IF (kcvt /= 0) THEN
299 IF(kcvt==2)THEN
300 gama(1) = gbuf%GAMA(jj(1) + i)
301 gama(2) = gbuf%GAMA(jj(2) + i)
302 gama(3) = gbuf%GAMA(jj(3) + i)
303 gama(4) = gbuf%GAMA(jj(4) + i)
304 gama(5) = gbuf%GAMA(jj(5) + i)
305 gama(6) = gbuf%GAMA(jj(6) + i)
306 ELSE
307 gama(1)=one
308 gama(2)=zero
309 gama(3)=zero
310 gama(4)=zero
311 gama(5)=one
312 gama(6)=zero
313 END IF
314 END IF
315 npts = nlay
316
317 DO j=1,8
318 DO k=1,8
319 IF(sol_node(2,k) == sol_node(2,j)) THEN
320 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) ir = 1
321 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) ir =
max(1,nptr-1)
322 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) ir = nptr
323 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) ir =
min(nptr,2)
324 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1) is = 1
325 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) is =
max(1,npts-1)
326 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) is = npts
327 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) is =
min(npts,2)
328 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) it = 1
329 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) it =
max(1,nptt-1)
330 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) it = nptt
331 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1) it =
min(nptt,2)
332
333 a_gauss_p_r = zero
334 a_gauss_p_s = zero
335 a_gauss_p_t = zero
336
337 IF (nptr == 1)THEN
338 a_gauss_p_r = zero
339 ELSEIF (sol_node(1,j) == -1 )THEN
340 a_gauss_r = a_gauss(1,nptr)
341 a_gauss_r1 = a_gauss(2,nptr)
342 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r
343 ELSEIF(sol_node(1,j) == 1 )THEN
344 a_gauss_r = a_gauss(nptr-1,nptr)
345 a_gauss_r1 = a_gauss(nptr,nptr)
346 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
347 ENDIF
348
349 IF (npts == 1)THEN
350 a_gauss_p_s = zero
351 ELSEIF (sol_node(2,j) == -1 )THEN
352 a_gauss_s = a_gauss(1,npts)
353 a_gauss_s1 = a_gauss(2,npts)
354 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
355 ELSEIF(sol_node(2,j) == 1 )THEN
356 a_gauss_s = a_gauss(npts-1,npts)
357 a_gauss_s1 = a_gauss(npts,npts)
358 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
359 ENDIF
360
361 IF (nptt == 1)THEN
362 a_gauss_p_t = zero
363 ELSEIF (sol_node(3,j) == -1 )THEN
364 a_gauss_t = a_gauss(1,nptt)
365 a_gauss_t1 = a_gauss(2,nptt)
366 a_gauss_p_t = (-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
367 ELSEIF(sol_node(3,j) == 1 )THEN
368 a_gauss_t = a_gauss(nptt-1,nptt)
369 a_gauss_t1 = a_gauss(nptt,nptt)
370 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
371 ENDIF
372
373 IF (jhbe == 15 .OR. jhbe == 16) THEN
374 ilay = is
375 is = 1
376 n1 = fourth*( (one+sol_node(1,k) * a_gauss_p_r) * (one+sol_node(3,k) * a_gauss_p_t) )
377 ENDIF
378
379 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
380 ip = ir + ( (is-1) + (it-1)*2 )*2
381 evar_tmp(1) = lbuf%STRA(jj(1) + i)
382 evar_tmp(2) = lbuf%STRA(jj(2) + i)
383 evar_tmp(3) = lbuf%STRA(jj(3) + i)
384 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
385 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
386 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
387 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
388 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
389 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
390 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1 * evar_tmp(3)
391 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
392 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
393 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp(6)
394 ENDIF
395 ENDDO
396 ENDDO
397 ENDDO
398 ELSE
399 DO i=lft,llt
400 ii = 6*(i-1)
401 n = i + nft
402 IF (kcvt /= 0) THEN
403 IF(kcvt==2)THEN
404 gama(1) = gbuf%GAMA(jj(1) + i)
405 gama(2) = gbuf%GAMA(jj(2) + i)
406 gama(3) = gbuf%GAMA(jj(3) + i)
407 gama(4) = gbuf%GAMA(jj(4) + i)
408 gama(5) = gbuf%GAMA(jj(5) + i)
409 gama(6) = gbuf%GAMA(jj(6) + i)
410 ELSE
411 gama(1)=one
412 gama(2)=zero
413 gama(3)=zero
414 gama(4)=zero
415 gama(5)=one
416 gama(6)=zero
417 END IF
418 END IF
419 IF(itsh>0) nptt = nlay
420 DO j=1,8
421 DO k=1,8
422 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) is = 1
423 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) is =
max(1,npts-1)
424 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) is = npts
425 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) is =
min(npts,2)
426 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1) it = 1
427 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) it =
max(1,nptt-1)
428 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) it = nptt
429 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) it =
min(nptt,2)
430 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) ir = 1
431 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) ir =
max(1,nptr-1)
432 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) ir = nptr
433 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1) ir =
min(nptr,2)
434 a_gauss_p_r = zero
435 a_gauss_p_s = zero
436 a_gauss_p_t = zero
437 IF (nptr == 1)THEN
438 a_gauss_p_r = zero
439 ELSEIF (sol_node(1,j) == -1 )THEN
440 a_gauss_r = a_gauss(1,nptr)
441 a_gauss_r1 = a_gauss(2,nptr)
442 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
443 ELSEIF(sol_node(1,j) == 1 )THEN
444 a_gauss_r = a_gauss(nptr-1,nptr)
445 a_gauss_r1 = a_gauss(nptr,nptr)
446 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
447 ENDIF
448
449 IF (npts == 1)THEN
450 a_gauss_p_s = zero
451 ELSEIF (sol_node(2,j) == -1 )THEN
452 a_gauss_s = a_gauss(1,npts)
453 a_gauss_s1 = a_gauss(2,npts)
454 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/ (half*(a_gauss_s1-a_gauss_s))
455 ELSEIF(sol_node(2,j) == 1 )THEN
456 a_gauss_s = a_gauss(npts-1,npts)
457 a_gauss_s1 = a_gauss(npts,npts)
458 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s)
459 ENDIF
460
461 IF (nptt == 1)THEN
462 a_gauss_p_t = zero
463 ELSEIF (sol_node(3,j) == -1 )THEN
464 a_gauss_t = a_gauss(1,nptt)
465 a_gauss_t1 = a_gauss(2,nptt)
466 a_gauss_p_t = (-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
467 ELSEIF(sol_node(3,j) == 1 )THEN
468 a_gauss_t = a_gauss(nptt-1,nptt)
469 a_gauss_t1 = a_gauss(nptt,nptt)
470 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
471 ENDIF
472
473 n1 = one_over_8*((one+sol_node(1,k)*a_gauss_p_r)*(one+sol_node(2,k)*a_gauss_p_s)*(one+sol_node(3,k)*a_gauss_p_t))
474
475 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22) THEN
476 ilay = it
477 it = 1
478 ELSE
479 ilay = 1
480 ENDIF
481
482 IF (jhbe == 24 .AND. gbuf%G_STRHG > 0) THEN
483 ip = ir + ( (is-1) + (it-1)*2 )*2
484 evar_tmp(1) = str_is24(i,1,ip)
485 evar_tmp(2) = str_is24(i,2,ip)
486 evar_tmp(3) = str_is24(i,3,ip)
487 evar_tmp(4) = str_is24(i,4,ip)*half
488 evar_tmp(5) = str_is24(i,5,ip)*half
489 evar_tmp(6) = str_is24(i,6,ip)*half
490 ELSE
491 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
492 evar_tmp(1) = lbuf%STRA(jj(1) + i)
493 evar_tmp(2) = lbuf%STRA(jj(2) + i)
494 evar_tmp(3) = lbuf%STRA(jj(3) + i)
495 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
496 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
497 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
498 ENDIF
499 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
500 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
501 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
502 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1 * evar_tmp(3)
503 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
504 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
505 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp(6)
506 ENDDO
507 ENDDO
508 ENDDO
509 ENDIF
510
511 ELSEIF(isolnod == 10)THEN
512
515 DO i=lft,llt
516 n = i + nft
517 IF (kcvt /= 0) THEN
518 IF(kcvt==2)THEN
519 gama(1) = gbuf%GAMA(jj(1) + i)
520 gama(2) = gbuf%GAMA(jj(2) + i)
521 gama(3) = gbuf%GAMA(jj(3) + i)
522 gama(4) = gbuf%GAMA(jj(4) + i)
523 gama(5) = gbuf%GAMA(jj(5) + i)
524 gama(6) = gbuf%GAMA(jj(6) + i)
525 ELSE
526 gama(1)=one
527 gama(2)=zero
528 gama(3)=zero
529 gama(4)=zero
530 gama(5)=one
531 gama(6)=zero
532 END IF
533 END IF
534 DO j=1,4
535 evar_t10(1:6,j)=zero
536 DO k=1,4
537 ir = k
538 is = 1
539 it = 1
540 IF (j==k) THEN
541 n1 = beta_1
542 ELSE
543 n1 = alpha_1
544 ENDIF
545 ilay = 1
546 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
547 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%STRA(jj(1) + i)
548 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%STRA(jj(2) + i)
549 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%STRA(jj(3) + i)
550 evar_t10(4,j) = evar_t10(4,j)+ n1 *lbuf%STRA(jj(4) + i)*half
551 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%STRA(jj(5) + i)*half
552 evar_t10(6,j) = evar_t10(6,j)+ n1 *lbuf%STRA(jj(6) + i)*half
553 ENDDO
554 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_t10(1,j), gama, jhbe, igtyp, isorth)
555 ENDDO
556 DO j=5,10
557 nn1=iperm1(j)
558 nn2=iperm2(j)
559 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
560 END DO
561 DO j=1,10
562 evar(1,nc(j,i)) = evar(1,nc(j,i)) + evar_t10(1,j)
563 evar(2,nc(j,i)) = evar(2,nc(j,i)) + evar_t10(2,j)
564 evar(3,nc(j,i)) = evar(3,nc(j,i)) + evar_t10(3,j)
565 evar(4,nc(j,i)) = evar(4,nc(j,i)) + evar_t10(4,j)
566 evar(5,nc(j,i)) = evar(5,nc(j,i)) + evar_t10(5,j)
567 evar(6,nc(j,i)) = evar(6,nc(j,i)) + evar_t10(6,j)
568 ENDDO
569 ENDDO
570 ENDIF
571 DO i=lft,llt
572 DO j = 1,nnod
573 n = nc(j,i)
574 IF (n>0)THEN
575 DO k = 1,3
576 func1(k,n) = evar(k,n)
577 func2(k,n) = evar(k+3,n)
578 ENDDO
579 itagps(n) = itagps(n)+1
580 ENDIF
581 ENDDO
582 ENDDO
583 ENDIF
584
585 ENDDO
586 DEALLOCATE(evar)
587
588 RETURN
integer, dimension(:,:), allocatable ipart_ok