36 . PM ,KCVT ,NEL ,EVAR )
42 use element_mod ,
only : nixs
46#include "implicit_f.inc"
50#include "vect01_c.inc"
59 . evar(6,20,mvsiz),x(3,*),pm(npropm,*)
60 INTEGER IPARG(NPARG),IXS(NIXS,*),IXS10(6,*),KCVT ,NEL
61 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_TAB
69 . a_gauss_r,a_gauss_s,a_gauss_t,n1,
70 . a_gauss_r1,a_gauss_s1,a_gauss_t1,
71 . a_gauss_p_r,a_gauss_p_s,a_gauss_p_t
76 . isolnod, nptr, npts, nptt,
77 . is, ir, it,nc(10,mvsiz),nnod,ilay,
80 TYPE(g_bufel_) ,
POINTER :: GBUF
81 TYPE(l_bufel_) ,
POINTER :: LBUF
83 . a_gauss(9,9),evar_tmp(6),
alpha,beta,alpha_1,beta_1,
84 . str_is24(mvsiz,6,8),evar_t10(6,10)
86 . sol_node(3,8), iperm1(10),iperm2(10),nn2
87 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
88 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
94 2 -.577350269189626,0.577350269189626,0. ,
97 3 -.774596669241483,0. ,0.774596669241483,
100 4 -.861136311594053,-.339981043584856,0.339981043584856,
101 4 0.861136311594053,0. ,0. ,
103 5 -.906179845938664,-.538469310105683,0. ,
104 5 0.538469310105683,0.906179845938664,0. ,
106 6 -.932469514203152,-.661209386466265,-.238619186083197,
107 6 0.238619186083197,0.661209386466265,0.932469514203152,
109 7 -.949107912342759,-.741531185599394,-.405845151377397,
110 7 0. ,0.405845151377397,0.741531185599394,
111 7 0.949107912342759,0. ,0. ,
112 8 -.960289856497536,-.796666477413627,-.525532409916329,
113 8 -.183434642495650,0.183434642495650,0.525532409916329,
114 8 0.796666477413627,0.960289856497536,0. ,
115 9 -.968160239507626,-.836031107326636,-.613371432700590,
116 9 -.324253423403809,0. ,0.324253423403809,
117 9 0.613371432700590,0.836031107326636,0.968160239507626/
132 gbuf => elbuf_tab%GBUF
145 IF (kcvt==1.AND.isorth/=0) kcvt=2
153 ELSEIF(isolnod == 4)
THEN
158 ELSEIF(isolnod == 6)
THEN
165 ELSEIF(isolnod == 10)
THEN
172 nc(j+4,i) = ixs10(j,nn1)
177 nptr = elbuf_tab%NPTR
178 npts = elbuf_tab%NPTS
179 nptt = elbuf_tab%NPTT
180 nlay = elbuf_tab%NLAY
183 lbuf => elbuf_tab%BUFLY(1)%LBUF(1,1,1)
188 1 lbuf%STRA, str_is24, gbuf%STRHG,nel)
191 IF(isolnod == 6 .OR. isolnod == 8 .OR.
192 . isolnod == 16 .OR. isolnod == 20)
THEN
195 IF(nlay > 1 .AND. jhbe /= 14)
THEN
201 gama(1:6) = gbuf%GAMA(jj(1:6) + i)
215 IF(sol_node(2,k) == sol_node(2,j))
THEN
217 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1)
219 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1)
221 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1)
223 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1)
225 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1)
227 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1)
229 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1)
231 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1)
233 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1)
235 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1)
237 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1)
239 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1)
248 ELSEIF (sol_node(1,j) == -1 )
THEN
249 a_gauss_r = a_gauss(1,nptr)
250 a_gauss_r1 = a_gauss(2,nptr)
252 . (-one-half*(a_gauss_r1+a_gauss_r))/
253 . (half*(a_gauss_r1-a_gauss_r))
254 ELSEIF(sol_node(1,j) == 1 )
THEN
255 a_gauss_r = a_gauss(nptr-1,nptr)
256 a_gauss_r1 = a_gauss(nptr,nptr)
258 . (one+half*(a_gauss_r1+a_gauss_r))/
259 . (half*(a_gauss_r1-a_gauss_r))
264 ELSEIF (sol_node(2,j) == -1 )
THEN
265 a_gauss_s = a_gauss(1,npts)
266 a_gauss_s1 = a_gauss(2,npts)
268 . (-one-half*(a_gauss_s1+a_gauss_s))/
269 . (half*(a_gauss_s1-a_gauss_s))
270 ELSEIF(sol_node(2,j) == 1 )
THEN
271 a_gauss_s = a_gauss(npts-1,npts)
272 a_gauss_s1 = a_gauss(npts,npts)
274 . (one+half*(a_gauss_s1+a_gauss_s))/
275 . (half*(a_gauss_s1-a_gauss_s))
280 ELSEIF (sol_node(3,j) == -1 )
THEN
281 a_gauss_t = a_gauss(1,nptt)
282 a_gauss_t1 = a_gauss(2,nptt)
284 . (-one-half*(a_gauss_t1+a_gauss_t))/
285 . (half*(a_gauss_t1-a_gauss_t))
286 ELSEIF(sol_node(3,j) == 1 )
THEN
287 a_gauss_t = a_gauss(nptt-1,nptt)
288 a_gauss_t1 = a_gauss(nptt,nptt)
290 . (one+half*(a_gauss_t1+a_gauss_t))/
291 . (half*(a_gauss_t1-a_gauss_t))
294 IF (jhbe == 15 .OR. jhbe == 16)
THEN
298 . (one+sol_node(1,k) * a_gauss_p_r) *
299 . (one+sol_node(3,k) * a_gauss_p_t) )
302 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
303 ip = ir + ( (is-1) + (it-1)*2 )*2
304 evar_tmp(1) = lbuf%STRA(jj(1) + i)
305 evar_tmp(2) = lbuf%STRA(jj(2) + i)
306 evar_tmp(3) = lbuf%STRA(jj(3) + i)
307 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
308 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
309 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
312 1 x, ixs(1,n),kcvt, evar_tmp,
313 2 gama, jhbe, igtyp, isorth)
314 evar(1:6,j,i) = evar(1:6,j,i) + n1 * evar_tmp(1:6)
325 gama(1:6) = gbuf%GAMA(jj(1:6) + i)
335 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
340 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1)
342 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1)
344 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1)
346 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1)
348 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1)
350 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1)
352 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1)
354 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1)
356 IF (sol_node(3,k) == -1 .AND.
358 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1)
360 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1)
362 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1)
371 ELSEIF (sol_node(1,j) == -1 )
THEN
372 a_gauss_r = a_gauss(1,nptr)
373 a_gauss_r1 = a_gauss(2,nptr)
375 . (-one-half*(a_gauss_r1+a_gauss_r))/
376 . (half*(a_gauss_r1-a_gauss_r))
377 ELSEIF(sol_node(1,j) == 1 )
THEN
378 a_gauss_r = a_gauss(nptr-1,nptr)
379 a_gauss_r1 = a_gauss(nptr,nptr)
381 . (one+half*(a_gauss_r1+a_gauss_r))/
382 . (half*(a_gauss_r1-a_gauss_r))
387 ELSEIF (sol_node(2,j) == -1 )
THEN
388 a_gauss_s = a_gauss(1,npts)
389 a_gauss_s1 = a_gauss(2,npts)
391 . (-one-half*(a_gauss_s1+a_gauss_s))/
392 . (half*(a_gauss_s1-a_gauss_s))
393 ELSEIF(sol_node(2,j) == 1 )
THEN
394 a_gauss_s = a_gauss(npts-1,npts)
395 a_gauss_s1 = a_gauss(npts,npts)
397 . (one+half*(a_gauss_s1+a_gauss_s))/
398 . (half*(a_gauss_s1-a_gauss_s))
403 ELSEIF (sol_node(3,j) == -1 )
THEN
404 a_gauss_t = a_gauss(1,nptt)
405 a_gauss_t1 = a_gauss(2,nptt)
407 . (-one-half*(a_gauss_t1+a_gauss_t))/
408 . (half*(a_gauss_t1-a_gauss_t))
409 ELSEIF(sol_node(3,j) == 1 )
THEN
410 a_gauss_t = a_gauss(nptt-1,nptt)
411 a_gauss_t1 = a_gauss(nptt,nptt)
413 . (one+half*(a_gauss_t1+a_gauss_t))/
414 . (half*(a_gauss_t1-a_gauss_t))
418 . (one+sol_node(1,k) * a_gauss_p_r) *
419 . (one+sol_node(2,k) * a_gauss_p_s) *
420 . (one+sol_node(3,k) * a_gauss_p_t) )
422 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
429 IF (jhbe == 24 .AND. gbuf%G_STRHG > 0)
THEN
430 ip = ir + ( (is-1) + (it-1)*2 )*2
431 evar_tmp(1) = str_is24(i,1,ip)
432 evar_tmp(2) = str_is24(i,2,ip)
433 evar_tmp(3) = str_is24(i,3,ip)
434 evar_tmp(4) = str_is24(i,4,ip)*half
435 evar_tmp(5) = str_is24(i,5,ip)*half
436 evar_tmp(6) = str_is24(i,6,ip)*half
438 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
439 evar_tmp(1) = lbuf%STRA(jj(1) + i)
440 evar_tmp(2) = lbuf%STRA(jj(2) + i)
441 evar_tmp(3) = lbuf%STRA(jj(3) + i)
442 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
443 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
444 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
448 1 x, ixs(1,n),kcvt, evar_tmp
449 2 gama, jhbe, igtyp, isorth)
450 evar(1:6,j,i) = evar(1:6,j,i) + n1 * evar_tmp(1:6)
456 ELSEIF(isolnod == 4 )
THEN
462 gama(1) = gbuf%GAMA(jj(1) + i)
463 gama(2) = gbuf%GAMA(jj(2) + i)
464 gama(3) = gbuf%GAMA(jj(3) + i)
465 gama(4) = gbuf%GAMA(jj(4) + i)
466 gama(5) = gbuf%GAMA(jj(5) + i)
467 gama(6) = gbuf%GAMA(jj(6) + i)
479 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(1,1,1)
480 evar_tmp(1) = lbuf%STRA(jj(1) + i)
481 evar_tmp(2) = lbuf%STRA(jj(2) + i)
482 evar_tmp(3) = lbuf%STRA(jj(3) + i)
483 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
484 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
485 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
488 1 x, ixs(1,n),kcvt, evar_tmp,
489 2 gama, jhbe, igtyp, isorth)
491 evar(1:6,j,i) = evar(1:6,j,i) + n1 * evar_tmp(1:6)
494 ELSEIF(isolnod == 10)
THEN
502 gama(1) = gbuf%GAMA(jj(1) + i)
503 gama(2) = gbuf%GAMA(jj(2) + i)
504 gama(3) = gbuf%GAMA(jj(3) + i)
505 gama(4) = gbuf%GAMA(jj(4) + i)
506 gama(5) = gbuf%GAMA(jj(5) + i)
507 gama(6) = gbuf%GAMA(jj(6) + i)
530 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
531 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%STRA(jj(1) + i)
532 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%STRA(jj(2) + i)
533 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%STRA(jj(3) + i)
534 evar_t10(4,j) = evar_t10(4,j)+ n1 *lbuf%STRA(jj(4) + i)*half
535 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%STRA(jj(5) + i)*half
536 evar_t10(6,j) = evar_t10(6,j)+ n1 *lbuf%STRA(jj(6) + i)*half
540 1 x, ixs(1,n), kcvt, evar_t10(1,j),
541 2 gama, jhbe, igtyp, isorth)
546 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
549 evar(1:6,j,i) = evar_t10(1:6,j)