35 . PM ,KCVT ,NEL ,EVAR )
44#include "implicit_f.inc"
48#include "vect01_c.inc"
57 . evar(6,20,mvsiz),x(3,*),pm(npropm,*)
58 INTEGER IPARG(NPARG),IXS(NIXS,*),IXS10(6,*),KCVT ,NEL
59 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_TAB
65 . gama(6),off, p, vonm2, vonm, s1, s2, s12, s3,
VALUE,
66 . a1,b1,b2,b3,yeq,f1,m1,m2,m3,
for,
area(mvsiz),
67 . a_gauss_r,a_gauss_s,a_gauss_t,n1,
68 . a_gauss_r1,a_gauss_s1,a_gauss_t1,
69 . a_gauss_p_r,a_gauss_p_s,a_gauss_p_t,
71 INTEGER I,II, ISS, ISC,NBGAMA,
73 . istrain,nn, jturb,mt, imid, ialel,ipid,
74 . nn1,nf,offset,k,inc,kk, ius, nuvar,
75 . inod, isolnod, iprt, liad, nptr, npts, nptt, ipt,
76 . is, ir, it, nptg,nc(10,mvsiz),nnod,iexpan,ihbe,mpt,ilay,
77 . icsig,dir,ivisc,jj(6),mat(mvsiz)
79 TYPE(g_bufel_) ,
POINTER :: GBUF
80 TYPE(l_bufel_) ,
POINTER :: LBUF
82 . a_gauss(9,9),evar_tmp(6),
alpha,beta,alpha_1,beta_1,
83 . jr0(mvsiz),js0(mvsiz),jt0(mvsiz),nu(mvsiz),sig_hour(mvsiz,6),
84 . evar_t10(6,10),a_heph(3,8)
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/
146 evar(1:6,1:20,1:mvsiz)=zero
161 gbuf => elbuf_tab%GBUF
162 IF (kcvt==1.AND.isorth/=0) kcvt=2
170 ELSEIF(isolnod == 4)
THEN
175 ELSEIF(isolnod == 6)
THEN
182 ELSEIF(isolnod == 10)
THEN
210 nptr = elbuf_tab%NPTR
211 npts = elbuf_tab%NPTS
212 nptt = elbuf_tab%NPTT
213 nlay = elbuf_tab%NLAY
218 CALL pre_heph(x,ixs,jr0,js0,jt0,pm,mat,nu,nft,nel)
221 IF(isolnod == 6 .OR. isolnod == 8 )
THEN
229 gama(1) = gbuf%GAMA(jj(1) + i)
230 gama(2) = gbuf%GAMA(jj(2) + i)
231 gama(3) = gbuf%GAMA(jj(3) + i)
232 gama(4) = gbuf%GAMA(jj(4) + i)
233 gama(5) = gbuf%GAMA(jj(5) + i)
234 gama(6) = gbuf%GAMA(jj(6) + i)
246 DO j=1,
min(8,isolnod)
247 DO k=1,
min(8,isolnod)
248 IF(sol_node(2,k) == sol_node(2,j))
THEN
250 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1)
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(2,k) == -1 .AND. sol_node(2,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(3,k) == -1 .AND. sol_node(3,j)
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)
281 ELSEIF (sol_node(1,j) == -1 )
THEN
282 a_gauss_r = a_gauss(1,nptr)
283 a_gauss_r1 = a_gauss(2,nptr)
285 . (-one-half*(a_gauss_r1+a_gauss_r))/
286 . (half*(a_gauss_r1-a_gauss_r))
287 ELSEIF(sol_node(1,j) == 1 )
THEN
288 a_gauss_r = a_gauss(nptr-1,nptr)
289 a_gauss_r1 = a_gauss(nptr,nptr)
291 . (one+half*(a_gauss_r1+a_gauss_r))/
292 . (half*(a_gauss_r1-a_gauss_r))
297 ELSEIF (sol_node(2,j) == -1 )
THEN
298 a_gauss_s = a_gauss(1,npts)
299 a_gauss_s1 = a_gauss(2,npts)
301 . (-one-half*(a_gauss_s1+a_gauss_s))/
302 . (half*(a_gauss_s1-a_gauss_s))
303 ELSEIF(sol_node(2,j) == 1 )
THEN
304 a_gauss_s = a_gauss(npts-1,npts)
305 a_gauss_s1 = a_gauss(npts,npts)
307 . (one+half*(a_gauss_s1+a_gauss_s))/
308 . (half*(a_gauss_s1-a_gauss_s))
313 ELSEIF (sol_node(3,j) == -1 )
THEN
314 a_gauss_t = a_gauss(1,nptt)
315 a_gauss_t1 = a_gauss(2,nptt)
317 . (-one-half*(a_gauss_t1+a_gauss_t))/
318 . (half*(a_gauss_t1-a_gauss_t))
319 ELSEIF(sol_node(3,j) == 1 )
THEN
320 a_gauss_t = a_gauss(nptt-1,nptt)
321 a_gauss_t1 = a_gauss(nptt,nptt)
323 . (one+half*(a_gauss_t1+a_gauss_t))/
324 . (half*(a_gauss_t1-a_gauss_t))
327 IF (jhbe == 15 .OR. jhbe == 16)
THEN
331 . (one+sol_node(1,k) * a_gauss_p_r) *
332 . (one+sol_node(3,k) * a_gauss_p_t) )
335 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
336 evar_tmp(1:6) = lbuf%SIG(jj(1:6) + i)
338 evar_tmp(1:6) = evar_tmp(1:6) + lbuf%VISC(jj(1:6) + i)
342 1 x, ixs(1,n),kcvt, evar_tmp,
343 2 gama, jhbe, igtyp, isorth)
344 evar(1:6,j,i) = evar(1:6,j,i)+ n1 * evar_tmp(1:6)
349 ELSEIF (jhbe == 24)
THEN
354 gama(1:6) = gbuf%GAMA(jj(1:6) + i)
371 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(1,1,1)
373 CALL szsigpara(jr0 ,js0 ,jt0 ,gbuf%HOURG ,gbuf%SIG ,
374 . sig_hour ,ksi ,eta ,zeta ,nu ,nel , i)
375 evar_tmp(1:6) = sig_hour(i,1:6)
377 evar_tmp(1:6) =evar_tmp(1:6)+ lbuf%VISC(jj(1:6) + i)
381 1 x, ixs(1,n),kcvt, evar_tmp,
382 2 gama, jhbe, igtyp, isorth)
383 evar(1:6,j,i) = evar_tmp(1:6)
392 gama(1:6) = gbuf%GAMA(jj(1:6) + i)
402 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
405 DO j=1,
min(8,isolnod)
406 DO k=1,
min(8,isolnod)
407 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1)
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(2,k) == -1 .AND. sol_node(2,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(3,k) == -1 .AND. sol_node(3,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)
438 ELSEIF (sol_node(1,j) == -1 )
THEN
439 a_gauss_r = a_gauss(1,nptr)
440 a_gauss_r1 = a_gauss(2,nptr)
442 . (-one-half*(a_gauss_r1+a_gauss_r))/
443 . (half*(a_gauss_r1-a_gauss_r))
444 ELSEIF(sol_node(1,j) == 1 )
THEN
445 a_gauss_r = a_gauss(nptr-1,nptr)
446 a_gauss_r1 = a_gauss(nptr,nptr)
448 . (one+half*(a_gauss_r1+a_gauss_r))/
449 . (half*(a_gauss_r1-a_gauss_r))
454 ELSEIF (sol_node(2,j) == -1 )
THEN
455 a_gauss_s = a_gauss(1,npts)
456 a_gauss_s1 = a_gauss(2,npts)
458 . (-one-half*(a_gauss_s1+a_gauss_s))/
459 . (half*(a_gauss_s1-a_gauss_s))
460 ELSEIF(sol_node(2,j) == 1 )
THEN
461 a_gauss_s = a_gauss(npts-1,npts)
462 a_gauss_s1 = a_gauss(npts,npts)
464 . (one+half*(a_gauss_s1+a_gauss_s))/
465 . (half*(a_gauss_s1-a_gauss_s))
470 ELSEIF (sol_node(3,j) == -1 )
THEN
471 a_gauss_t = a_gauss(1,nptt)
472 a_gauss_t1 = a_gauss(2,nptt)
474 . (-one-half*(a_gauss_t1+a_gauss_t))/
475 . (half*(a_gauss_t1-a_gauss_t))
476 ELSEIF(sol_node(3,j) == 1 )
THEN
477 a_gauss_t = a_gauss(nptt-1,nptt)
478 a_gauss_t1 = a_gauss(nptt,nptt)
480 . (one+half*(a_gauss_t1+a_gauss_t))/
481 . (half*(a_gauss_t1-a_gauss_t))
485 . (one+sol_node(1,k) * a_gauss_p_r) *
486 . (one+sol_node(2,k) * a_gauss_p_s) *
489 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
500 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
502 evar_tmp(1) = lbuf%SIG(jj(1) + i)
503 evar_tmp(2) = lbuf%SIG(jj(2) + i)
504 evar_tmp(3) = lbuf%SIG(jj(3) + i)
505 evar_tmp(4) = lbuf%SIG(jj(4) + i)
506 evar_tmp(5) = lbuf%SIG(jj(5) + i)
507 evar_tmp(6) = lbuf%SIG(jj(6) + i)
509 evar_tmp(1) =evar_tmp(1)+ lbuf%VISC(jj(1) + i)
510 evar_tmp(2) =evar_tmp(2)+ lbuf%VISC(jj(2) + i)
511 evar_tmp(3) =evar_tmp(3)+ lbuf%VISC(jj(3) + i)
512 evar_tmp(4) =evar_tmp(4)+ lbuf%VISC(jj(4) + i)
518 1 x, ixs(1,n),kcvt, evar_tmp,
519 2 gama, jhbe, igtyp, isorth)
520 evar(1:6,j,i) = evar(1:6,j,i)+ n1 * evar_tmp(1:6)
526 ELSEIF(isolnod == 4 )
THEN
532 gama(1) = gbuf%GAMA(jj(1) + i)
533 gama(2) = gbuf%GAMA(jj(2) + i)
534 gama(3) = gbuf%GAMA(jj(3) + i)
535 gama(4) = gbuf%GAMA(jj(4) + i)
536 gama(5) = gbuf%GAMA(jj(5) + i)
537 gama(6) = gbuf%GAMA(jj(6) + i)
549 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(1,1,1)
550 evar_tmp(1) = lbuf%SIG(jj(1) + i)
551 evar_tmp(2) = lbuf%SIG(jj(2) + i)
552 evar_tmp(3) = lbuf%SIG(jj(3) + i)
553 evar_tmp(4) = lbuf%SIG(jj(4) + i)
554 evar_tmp(5) = lbuf%SIG(jj(5) + i)
555 evar_tmp(6) = lbuf%SIG(jj(6) + i)
557 evar_tmp(1) =evar_tmp(1)+ lbuf%VISC(jj(1) + i)
558 evar_tmp(2) =evar_tmp(2)+ lbuf%VISC(jj(2) +
559 evar_tmp(3) =evar_tmp(3)+ lbuf%VISC(jj(3) + i)
560 evar_tmp(4) =evar_tmp(4)+ lbuf%VISC(jj(4) + i)
561 evar_tmp(5) =evar_tmp
562 evar_tmp(6) =evar_tmp(6)+ lbuf%VISC(jj(6) + i)
566 1 x, ixs(1,n),kcvt, evar_tmp,
567 2 gama, jhbe, igtyp, isorth)
569 evar(1:6,j,i) = n1 * evar_tmp(1:6)
572 ELSEIF(isolnod == 10)
THEN
580 gama(1) = gbuf%GAMA(jj(1) + i)
581 gama(2) = gbuf%GAMA(jj(2) + i)
582 gama(3) = gbuf%GAMA(jj(3) + i)
583 gama(4) = gbuf%GAMA(jj(4) + i)
584 gama(5) = gbuf%GAMA(jj(5) + i)
585 gama(6) = gbuf%GAMA(jj(6) + i)
608 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
609 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%SIG(jj(1) + i)
610 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%SIG(jj(2) + i)
611 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%SIG(jj(3) + i)
612 evar_t10(4,j) = evar_t10(4,j)+ n1 *lbuf%SIG(jj(4) + i)
613 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%SIG(jj(5) + i)
614 evar_t10(6,j) = evar_t10(6,j)+ n1 *lbuf%SIG(jj(6) + i)
616 evar_t10(1,j) =evar_t10(1,j)+ n1 *lbuf%VISC(jj(1) + i)
617 evar_t10(2,j) =evar_t10(2,j)+ n1 *lbuf%VISC(jj(2) + i)
618 evar_t10(3,j) =evar_t10(3,j)+ n1 *lbuf%VISC(jj(3) + i)
619 evar_t10(4,j) =evar_t10(4,j)+ n1 *lbuf%VISC(jj(4) + i)
620 evar_t10(5,j) =evar_t10(5,j)+ n1 *lbuf%VISC(jj(5) + i)
621 evar_t10(6,j) =evar_t10(6,j)+ n1 *lbuf%VISC(jj(6) + i)
626 1 x, ixs(1,n), kcvt, evar_t10(1,j),
627 2 gama, jhbe, igtyp, isorth)
632 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
635 evar(1:6,j,i) = evar_t10(1:6,j)