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