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,
77 . isolnod, nptr, npts, nptt,
78 . is, ir, it,nc(10,mvsiz),nnod,ilay,
79 . ivisc,jj(6),mat(mvsiz)
81 TYPE(g_bufel_) ,
POINTER :: GBUF
82TYPE(l_bufel_) ,
POINTER :: LBUF
84 . a_gauss(9,9),evar_tmp(6),
alpha,beta,alpha_1,beta_1,
85 . jr0(mvsiz),js0(mvsiz),jt0(mvsiz),nu(mvsiz),sig_hour(mvsiz,6),
86 . evar_t10(6,10),a_heph(3,8)
88 . sol_node(3,8), iperm1(10),iperm2(10),nn2
89 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
90 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
96 2 -.577350269189626,0.577350269189626,0. ,
99 3 -.774596669241483,0. ,0.774596669241483,
102 4 -.861136311594053,-.339981043584856,0.339981043584856,
103 4 0.861136311594053,0. ,0. ,
105 5 -.906179845938664,-.538469310105683,0. ,
106 5 0.538469310105683,0.906179845938664,0. ,
108 6 -.932469514203152,-.661209386466265,-.238619186083197,
109 6 0.238619186083197,0.661209386466265,0.932469514203152,
111 7 -.949107912342759,-.741531185599394,-.405845151377397,
112 7 0. ,0.405845151377397,0.741531185599394,
113 7 0.949107912342759,0. ,0. ,
114 8 -.960289856497536,-.796666477413627,-.525532409916329,
115 8 -.183434642495650,0.183434642495650,0.525532409916329,
116 8 0.796666477413627,0.960289856497536,0. ,
117 9 -.968160239507626,-.836031107326636,-.613371432700590,
118 9 -.324253423403809,0. ,0.324253423403809,
119 9 0.613371432700590,0.836031107326636,0.968160239507626/
148 evar(1:6,1:20,1:mvsiz)=zero
163 gbuf => elbuf_tab%GBUF
164 IF (kcvt==1.AND.isorth/=0) kcvt=2
172 ELSEIF(isolnod == 4)
THEN
177 ELSEIF(isolnod == 6)
THEN
184 ELSEIF(isolnod == 10)
THEN
191 nc(j+4,i) = ixs10(j,nn1)
212 nptr = elbuf_tab%NPTR
213 npts = elbuf_tab%NPTS
214 nptt = elbuf_tab%NPTT
215 nlay = elbuf_tab%NLAY
220 CALL pre_heph(x,ixs,jr0,js0,jt0,pm,mat,nu,nft,nel)
223 IF(isolnod == 6 .OR. isolnod == 8 )
THEN
226 IF(nlay > 1 .AND. jhbe /= 14)
THEN
231 gama(1) = gbuf%GAMA(jj(1) + i)
232 gama(2) = gbuf%GAMA(jj(2) + i)
233 gama(3) = gbuf%GAMA(jj(3) + i)
234 gama(4) = gbuf%GAMA(jj(4) + i)
235 gama(5) = gbuf%GAMA(jj(5) + i)
236 gama(6) = gbuf%GAMA(jj(6) + i)
248 DO j=1,
min(8,isolnod)
249 DO k=1,
min(8,isolnod)
250 IF(sol_node(2,k) == sol_node(2,j))
THEN
252 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1)
254 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1)
256 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1)
258 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1)
260 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1)
262 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1)
264 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1)
266 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1)
268 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1)
270 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1)
272 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1)
274 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1)
283 ELSEIF (sol_node(1,j) == -1 )
THEN
284 a_gauss_r = a_gauss(1,nptr)
285 a_gauss_r1 = a_gauss(2,nptr)
287 . (-one-half*(a_gauss_r1+a_gauss_r))/
288 . (half*(a_gauss_r1-a_gauss_r))
289 ELSEIF(sol_node(1,j) == 1 )
THEN
290 a_gauss_r = a_gauss(nptr-1,nptr)
291 a_gauss_r1 = a_gauss(nptr,nptr)
293 . (one+half*(a_gauss_r1+a_gauss_r))/
294 . (half*(a_gauss_r1-a_gauss_r))
299 ELSEIF (sol_node(2,j) == -1 )
THEN
300 a_gauss_s = a_gauss(1,npts)
301 a_gauss_s1 = a_gauss(2,npts)
303 . (-one-half*(a_gauss_s1+a_gauss_s))/
304 . (half*(a_gauss_s1-a_gauss_s))
305 ELSEIF(sol_node(2,j) == 1 )
THEN
306 a_gauss_s = a_gauss(npts-1,npts)
307 a_gauss_s1 = a_gauss(npts,npts)
309 . (one+half*(a_gauss_s1+a_gauss_s))/
310 . (half*(a_gauss_s1-a_gauss_s))
315 ELSEIF (sol_node(3,j) == -1 )
THEN
316 a_gauss_t = a_gauss(1,nptt)
317 a_gauss_t1 = a_gauss(2,nptt)
319 . (-one-half*(a_gauss_t1+a_gauss_t))/
320 . (half*(a_gauss_t1-a_gauss_t))
321 ELSEIF(sol_node(3,j) == 1 )
THEN
322 a_gauss_t = a_gauss(nptt-1,nptt)
323 a_gauss_t1 = a_gauss(nptt,nptt)
325 . (one+half*(a_gauss_t1+a_gauss_t))/
326 . (half*(a_gauss_t1-a_gauss_t))
329 IF (jhbe == 15 .OR. jhbe == 16)
THEN
333 . (one+sol_node(1,k) * a_gauss_p_r) *
334 . (one+sol_node(3,k) * a_gauss_p_t) )
337 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
338 evar_tmp(1:6) = lbuf%SIG(jj(1:6) + i)
340 evar_tmp(1:6) = evar_tmp(1:6) + lbuf%VISC(jj(1:6) + i)
344 1 x, ixs(1,n),kcvt, evar_tmp,
345 2 gama, jhbe, igtyp, isorth)
346 evar(1:6,j,i) = evar(1:6,j,i)+ n1 * evar_tmp(1:6)
351 ELSEIF (jhbe == 24)
THEN
356 gama(1:6) = gbuf%GAMA(jj(1:6) + i)
373 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(1,1,1)
375 CALL szsigpara(jr0 ,js0 ,jt0 ,gbuf%HOURG ,gbuf%SIG ,
376 . sig_hour ,ksi ,eta ,zeta ,nu ,nel , i)
377 evar_tmp(1:6) = sig_hour(i,1:6)
379 evar_tmp(1:6) =evar_tmp(1:6)+ lbuf%VISC(jj(1:6) + i)
383 1 x, ixs(1,n),kcvt, evar_tmp,
384 2 gama, jhbe, igtyp, isorth)
385 evar(1:6,j,i) = evar_tmp(1:6)
394 gama(1:6) = gbuf%GAMA(jj(1:6) + i)
404 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
407 DO j=1,
min(8,isolnod)
408 DO k=1,
min(8,isolnod)
409 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1)
411 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1)
413 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1)
415 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1)
417 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1)
419 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1)
421 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1)
423 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1)
425 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1)
427 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1)
429 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1)
431 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1)
440 ELSEIF (sol_node(1,j) == -1 )
THEN
441 a_gauss_r = a_gauss(1,nptr)
442 a_gauss_r1 = a_gauss(2,nptr)
444 . (-one-half*(a_gauss_r1+a_gauss_r))/
445 . (half*(a_gauss_r1-a_gauss_r))
446 ELSEIF(sol_node(1,j) == 1 )
THEN
447 a_gauss_r = a_gauss(nptr-1,nptr)
448 a_gauss_r1 = a_gauss(nptr,nptr)
450 . (one+half*(a_gauss_r1+a_gauss_r))/
451 . (half*(a_gauss_r1-a_gauss_r))
456 ELSEIF (sol_node(2,j) == -1 )
THEN
457 a_gauss_s = a_gauss(1,npts)
458 a_gauss_s1 = a_gauss(2,npts)
460 . (-one-half*(a_gauss_s1+a_gauss_s))/
461 . (half*(a_gauss_s1-a_gauss_s))
462 ELSEIF(sol_node(2,j) == 1 )
THEN
463 a_gauss_s = a_gauss(npts-1,npts)
464 a_gauss_s1 = a_gauss(npts,npts)
466 . (one+half*(a_gauss_s1+a_gauss_s))/
467 . (half*(a_gauss_s1-a_gauss_s))
472 ELSEIF (sol_node(3,j) == -1 )
THEN
473 a_gauss_t = a_gauss(1,nptt)
474 a_gauss_t1 = a_gauss(2,nptt)
476 . (-one-half*(a_gauss_t1+a_gauss_t))/
477 . (half*(a_gauss_t1-a_gauss_t))
478 ELSEIF(sol_node(3,j) == 1 )
THEN
479 a_gauss_t = a_gauss(nptt-1,nptt)
480 a_gauss_t1 = a_gauss(nptt,nptt)
482 . (one+half*(a_gauss_t1+a_gauss_t))/
483 . (half*(a_gauss_t1-a_gauss_t))
487 . (one+sol_node(1,k) * a_gauss_p_r) *
488 . (one+sol_node(2,k) * a_gauss_p_s) *
489 . (one+sol_node(3,k) * a_gauss_p_t) )
491 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
502 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
504 evar_tmp(1) = lbuf%SIG(jj(1) + i)
505 evar_tmp(2) = lbuf%SIG(jj(2) + i)
506 evar_tmp(3) = lbuf%SIG(jj(3) + i)
507 evar_tmp(4) = lbuf%SIG(jj(4) + i)
508 evar_tmp(5) = lbuf%SIG(jj(5) + i)
509 evar_tmp(6) = lbuf%SIG(jj(6) + i)
511 evar_tmp(1) =evar_tmp(1)+ lbuf%VISC(jj(1) + i
512 evar_tmp(2) =evar_tmp(2)+ lbuf%VISC(jj(2) + i)
513 evar_tmp(3) =evar_tmp(3)+ lbuf%VISC(jj(3) + i)
514 evar_tmp(4) =evar_tmp(4)+ lbuf%VISC(jj(4) + i)
515 evar_tmp(5) =evar_tmp(5)+ lbuf%VISC(jj(5) + i)
516 evar_tmp(6) =evar_tmp(6)+ lbuf%VISC(jj(6) + i)
520 1 x, ixs(1,n),kcvt, evar_tmp,
521 2 gama, jhbe, igtyp, isorth)
522 evar(1:6,j,i) = evar(1:6,j,i)+ n1 * evar_tmp(1:6)
528 ELSEIF(isolnod == 4 )
THEN
534 gama(1) = gbuf%GAMA(jj(1) + i)
535 gama(2) = gbuf%GAMA(jj(2) + i)
536 gama(3) = gbuf%GAMA(jj(3) + i)
537 gama(4) = gbuf%GAMA(jj(4) + i)
538 gama(5) = gbuf%GAMA(jj(5) + i)
539 gama(6) = gbuf%GAMA(jj(6) + i)
551 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(1,1,1)
552 evar_tmp(1) = lbuf%SIG(jj(1) + i)
553 evar_tmp(2) = lbuf%SIG(jj(2) + i)
554 evar_tmp(3) = lbuf%SIG(jj(3) + i)
555 evar_tmp(4) = lbuf%SIG(jj(4) + i)
557 evar_tmp(6) = lbuf%SIG(jj(6) + i)
559 evar_tmp(1) =evar_tmp(1)+ lbuf%VISC(jj(1) + i)
560 evar_tmp(2) =evar_tmp(2)+ lbuf%VISC(jj(2) + i)
561 evar_tmp(3) =evar_tmp(3)+ lbuf%VISC(jj(3) + i)
562 evar_tmp(4) =evar_tmp(4)+ lbuf%VISC(jj(4) + i)
563 evar_tmp(5) =evar_tmp(5)+ lbuf%VISC(jj(5) + i)
564 evar_tmp(6) =evar_tmp(6)+ lbuf%VISC(jj(6) + i)
568 1 x, ixs(1,n),kcvt, evar_tmp,
569 2 gama, jhbe, igtyp, isorth)
571 evar(1:6,j,i) = n1 * evar_tmp(1:6)
574 ELSEIF(isolnod == 10)
THEN
582 gama(1) = gbuf%GAMA(jj(1) + i)
583 gama(2) = gbuf%GAMA(jj(2) + i)
584 gama(3) = gbuf%GAMA(jj(3) + i)
585 gama(4) = gbuf%GAMA(jj(4) + i)
586 gama(5) = gbuf%GAMA(jj
587 gama(6) = gbuf%GAMA(jj(6) + i)
610 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
611 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%SIG(jj(1) + i)
612 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%SIG(jj(2) + i)
613 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%SIG(jj(3) + i)
614 evar_t10(4,j) = evar_t10(4,j)+ n1 *lbuf%SIG(jj(4) + i)
615 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%SIG(jj(5) + i)
616 evar_t10(6,j) = evar_t10(6,j)+ n1 *lbuf%SIG(jj(6) + i)
618 evar_t10(1,j) =evar_t10(1,j)+ n1 *lbuf%VISC(jj(1) + i)
619 evar_t10(2,j) =evar_t10(2,j)+ n1 *lbuf%VISC(jj(2) + i)
620 evar_t10(3,j) =evar_t10(3,j)+ n1 *lbuf%VISC
621 evar_t10(4,j) =evar_t10(4,j)+ n1 *lbuf%VISC(jj(4) + i)
622 evar_t10(5,j) =evar_t10(5,j)+ n1 *lbuf%VISC(jj(5) + i)
623 evar_t10(6,j) =evar_t10(6,j)+ n1 *lbuf%VISC(jj(6) + i)
628 1 x, ixs(1,n), kcvt, evar_t10(1,j),
629 2 gama, jhbe, igtyp, isorth)
634 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
637 evar(1:6,j,i) = evar_t10(1:6,j)