40 . IXS ,IXS10 ,IXS16 ,IXS20 ,IXQ ,
41 . IXC ,IXTG ,IXT ,IXP ,IXR ,
53#include "implicit_f.inc"
57#include "vect01_c.inc"
65 my_real func1(3,*),func2(3,*),geo(npropg,*),x(3,*),pm(npropm,*)
66 INTEGER IPARG(NPARG,*),
67 . IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*),IXTG(NIXTG,*),
68 . ixt(nixt,*),ixp(nixp,*),ixr(nixr,*),
69 . ixs10(6,*) ,ixs16(8,*) ,ixs20(12,*) ,itagps(*)
70 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
75 . off, p, vonm2, vonm, s1, s2, s12, s3,
VALUE,
76 . a1,b1,b2,b3,yeq,f1,m1,m2,m3,
for,
area(mvsiz),
77 . a_gauss_r,a_gauss_s,a_gauss_t,n1,
78 . a_gauss_r1,a_gauss_s1,a_gauss_t1,
79 . a_gauss_p_r,a_gauss_p_s,a_gauss_p_t
80 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: evar
81 INTEGER I,II, NG, NEL, ISS, ISC,NBGAMA,KCVT,
84 . nn1,nf,offset,k,inc,kk, ius, nuvar,
85 . inod, isolnod, iprt, liad, nptr, npts, nptt, ipt,
86 . is, ir, it, nptg,nc(20,mvsiz),nnod,iexpan,ihbe,mpt,ilay,
87 . icsig,dir,ivisc,jj(6),ip
89 TYPE(G_BUFEL_) ,
POINTER :: GBUF
90 TYPE(L_BUFEL_) ,
POINTER :: LBUF
92 . a_gauss(9,9),evar_tmp(6),
alpha,beta,alpha_1,beta_1,
93 . jr0(mvsiz),js0(mvsiz),jt0(mvsiz),nu(mvsiz),
95 . xd1(mvsiz), xd2(mvsiz), xd3
96 . xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
97 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz), yd5(mvsiz),
98 . yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
99 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4
100 . zd6(mvsiz), zd7(mvsiz), zd8(mvsiz),
101 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
103 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
104 . rx(mvsiz),ry(mvsiz),rz(mvsiz),sx(mvsiz),sy(mvsiz),sz(mvsiz),
105 . tx(mvsiz),ty(mvsiz),tz(mvsiz),
106 . xdl(mvsiz), ydl(mvsiz), zdl(mvsiz),str_is24(mvsiz,6,8),
109 . SOL_NODE(3,8), IPERM1(10),IPERM2(10),NN2,ITSH
110 DATA IPERM1/0,0,0,0,1,2,3,1,2,3/
111 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
117 2 -.577350269189626,0.577350269189626,0. ,
120 3 -.774596669241483,0.
123 4 -.861136311594053,-.339981043584856,0.339981043584856,
124 4 0.861136311594053,0. ,0. ,
126 5 -.906179845938664,-.538469310105683,0. ,
127 5 0.538469310105683,0.906179845938664,0. ,
129 6 -.932469514203152,-.661209386466265,-.238619186083197,
130 6 0.238619186083197,0.661209386466265,0.932469514203152,
132 7 -.949107912342759,-.741531185599394,-.405845151377397,
133 7 0. ,0.405845151377397,0.741531185599394,
134 7 0.949107912342759,0. ,0. ,
135 8 -.960289856497536,-.796666477413627,-.525532409916329,
136 8 -.183434642495650,0.183434642495650,0.525532409916329,
137 8 0.796666477413627,0.960289856497536,0. ,
138 9 -.968160239507626,-.836031107326636,-.613371432700590,
139 9 -.324253423403809,0. ,0.324253423403809,
140 9 0.613371432700590,0.836031107326636,0.968160239507626/
153 CALL my_alloc(evar,6,numnod)
165 gbuf => elbuf_tab(ng)%GBUF
167 2 mlw ,nel ,nft ,iad ,ity ,
168 3 npt ,jale ,ismstr ,jeul
169 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
170 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
171 6 irep ,iint ,igtyp ,israt ,isrot ,
172 7 icsen ,isorth ,isorthg ,ifailure,jsms )
174 IF (iparg(8,ng)==1.OR.mlw==0.OR.mlw==13) cycle
176 isolnod = iparg(28,ng)
189 gbuf => elbuf_tab(ng)%GBUF
190 IF (kcvt==1.AND.isorth/=0) kcvt=2
198 ELSEIF(isolnod == 4)
THEN
203 ELSEIF(isolnod == 6)
THEN
210 ELSEIF(isolnod == 10)
THEN
217 nc(j+4,i) = ixs10(j,nn1)
219 ELSEIF(isolnod == 16)
THEN
223 nn1 = n - (numels8+numels10+numels20)
225 nc(j+8,i) = ixs16(j,nn1)
227 ELSEIF(isolnod == 20)
THEN
231 nn1 = n - (numels8+numels10)
233 nc(j+8,i) = ixs20(j,nn1)
237 nptr = elbuf_tab(ng)%NPTR
238 npts = elbuf_tab(ng)%NPTS
239 nptt = elbuf_tab(ng)%NPTT
240 nlay = elbuf_tab(ng)%NLAY
243 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
249 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
253 CALL szstraingps(lbuf%STRA, str_is24, gbuf%STRHG,nel)
256 IF((isolnod == 4.AND. isrot/=1).OR.(isolnod == 8.AND. jhbe<9))
THEN
262 gama(1) = gbuf%GAMA(jj(1) + i)
263 gama(2) = gbuf%GAMA(jj(2) + i)
264 gama(3) = gbuf%GAMA(jj(3) + i)
265 gama(4) = gbuf%GAMA(jj(4) + i)
266 gama(5) = gbuf%GAMA(jj(5) + i)
267 gama(6) = gbuf%GAMA(jj(6) + i)
279 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(1,1,1)
280 evar_tmp(1) = lbuf%STRA(jj(1) + i)
281 evar_tmp(2) = lbuf%STRA(jj(2) + i)
282 evar_tmp(3) = lbuf%STRA(jj(3) + i)
283 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
284 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
285 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
286 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
288 evar(1:6,nc(j,i)) = evar(1:6,nc(j,i)) +evar_tmp(1:6)
291 ELSEIF(isolnod == 6 .OR. isolnod == 8 .OR. isolnod == 16 .OR. isolnod == 20)
THEN
294 IF(itsh > 0 .AND. jhbe /= 14)
THEN
300 gama(1) = gbuf%GAMA(jj(1) + i)
301 gama(2) = gbuf%GAMA(jj(2) + i)
302 gama(3) = gbuf%GAMA(jj(3) + i)
303 gama(4) = gbuf%GAMA(jj(4) + i)
304 gama(5) = gbuf%GAMA(jj(5) + i)
305 gama(6) = gbuf%GAMA(jj(6) + i)
319 IF(sol_node(2,k) == sol_node(2,j))
THEN
320 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) ir = 1
321 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) ir =
max(1,nptr-1)
322 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) ir = nptr
323 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) ir =
min(nptr,2)
324 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1) is = 1
325 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) is =
max(1,npts-1)
326 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) is = npts
327 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) is =
min(npts,2)
328 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) it = 1
329 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) it =
max(1,nptt-1)
330 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) it = nptt
331 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1) it =
min(nptt,2)
339 ELSEIF (sol_node(1,j) == -1 )
THEN
340 a_gauss_r = a_gauss(1,nptr)
341 a_gauss_r1 = a_gauss(2,nptr)
342 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
343 ELSEIF(sol_node(1,j) == 1 )
THEN
344 a_gauss_r = a_gauss(nptr-1,nptr)
345 a_gauss_r1 = a_gauss(nptr,nptr)
346 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
351 ELSEIF (sol_node(2,j) == -1 )
THEN
352 a_gauss_s = a_gauss(1,npts)
353 a_gauss_s1 = a_gauss(2,npts)
354 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
355 ELSEIF(sol_node(2,j) == 1 )
THEN
356 a_gauss_s = a_gauss(npts-1,npts)
357 a_gauss_s1 = a_gauss(npts,npts)
358 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
363 ELSEIF (sol_node(3,j) == -1 )
THEN
364 a_gauss_t = a_gauss(1,nptt)
365 a_gauss_t1 = a_gauss(2,nptt)
366 a_gauss_p_t = (-one-half*(a_gauss_t1+a_gauss_t))/(half*
367 ELSEIF(sol_node(3,j) == 1 )
THEN
368 a_gauss_t = a_gauss(nptt-1,nptt)
369 a_gauss_t1 = a_gauss(nptt,nptt)
370 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
373 IF (jhbe == 15 .OR. jhbe == 16)
THEN
376 n1 = fourth*( (one+sol_node(1,k) * a_gauss_p_r) * (one+sol_node(3,k) * a_gauss_p_t) )
379 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
380 ip = ir + ( (is-1) + (it-1)*2 )*2
381 evar_tmp(1) = lbuf%STRA(jj(1) + i)
382 evar_tmp(2) = lbuf%STRA(jj(2) + i)
383 evar_tmp(3) = lbuf%STRA(jj(3) + i)
384 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
385 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
386 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
387 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
388 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
389 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
390 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1 * evar_tmp(3)
391 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
392 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
393 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp(6)
404 gama(1) = gbuf%GAMA(jj(1) + i)
405 gama(2) = gbuf%GAMA(jj(2) + i)
406 gama(3) = gbuf%GAMA(jj(3) + i)
407 gama(4) = gbuf%GAMA(jj(4) + i)
408 gama(5) = gbuf%GAMA(jj(5) + i)
409 gama(6) = gbuf%GAMA(jj(6) + i)
419 IF(itsh>0) nptt = nlay
422 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) is = 1
423 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) is =
max(1,npts-1)
424 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) is = npts
425 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) is =
min(npts,2)
426 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1) it = 1
427 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) it =
max(1,nptt-1)
428 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) it = nptt
429 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) it =
min(nptt,2)
430 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) ir = 1
431 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) ir =
max(1,nptr-1)
432 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) ir = nptr
433 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1) ir =
min(nptr,2)
439 ELSEIF (sol_node(1,j) == -1 )
THEN
440 a_gauss_r = a_gauss(1,nptr)
441 a_gauss_r1 = a_gauss(2,nptr)
442 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1
443 ELSEIF(sol_node(1,j) == 1 )
THEN
444 a_gauss_r = a_gauss(nptr-1,nptr)
445 a_gauss_r1 = a_gauss(nptr,nptr)
446 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
451 ELSEIF (sol_node(2,j) == -1 )
THEN
452 a_gauss_s = a_gauss(1,npts)
453 a_gauss_s1 = a_gauss(2,npts)
454 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/ (half*(a_gauss_s1-a_gauss_s))
455 ELSEIF(sol_node(2,j) == 1 )
THEN
456 a_gauss_s = a_gauss(npts-1,npts)
457 a_gauss_s1 = a_gauss(npts,npts)
458 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
463 ELSEIF (sol_node(3,j) == -1 )
THEN
464 a_gauss_t = a_gauss(1,nptt)
465 a_gauss_t1 = a_gauss(2,nptt)
466 a_gauss_p_t = (-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
467 ELSEIF(sol_node(3,j) == 1 )
THEN
468 a_gauss_t = a_gauss(nptt-1,nptt)
469 a_gauss_t1 = a_gauss(nptt,nptt)
470 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
473 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))
475 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
482 IF (jhbe == 24 .AND. gbuf%G_STRHG > 0)
THEN
483 ip = ir + ( (is-1) + (it-1)*2 )*2
484 evar_tmp(1) = str_is24(i,1,ip)
485 evar_tmp(2) = str_is24(i,2,ip)
486 evar_tmp(3) = str_is24(i,3,ip)
487 evar_tmp(4) = str_is24(i,4,ip)*half
488 evar_tmp(5) = str_is24(i,5,ip)*half
489 evar_tmp(6) = str_is24(i,6,ip)*half
491 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
492 evar_tmp(1) = lbuf%STRA(jj(1) + i)
493 evar_tmp(2) = lbuf%STRA(jj(2) + i)
494 evar_tmp(3) = lbuf%STRA(jj(3) + i)
495 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
496 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
497 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
499 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
500 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
501 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
502 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1 * evar_tmp(3)
503 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
504 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
505 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp(6)
511 ELSEIF(isolnod == 10)
THEN
519 gama(1) = gbuf%GAMA(jj(1) + i)
520 gama(2) = gbuf%GAMA(jj(2) + i)
521 gama(3) = gbuf%GAMA(jj(3) + i)
522 gama(4) = gbuf%GAMA(jj(4) + i)
523 gama(5) = gbuf%GAMA(jj(5) + i)
524 gama(6) = gbuf%GAMA(jj(6) + i)
546 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
547 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%STRA(jj(1) + i)
548 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%STRA(jj(2) + i)
549 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%STRA
550 evar_t10(4,j) = evar_t10(4,j)+ n1
551 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%STRA(jj(5) + i)*half
552 evar_t10(6,j) = evar_t10(6,j)+ n1 *lbuf%STRA(jj(6) + i)*half
554 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_t10(1,j), gama, jhbe, igtyp, isorth)
559 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
562 evar(1,nc(j,i)) = evar(1,nc(j,i)) + evar_t10(1,j)
563 evar(2,nc(j,i)) = evar(2,nc(j,i)) + evar_t10(2,j)
564 evar(3,nc(j,i)) = evar(3,nc(j,i)) + evar_t10(3,j)
565 evar(4,nc(j,i)) = evar(4,nc(j,i)) + evar_t10(4,j)
566 evar(5,nc(j,i)) = evar(5,nc(j,i)) + evar_t10(5,j)
567 evar(6,nc(j,i)) = evar(6,nc(j,i)) + evar_t10(6,j)
576 func1(k,n) = evar(k,n)
577 func2(k,n) = evar(k+3,n)
579 itagps(n) = itagps(n)+1
605 . IXS ,IXS10 ,IXS16 ,IXS20 ,X ,
606 . ITAGPS ,PM ,TAG_SKIN_ND )
616#include
"implicit_f.inc"
620#include "vect01_c.inc"
621#include "mvsiz_p.inc"
622#include "com01_c.inc"
623#include "com04_c.inc"
624#include "param_c.inc"
628 my_real func1(3,*),func2(3,*),x(3,*), pm(npropm,*)
629 INTEGER (NPARG,*),IXS(NIXS,*),IXS10(6,*) ,IXS16(8,*) ,IXS20(12,*) ,ITAGPS(*) ,TAG_SKIN_ND(*)
630 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET ::
635 . off, p, vonm2, vonm
VALUE,
636 . a1,b1,b2,b3,yeq,f1,m1,m2,m3,
for,
area(mvsiz),
637 . a_gauss_r,a_gauss_s,a_gauss_t,n1,
638 . a_gauss_r1,a_gauss_s1,a_gauss_t1,
639 . a_gauss_p_r,a_gauss_p_s,a_gauss_p_t
640 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: evar
641 INTEGER I,II, NG, NEL, ISS, ISC,NBGAMA,KCVT,
643 . ISTRAIN,NN, JTURB,MT, IMID, IALEL,IPID,
644 . NN1,NF,OFFSET,K,INC,KK, IUS, NUVAR,
645 . inod, isolnod, iprt, liad, nptr, npts, nptt, ipt,
646 . is, ir, it, nptg,nc(20,mvsiz),nnod,iexpan,ihbe,mpt,ilay,
647 . icsig,dir,ivisc,jj(6),ip,itsh
649 TYPE(G_BUFEL_) ,
POINTER :: GBUF
650 TYPE(L_BUFEL_) ,
POINTER :: LBUF
652 . A_GAUSS(9,9),EVAR_TMP(6),ALPHA,BETA,ALPHA_1,BETA_1,
653 . jr0(mvsiz),js0(mvsiz),jt0(mvsiz),nu(mvsiz),
655 . xd1(mvsiz), xd2(mvsiz), xd3(mvsiz), xd4(mvsiz), xd5(mvsiz),
656 . xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
657 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz), yd5(mvsiz),
658 . yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
659 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz), zd5(mvsiz),
660 . zd6(mvsiz), zd7(mvsiz), zd8(mvsiz),
661 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
662 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
663 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
664 . rx(mvsiz),ry(mvsiz),rz(mvsiz),sx(mvsiz),sy(mvsiz),sz(mvsiz),
665 . tx(mvsiz),ty(mvsiz),tz(mvsiz),
666 . xdl(mvsiz), ydl(mvsiz), zdl(mvsiz),str_is24(mvsiz,6,8),
669 . SOL_NODE(3,8), IPERM1(10),IPERM2(10),NN2,ISKIN(MVSIZ)
670 DATA IPERM1/0,0,0,0,1,2,3,1,2,3/
671 DATA IPERM2/0,0,0,0,2,3,1,4,4,4/
677 2 -.577350269189626,0.577350269189626,0. ,
680 3 -.774596669241483,0. ,0.774596669241483,
683 4 -.861136311594053,-.339981043584856,0.339981043584856,
684 4 0.861136311594053,0. ,0. ,
686 5 -.906179845938664,-.538469310105683,0. ,
687 5 0.538469310105683,0.906179845938664,0. ,
689 6 -.932469514203152,-.661209386466265,-.238619186083197,
690 6 0.238619186083197,0.661209386466265,0.932469514203152,
692 7 -.949107912342759,-.741531185599394,-.405845151377397,
693 7 0. ,0.405845151377397,0.741531185599394,
694 7 0.949107912342759,0. ,0. ,
695 8 -.960289856497536,-.796666477413627,-.525532409916329,
696 8 -.183434642495650,0.183434642495650,0.525532409916329,
697 8 0.796666477413627,0.960289856497536,0. ,
698 9 -.968160239507626,-.836031107326636,-.613371432700590,
699 9 -.324253423403809,0. ,0.324253423403809,
700 9 0.613371432700590,0.836031107326636,0.968160239507626/
713 CALL my_alloc(evar,6,numnod)
724 gbuf => elbuf_tab(ng)%GBUF
726 2 mlw ,nel ,nft ,iad ,ity ,
727 3 npt ,jale ,ismstr ,jeul ,jtur ,
728 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
729 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
730 6 irep ,iint ,igtyp ,israt ,isrot ,
731 7 icsen ,isorth ,isorthg ,ifailure,jsms )
733 IF (iparg(8,ng)==1.OR.mlw==0.OR.mlw==13) cycle
735 isolnod = iparg(28,ng)
747 IF (ity == 1.AND.(igtyp==14.OR.igtyp==6))
THEN
748 gbuf => elbuf_tab(ng)%GBUF
749 IF (kcvt==1.AND.isorth/=0) kcvt=2
759 iskin(i) = iskin(i) + tag_skin_nd(nc(j,i))
761 ELSEIF(isolnod == 4)
THEN
767 iskin(i) = iskin(i) + tag_skin_nd
769 ELSEIF(isolnod == 6)
THEN
776 ELSEIF(isolnod == 10)
THEN
783 nc(j+4,i) = ixs10(j,nn1)
786 iskin(i) = iskin(i) + tag_skin_nd(nc(j,i))
788 ELSEIF(isolnod == 16)
THEN
792 nn1 = n - (numels8+numels10+numels20)
794 nc(j+8,i) = ixs16(j,nn1)
796 ELSEIF(isolnod == 20)
THEN
800 nn1 = n - (numels8+numels10)
802 nc(j+8,i) = ixs20(j,nn1)
805 iskin(i) = iskin(i) + tag_skin_nd(nc(j,i))
810 nptr = elbuf_tab(ng)%NPTR
811 npts = elbuf_tab(ng)%NPTS
812 nptt = elbuf_tab(ng)%NPTT
813 nlay = elbuf_tab(ng)%NLAY
816 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
822 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
826 CALL szstraingps(lbuf%STRA, str_is24, gbuf%STRHG,nel)
829 IF((isolnod == 4.AND. isrot/=1).OR.(isolnod == 8.AND. jhbe<9))
THEN
832 IF (iskin(i)==0) cycle
836 gama(1) = gbuf%GAMA(jj(1) + i)
837 gama(2) = gbuf%GAMA(jj(2) + i)
838 gama(3) = gbuf%GAMA(jj(3) + i)
839 gama(4) = gbuf%GAMA(jj(4) + i)
840 gama(5) = gbuf%GAMA(jj(5) + i)
841 gama(6) = gbuf%GAMA(jj(6) + i)
853 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(1,1,1)
854 evar_tmp(1) = lbuf%STRA(jj(1) + i)
855 evar_tmp(2) = lbuf%STRA(jj(2) + i)
856 evar_tmp(3) = lbuf%STRA(jj(3) + i)
857 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
858 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
859 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
860 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
862 evar(1:6,nc(j,i)) = evar(1:6,nc(j,i)) + evar_tmp(1:6)
865 ELSEIF(isolnod == 6 .OR. isolnod == 8 .OR. isolnod == 16 .OR. isolnod == 20)
THEN
868 IF(itsh > 0 .AND. jhbe /= 14)
THEN
870 IF (iskin(i)==0) cycle
875 gama(1) = gbuf%GAMA(jj(1) + i)
876 gama(2) = gbuf%GAMA(jj(2) + i)
877 gama(3) = gbuf%GAMA(jj(3) + i)
878 gama(4) = gbuf%GAMA(jj(4) + i)
879 gama(5) = gbuf%GAMA(jj(5) + i)
880 gama(6) = gbuf%GAMA(jj(6) + i)
894 IF(sol_node(2,k) == sol_node(2,j))
THEN
896 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) ir = 1
897 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) ir =
max(1,nptr-1)
898 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) ir = nptr
899 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) ir =
min(nptr,2)
900 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1) is = 1
901 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) is =
max(1,npts-1)
902 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) is = npts
903 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) is =
min(npts,2)
904 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) it = 1
905 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) it =
max(1,nptt-1)
906 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) it = nptt
907 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1)
915 ELSEIF (sol_node(1,j) == -1 )
THEN
916 a_gauss_r = a_gauss(1,nptr)
917 a_gauss_r1 = a_gauss(2,nptr)
918 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
919 ELSEIF(sol_node(1,j) == 1 )
THEN
920 a_gauss_r = a_gauss(nptr-1,nptr)
921 a_gauss_r1 = a_gauss(nptr,nptr)
922 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
927 ELSEIF (sol_node(2,j) == -1 )
THEN
928 a_gauss_s = a_gauss(1,npts)
929 a_gauss_s1 = a_gauss(2,npts)
930 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
931 ELSEIF(sol_node(2,j) == 1 )
THEN
932 a_gauss_s = a_gauss(npts-1,npts)
933 a_gauss_s1 = a_gauss(npts,npts)
934 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
939 ELSEIF (sol_node(3,j) == -1 )
THEN
940 a_gauss_t = a_gauss(1,nptt)
941 a_gauss_t1 = a_gauss(2,nptt)
942 a_gauss_p_t =(-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
943 ELSEIF(sol_node(3,j) == 1 )
THEN
944 a_gauss_t = a_gauss(nptt-1,nptt)
945 a_gauss_t1 = a_gauss(nptt,nptt)
946 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
949 IF (jhbe == 15 .OR. jhbe == 16)
THEN
952 n1 = fourth*((one+sol_node(1,k) * a_gauss_p_r) * (one+sol_node(3,k) * a_gauss_p_t) )
955 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
956 ip = ir + ( (is-1) + (it-1)*2 )*2
957 evar_tmp(1) = lbuf%STRA(jj(1) + i)
958 evar_tmp(2) = lbuf%STRA(jj(2) + i)
959 evar_tmp(3) = lbuf%STRA(jj(3) + i)
960 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
961 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
962 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
963 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
964 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
965 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
966 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1 * evar_tmp(3)
967 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
968 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
969 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp(6)
976 IF (iskin(i)==0) cycle
981 gama(1) = gbuf%GAMA(jj(1) + i)
982 gama(2) = gbuf%GAMA(jj(2) + i)
983 gama(3) = gbuf%GAMA(jj(3) + i)
984 gama(4) = gbuf%GAMA(jj(4) + i)
985 gama(5) = gbuf%GAMA(jj(5) + i)
986 gama(6) = gbuf%GAMA(jj(6) + i)
996 IF(itsh>0) nptt = nlay
999 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) is = 1
1000 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) is =
max(1,npts-1)
1001 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) is = npts
1002 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) is =
min(npts,2)
1003 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1) it = 1
1004 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) it =
max(1,nptt-1)
1005 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) it = nptt
1006 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) it =
min(nptt,2)
1007 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) ir = 1
1008 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) ir =
max(1,nptr-1)
1009 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) ir = nptr
1010 IF (sol_node(3,k) == 1 .AND. sol_node(3,j
1018 ELSEIF (sol_node(1,j) == -1 )
THEN
1019 a_gauss_r = a_gauss(1,nptr)
1020 a_gauss_r1 = a_gauss(2,nptr)
1021 a_gauss_p_r = (-one-half
1022 ELSEIF(sol_node(1,j) == 1 )
THEN
1023 a_gauss_r = a_gauss(nptr-1,nptr)
1024 a_gauss_r1 = a_gauss(nptr,nptr)
1025 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
1030 ELSEIF (sol_node(2,j) == -1 )
THEN
1031 a_gauss_s = a_gauss(1,npts)
1032 a_gauss_s1 = a_gauss(2,npts)
1033 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
1034 ELSEIF(sol_node(2,j) == 1 )
THEN
1035 a_gauss_s = a_gauss(npts-1,npts)
1036 a_gauss_s1 = a_gauss(npts,npts)
1037 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
1042 ELSEIF (sol_node(3,j
THEN
1043 a_gauss_t = a_gauss(1,nptt)
1044 a_gauss_t1 = a_gauss(2,nptt)
1045 a_gauss_p_t = (-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
1046 ELSEIF(sol_node(3,j) == 1 )
THEN
1047 a_gauss_t = a_gauss(nptt-1,nptt)
1048 a_gauss_t1 = a_gauss(nptt,nptt)
1049 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
1052 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))
1054 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
1061 IF (jhbe == 24 .AND. gbuf%G_STRHG > 0)
THEN
1062 ip = ir + ( (is-1) + (it-1)*2 )*2
1063 evar_tmp(1) = str_is24(i,1,ip
1064 evar_tmp(2) = str_is24(i,2,ip)
1065 evar_tmp(3) = str_is24(i,3,ip)
1066 evar_tmp(4) = str_is24(i,4,ip)
1067 evar_tmp(5) = str_is24(i,5,ip)
1068 evar_tmp(6) = str_is24(i,6,ip)
1070 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
1071 evar_tmp(1) = lbuf%STRA(jj(1) + i)
1072 evar_tmp(2) = lbuf%STRA(jj
1073 evar_tmp(3) = lbuf%STRA(jj(3) + i)
1074 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
1075 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
1076 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
1078 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
1079 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
1080 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
1081 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1 * evar_tmp(3)
1082 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
1083 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
1084 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp(6)
1090 ELSEIF(isolnod == 10)
THEN
1092 alpha_1 = -alpha/(beta-alpha)
1093 beta_1 = (one-alpha)/(beta-alpha)
1095 IF (iskin(i)==0) cycle
1099 gama(1) = gbuf%GAMA(jj(1) + i)
1100 gama(2) = gbuf%GAMA(jj(2) + i)
1101 gama(3) = gbuf%GAMA(jj(3) + i)
1102 gama(4) = gbuf%GAMA(jj(4) + i)
1103 gama(5) = gbuf%GAMA(jj(5) + i)
1104 gama(6) = gbuf%GAMA(jj(6) + i)
1115 evar_t10(1:6,j)=zero
1126 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
1127 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%STRA
1128 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%STRA
1129 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%STRA(jj(3) + i)
1130 evar_t10(4,j) = evar_t10(4,j)+ n1 *lbuf%STRA(jj(4) + i)*half
1131 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%STRA
1132 evar_t10(6,j) = evar_t10(6,j)+ n1 *lbuf%STRA(jj(6) + i)*half
1134 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_t10(1,j), gama, jhbe, igtyp, isorth)
1139 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
1142 evar(1,nc(j,i)) = evar(1,nc(j,i)) + evar_t10(1,j)
1143 evar(2,nc(j,i)) = evar(2
1144 evar(3,nc(j,i)) = evar(3,nc(j,i)) + evar_t10(3,j)
1145 evar(4,nc(j,i)) = evar(4,nc(j,i)) + evar_t10(4,j)
1146 evar(5,nc(j,i)) = evar(5,nc(j,i)) + evar_t10(5,j)
1147 evar(6,nc(j,i)) = evar(6,nc(j,i)) + evar_t10(6,j)
1152 IF (iskin(i)==0) cycle
1157 func1(k,n) = evar(k,n)
1158 func2(k,n) = evar(k+3,n)
1160 itagps(n) = itagps(n)+1