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(),IXS(NIXS,*),IXS10(6,*), ,NEL
59 TYPE (ELBUF_STRUCT_),
TARGET :: ELBUF_TAB
65 . gama(6),off, p
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
70 INTEGER I,II, ISS, ISC,NBGAMA,
72 . istrain,nn, jturb,mt, imid, ialel,ipid,
73 . nn1,nf,offset,k,inc,kk, ius, nuvar,
74 . inod, isolnod, iprt, liad, nptr, npts, nptt, ipt,
75 . is, ir, it, nptg,nc(10,mvsiz),nnod,iexpan,ihbe,mpt,ilay,
76 . icsig,dir,ivisc,jj(6),ip
78 TYPE(g_bufel_) ,
POINTER :: GBUF
79 TYPE(l_bufel_) ,
POINTER :: LBUF
81 . a_gauss(9,9),evar_tmp(6),
alpha,beta,alpha_1,beta_1,
82 . str_is24(mvsiz,6,8),evar_t10(6,10)
84 . sol_node(3,8), iperm1(10),iperm2(10),nn2
85 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
86 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
92 2 -.577350269189626,0.577350269189626,0. ,
95 3 -.774596669241483,0. ,0.774596669241483,
98 4 -.861136311594053,-.339981043584856,0.339981043584856,
99 4 0.861136311594053,0. ,0. ,
101 5 -.906179845938664,-.538469310105683,0.
102 5 0.538469310105683,0.906179845938664,0. ,
104 6 -.932469514203152,-.661209386466265,-.238619186083197,
105 6 0.238619186083197,0.661209386466265,0.932469514203152,
107 7 -.949107912342759,-.741531185599394,-.405845151377397,
108 7 0. ,0.405845151377397,0.741531185599394,
109 7 0.949107912342759,0. ,0. ,
110 8 -.960289856497536,-.7966664774
111 8 -.183434642495650,0.183434642495650,0.525532409916329,
112 8 0.796666477413627,0.960289856497536,0. ,
113 9 -.968160239507626,-.836031107326636,-.613371432700590,
114 9 -.324253423403809,0. ,0.324253423403809,
115 9 0.613371432700590,0.836031107326636,0.968160239507626/
130 gbuf => elbuf_tab%GBUF
143 IF (kcvt==1.AND.isorth/=0) kcvt=2
151 ELSEIF(isolnod == 4)
THEN
156 ELSEIF(isolnod == 6)
THEN
163 ELSEIF(isolnod == 10)
THEN
170 nc(j+4,i) = ixs10(j,nn1)
175 nptr = elbuf_tab%NPTR
176 npts = elbuf_tab%NPTS
177 nptt = elbuf_tab%NPTT
178 nlay = elbuf_tab%NLAY
181 lbuf => elbuf_tab%BUFLY(1)%LBUF(1,1,1)
186 1 lbuf%STRA, str_is24, gbuf%STRHG,nel)
189 IF(isolnod == 6 .OR. isolnod == 8 .OR.
190 . isolnod == 16 .OR. isolnod == 20)
THEN
193 IF(nlay > 1 .AND. jhbe /= 14)
THEN
199 gama(1:6) = gbuf%GAMA(jj(1:6) + i)
213 IF(sol_node(2,k) == sol_node(2,j))
THEN
215 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1)
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(2,k) == -1 .AND. sol_node(2,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
229 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1)
231 IF (sol_node(3,k) == -1 .AND. sol_node(3,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)
246 ELSEIF (sol_node(1,j) == -1 )
THEN
247 a_gauss_r = a_gauss(1,nptr)
248 a_gauss_r1 = a_gauss(2,nptr)
250 . (-one-half*(a_gauss_r1+a_gauss_r))/
251 . (half*(a_gauss_r1-a_gauss_r))
252 ELSEIF(sol_node(1,j) == 1 )
THEN
253 a_gauss_r = a_gauss(nptr-1,nptr)
254 a_gauss_r1 = a_gauss(nptr,nptr)
256 . (one+half*(a_gauss_r1+a_gauss_r))/
257 . (half*(a_gauss_r1-a_gauss_r))
262 ELSEIF (sol_node(2,j) == -1 )
THEN
263 a_gauss_s = a_gauss(1,npts)
264 a_gauss_s1 = a_gauss(2,npts)
266 . (-one-half*(a_gauss_s1+a_gauss_s))/
267 . (half*(a_gauss_s1-a_gauss_s))
268 ELSEIF(sol_node(2,j) == 1 )
THEN
269 a_gauss_s = a_gauss(npts-1,npts)
270 a_gauss_s1 = a_gauss(npts,npts)
272 . (one+half*(a_gauss_s1+a_gauss_s))/
273 . (half*(a_gauss_s1-a_gauss_s))
278 ELSEIF (sol_node(3,j) == -1 )
THEN
279 a_gauss_t = a_gauss(1,nptt)
280 a_gauss_t1 = a_gauss(2,nptt)
282 . (-one-half*(a_gauss_t1+a_gauss_t))/
283 . (half*(a_gauss_t1-a_gauss_t))
284 ELSEIF(sol_node(3,j) == 1 )
THEN
285 a_gauss_t = a_gauss(nptt-1,nptt)
286 a_gauss_t1 = a_gauss(nptt,nptt)
288 . (one+half*(a_gauss_t1+a_gauss_t))/
289 . (half*(a_gauss_t1-a_gauss_t))
292 IF (jhbe == 15 .OR. jhbe == 16)
THEN
296 . (one+sol_node(1,k) * a_gauss_p_r) *
297 . (one+sol_node(3,k) * a_gauss_p_t) )
300 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
301 ip = ir + ( (is-1) + (it-1)*2 )*2
302 evar_tmp(1) = lbuf%STRA
303 evar_tmp(2) = lbuf%STRA(jj(2) + i)
304 evar_tmp(3) = lbuf%STRA(jj(3) + i)
305 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
306 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
307 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
310 1 x, ixs(1,n),kcvt, evar_tmp,
311 2 gama, jhbe, igtyp, isorth)
312 evar(1:6,j,i) = evar(
323 gama(1:6) = gbuf%GAMA(jj(1:6) + i)
333 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
338 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1)
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(2,k) == -1 .AND. sol_node(2,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(3,k) == -1 .AND. sol_node(3,j) == -1)
356 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1)
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)
369 ELSEIF (sol_node(1,j) == -1 )
THEN
370 a_gauss_r = a_gauss(1,nptr)
373 . (-one-half*(a_gauss_r1+a_gauss_r))/
375 ELSEIF(sol_node(1,j) == 1 )
THEN
376 a_gauss_r = a_gauss(nptr-1,nptr)
377 a_gauss_r1 = a_gauss(nptr,nptr)
379 . (one+half*(a_gauss_r1+a_gauss_r))/
380 . (half*(a_gauss_r1-a_gauss_r))
385 ELSEIF (sol_node(2,j) == -1 )
THEN
386 a_gauss_s = a_gauss(1,npts)
387 a_gauss_s1 = a_gauss(2,npts)
389 . (-one-half*(a_gauss_s1+a_gauss_s))/
390 . (half*(a_gauss_s1-a_gauss_s))
391 ELSEIF(sol_node(2,j) == 1 )
THEN
392 a_gauss_s = a_gauss(npts-1,npts)
393 a_gauss_s1 = a_gauss(npts,npts)
395 . (one+half*(a_gauss_s1+a_gauss_s))/
396 . (half*(a_gauss_s1-a_gauss_s))
401 ELSEIF (sol_node(3,j) == -1 )
THEN
402 a_gauss_t = a_gauss(1,nptt)
403 a_gauss_t1 = a_gauss(2,nptt)
405 . (-one-half*(a_gauss_t1+a_gauss_t))/
406 . (half*(a_gauss_t1-a_gauss_t))
407 ELSEIF(sol_node(3,j) == 1 )
THEN
408 a_gauss_t = a_gauss(nptt-1,nptt)
409 a_gauss_t1 = a_gauss(nptt,nptt)
411 . (one+half*(a_gauss_t1+a_gauss_t))/
412 . (half*(a_gauss_t1-a_gauss_t))
416 . (one+sol_node(1,k) * a_gauss_p_r) *
417 . (one+sol_node(2,k) * a_gauss_p_s) *
418 . (one+sol_node(3,k) * a_gauss_p_t) )
420 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
427 IF (jhbe == 24 .AND. gbuf%G_STRHG > 0)
THEN
428 ip = ir + ( (is-1) + (it-1)*2 )*2
429 evar_tmp(1) = str_is24(i,1,ip)
430 evar_tmp(2) = str_is24(i,2,ip)
431 evar_tmp(3) = str_is24(i,3,ip)
432 evar_tmp(4) = str_is24(i,4,ip)*half
433 evar_tmp(5) = str_is24(i,5,ip)*half
434 evar_tmp(6) = str_is24(i,6,ip)*half
436 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir
437 evar_tmp(1) = lbuf%STRA(jj(1) + i)
438 evar_tmp(2) = lbuf%STRA(jj(2) + i)
439 evar_tmp(3) = lbuf%STRA(jj(3) + i)
440 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
441 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
442 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
446 1 x, ixs(1,n),kcvt, evar_tmp,
447 2 gama, jhbe, igtyp, isorth)
448 evar(1:6,j,i) = evar(1:6,j,i) + n1 * evar_tmp(1:6)
454 ELSEIF(isolnod == 4 )
THEN
460 gama(1) = gbuf%GAMA(jj(1) + i)
461 gama(2) = gbuf%GAMA(jj(2) + i)
462 gama(3) = gbuf%GAMA(jj(3) + i)
463 gama(4) = gbuf%GAMA(jj(4) + i)
464 gama(5) = gbuf%GAMA(jj(5) + i)
465 gama(6) = gbuf%GAMA(jj(6) + i)
477 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(1,1,1)
478 evar_tmp(1) = lbuf%STRA(jj(1) + i)
479 evar_tmp(2) = lbuf%STRA(jj(2) + i)
480 evar_tmp(3) = lbuf%STRA(jj(3) + i)
481 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
482 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
483 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
486 1 x, ixs(1,n),kcvt, evar_tmp,
487 2 gama, jhbe, igtyp, isorth)
489 evar(1:6,j,i) = evar(1:6,j,i) + n1 * evar_tmp(1:6)
492 ELSEIF(isolnod == 10)
THEN
500 gama(1) = gbuf%GAMA(jj(1) + i)
501 gama(2) = gbuf%GAMA(jj(2) + i)
502 gama(3) = gbuf%GAMA(jj(3) + i)
503 gama(4) = gbuf%GAMA(jj(4) + i)
504 gama(5) = gbuf%GAMA(jj(5) + i)
505 gama(6) = gbuf%GAMA(jj(6) + i)
528 lbuf => elbuf_tab%BUFLY(ilay)%LBUF(ir,is,it)
529 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%STRA(jj(1) + i)
530 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%STRA(jj(2) + i)
531 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%STRA(jj(3) + i)
532 evar_t10(4,j) = evar_t10(4,j)+ n1 *lbuf%STRA(jj(4) + i)*half
533 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%STRA(jj(5) + i)*half
534 evar_t10(6,j) = evar_t10(6,j)+ n1 *lbuf%STRA(jj(6) + i)*half
538 1 x, ixs(1,n), kcvt, evar_t10(1,j),
539 2 gama, jhbe, igtyp, isorth)
544 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
547 evar(1:6,j,i) = evar_t10(1:6,j)