41 . IXS ,IXS10 ,IXS16 ,IXS20 ,IXQ ,
42 . IXC ,IXTG ,IXT ,IXP ,IXR ,
51 use element_mod ,
only : nixs,nixq,nixc,nixt,nixr,nixp,nixtg
55#include "implicit_f.inc"
59#include "vect01_c.inc"
67 my_real func1(3,*),func2(3,*),geo(npropg,*),x(3,*),pm(npropm,*)
68 INTEGER IPARG(NPARG,*),
69 . IXS(NIXS,*),IXQ(,*),IXC(NIXC,*),IXTG(NIXTG,*),
70 . ixt(nixt,*),ixp(nixp,*),ixr(nixr,*),
71 . ixs10(6,*) ,ixs16(8,*) ,ixs20(12,*) ,itagps(*)
72 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
79 . a_gauss_r,a_gauss_s,a_gauss_t,n1,
80 . a_gauss_r1,a_gauss_s1,a_gauss_t1,
81 . a_gauss_p_r,a_gauss_p_s,a_gauss_p_t
82 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: evar
83 INTEGER I,II, NG, NEL,KCVT,
87 . isolnod, nptr, npts, nptt,
88 . is, ir, it,nc(20,mvsiz),nnod,ilay,
89 . icsig,ivisc,jj(6),ip
91 TYPE(G_BUFEL_) ,
POINTER :: GBUF
92 TYPE(L_BUFEL_) ,
POINTER :: LBUF
94 . a_gauss(9,9),evar_tmp(6),
alpha,beta,alpha_1,beta_1,
108 . str_is24(mvsiz,6,8),
111 . SOL_NODE(3,8), IPERM1(10),IPERM2(10),NN2,ITSH
112 DATA IPERM1/0,0,0,0,1,2,3,1,2,3/
113 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
119 2 -.577350269189626,0.577350269189626,0. ,
122 3 -.774596669241483,0. ,0.774596669241483,
125 4 -.861136311594053,-.339981043584856,0.339981043584856,
126 4 0.861136311594053,0. ,0. ,
128 5 -.906179845938664,-.538469310105683,0. ,
129 5 0.538469310105683,0.906179845938664,0. ,
131 6 -.932469514203152,-.661209386466265,-.238619186083197,
132 6 0.238619186083197,0.661209386466265,0.932469514203152,
134 7 -.949107912342759,-.741531185599394,-.4058451513773
136 7 0.949107912342759,0. ,0. ,
137 8 -.960289856497536,-.796666477413627,-.525532409916329,
138 8 -.183434642495650,0.183434642495650,0.525532409916329,
139 8 0.796666477413627,0.960289856497536,0. ,
140 9 -.968160239507626,-.836031107326636,-.613371432700590,
141 9 -.324253423403809,0. ,0.324253423403809,
142 9 0.613371432700590,0.836031107326636,0.968160239507626/
155 CALL my_alloc(evar,6,numnod)
167 gbuf => elbuf_tab(ng)%GBUF
170 3 npt ,jale ,ismstr ,jeul ,jtur ,
171 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
173 6 irep ,iint ,igtyp ,israt ,isrot ,
174 7 icsen ,isorth ,isorthg ,ifailure,jsms )
176 IF (iparg(8,ng)==1.OR.mlw==0.OR.mlw==13) cycle
178 isolnod = iparg(28,ng)
191 gbuf => elbuf_tab(ng)%GBUF
192 IF (kcvt==1.AND.isorth/=0) kcvt=2
200 ELSEIF(isolnod == 4)
THEN
205 ELSEIF(isolnod == 6)
THEN
212 ELSEIF(isolnod == 10)
THEN
219 nc(j+4,i) = ixs10(j,nn1)
221 ELSEIF(isolnod == 16)
THEN
225 nn1 = n - (numels8+numels10+numels20)
227 nc(j+8,i) = ixs16(j,nn1)
229 ELSEIF(isolnod == 20)
THEN
233 nn1 = n - (numels8+numels10)
235 nc(j+8,i) = ixs20(j,nn1)
239 nptr = elbuf_tab(ng)%NPTR
240 npts = elbuf_tab(ng)%NPTS
241 nptt = elbuf_tab(ng)%NPTT
242 nlay = elbuf_tab(ng)%NLAY
245 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
251 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
255 CALL szstraingps(lbuf%STRA, str_is24, gbuf%STRHG,nel)
258 IF((isolnod == 4.AND. isrot/=1).OR.(isolnod == 8.AND. jhbe<9))
THEN
264 gama(1) = gbuf%GAMA(jj(1) + i)
265 gama(2) = gbuf%GAMA(jj(2) + i)
266 gama(3) = gbuf%GAMA(jj(3) + i)
267 gama(4) = gbuf%GAMA(jj(4) + i)
268 gama(5) = gbuf%GAMA(jj(5) + i)
281 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(1,1,1)
282 evar_tmp(1) = lbuf%STRA(jj(1) + i)
283 evar_tmp(2) = lbuf%STRA(jj(2) + i)
284 evar_tmp(3) = lbuf%STRA(jj(3) + i)
285 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
286 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
287 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
288 IF (kcvt
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe
290 evar(1:6,nc(j,i)) = evar(1
293 ELSEIF(isolnod == 6 .OR. isolnod == 8 .OR. isolnod == 16 .OR. isolnod == 20)
THEN
296 IF(itsh > 0 .AND. jhbe /= 14)
THEN
302 gama(1) = gbuf%GAMA(jj(1) + i)
303 gama(2) = gbuf%GAMA(jj(2) + i)
304 gama(3) = gbuf%GAMA(jj(3) + i)
305 gama(4) = gbuf%GAMA(jj(4) + i)
307 gama(6) = gbuf%GAMA(jj(6) + i)
321 IF(sol_node(2,k) == sol_node(2,j))
THEN
322 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) ir = 1
323 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) ir =
max(1,nptr-1)
324 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) ir = nptr
327 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) is =
max
328 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) is = npts
329 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) is =
min
330 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) it = 1
331 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) it =
max(1,nptt-1)
332 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) it = nptt
333 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1) it
341 ELSEIF (sol_node(1,j) == -1 )
THEN
342 a_gauss_r = a_gauss(1,nptr)
343 a_gauss_r1 = a_gauss(2,nptr)
344 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
345 ELSEIF(sol_node(1,j) == 1 )
THEN
346 a_gauss_r = a_gauss(nptr-1,nptr)
348 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1
353 ELSEIF (sol_node(2,j) == -1 )
THEN
354 a_gauss_s = a_gauss(1,npts)
355 a_gauss_s1 = a_gauss(2,npts)
356 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
357 ELSEIF(sol_node(2,j) == 1 )
THEN
358 a_gauss_s = a_gauss(npts-1,npts)
359 a_gauss_s1 = a_gauss(npts,npts)
360 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
365 ELSEIF (sol_node(3,j) == -1 )
THEN
366 a_gauss_t = a_gauss(1,nptt)
367 a_gauss_t1 = a_gauss(2,nptt)
368 a_gauss_p_t = (-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
369 ELSEIF(sol_node(3,j) == 1 )
THEN
370 a_gauss_t = a_gauss(nptt-1,nptt)
372 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
375 IF (jhbe == 15 .OR. jhbe == 16)
THEN
378 n1 = fourth*( (one+sol_node(1,k) * a_gauss_p_r) * (one
381 lbuf => elbuf_tab(ng)%BUFLY
382 ip = ir + ( (is-1) + (it-1)*2 )*2
383 evar_tmp(1) = lbuf%STRA(jj(1) + i)
384 evar_tmp(2) = lbuf%STRA
385 evar_tmp(3) = lbuf%STRA(jj(3) + i)
387 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
388 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
389 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama
390 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
392 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1
393 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
394 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp
395 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp
406 gama(1) = gbuf%GAMA(jj
407 gama(2) = gbuf%GAMA(jj(2) + i)
408 gama(3) = gbuf%GAMA(jj(3) + i)
409 gama(4) = gbuf%GAMA(jj(4) + i)
410 gama(5) = gbuf%GAMA(jj(5) + i)
411 gama(6) = gbuf%GAMA(jj(6) + i)
424 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) is
425IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) is =
max(1,npts-1)
426 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) is = npts
427 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) is =
min(npts,2)
428 IF (sol_node(2,k) == -1 .AND. sol_node(2,j
429 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) it =
max(1,nptt-1)
430 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) it
432 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) ir = 1
433 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) ir =
max(1,nptr-1)
434 IF (sol_node(3,k) == 1 .AND. sol_node(3
435 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1) ir =
min(nptr,2)
441 ELSEIF (sol_node(1,j) == -1 )
THEN
442 a_gauss_r = a_gauss(1,nptr)
443 a_gauss_r1 = a_gauss(2,nptr)
444 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r
445 ELSEIF(sol_node(1,j) == 1 )
THEN
446 a_gauss_r = a_gauss(nptr-1,nptr)
447 a_gauss_r1 = a_gauss(nptr,nptr)
448 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
453 ELSEIF (sol_node(2,j) == -1 )
THEN
454 a_gauss_s = a_gauss(1,npts)
455 a_gauss_s1 = a_gauss(2,npts)
456 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/ (half*(a_gauss_s1-a_gauss_s))
457 ELSEIF(sol_node(2,j) == 1 )
THEN
458 a_gauss_s = a_gauss(npts-1,npts)
459 a_gauss_s1 = a_gauss(npts,npts)
460 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
465 ELSEIF (sol_node(3,j) == -1 )
THEN
466 a_gauss_t = a_gauss(1,nptt)
467 a_gauss_t1 = a_gauss(2,nptt)
468 a_gauss_p_t = (-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
469 ELSEIF(sol_node(3,j) == 1 )
THEN
470 a_gauss_t = a_gauss(nptt-1,nptt)
471 a_gauss_t1 = a_gauss(nptt,nptt)
472 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
475 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
477 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
484 IF (jhbe == 24 .AND. gbuf%G_STRHG > 0)
THEN
485 ip = ir + ( (is-1) + (it-1)*2 )*2
486 evar_tmp(1) = str_is24(i,1,ip)
487 evar_tmp(2) = str_is24(i,2,ip)
488 evar_tmp(3) = str_is24(i,3,ip)
489 evar_tmp(4) = str_is24(i,4,ip)*half
490 evar_tmp(5) = str_is24(i,5,ip)*half
491 evar_tmp(6) = str_is24(i,6,ip)*half
493 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
494 evar_tmp(1) = lbuf%STRA(jj(1) + i)
495 evar_tmp(2) = lbuf%STRA(jj(2) + i)
496 evar_tmp(3) = lbuf%STRA(jj(3) + i)
497 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
498 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
499 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
501 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
502 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
503 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
505 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
506 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
507 evar(6,nc(j,i)) = evar(6,nc(j,i
513 ELSEIF(isolnod == 10)
THEN
521 gama(1) = gbuf%GAMA(jj(1) + i)
522 gama(2) = gbuf%GAMA(jj(2) + i)
523 gama(3) = gbuf%GAMA(jj(3) + i)
524 gama(4) = gbuf%GAMA(jj(4) + i)
525 gama(5) = gbuf%GAMA(jj(5) + i)
526 gama(6) = gbuf%GAMA(jj(6) + i)
548 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
549 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%STRA(jj(1) + i)
550 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%STRA(jj(2) + i)
551 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%STRA(jj(3) + i)
552 evar_t10(4,j) = evar_t10(4,j)+ n1 *lbuf%STRA(jj(4) + i)*half
553 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%STRA(jj(5) + i)*half
554 evar_t10(6,j) = evar_t10(6,j)+ n1 *lbuf%STRA(jj(6) + i)*half
556 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_t10(1,j), gama, jhbe, igtyp, isorth)
561 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
564 evar(1,nc(j,i)) = evar(1,nc(j,i)) + evar_t10(1,j)
565 evar(2,nc(j,i)) = evar(2,nc(j,i)) + evar_t10(2,j)
566 evar(3,nc(j,i)) = evar(3,nc(j,i)) + evar_t10(3,j)
567 evar(4,nc(j,i)) = evar(4,nc(j,i)) + evar_t10(4,j)
568 evar(5,nc(j,i)) = evar(5,nc(j,i)) + evar_t10(5,j)
569 evar(6,nc(j,i)) = evar(6,nc(j,i)) + evar_t10(6,j)
578 func1(k,n) = evar(k,n)
579 func2(k,n) = evar(k+3,n)
581 itagps(n) = itagps(n)+1
608 . IXS ,IXS10 ,IXS16 ,IXS20 ,X ,
609 . ITAGPS ,PM ,TAG_SKIN_ND )
616 use element_mod ,
only : nixs
620#include "implicit_f.inc"
624#include "vect01_c.inc"
625#include "mvsiz_p.inc"
626#include "com01_c.inc"
627#include "com04_c.inc"
628#include "param_c.inc"
632 my_real func1(3,*),func2(3,*),x(3,*), pm(npropm,*)
633 INTEGER IPARG(NPARG,*),IXS(NIXS,*),IXS10(6,*) ,IXS16(8,*) ,IXS20(12,*) ,ITAGPS(*) ,TAG_SKIN_ND(*)
634 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
641 . a_gauss_r,a_gauss_s,a_gauss_t,n1,
642 . a_gauss_r1,a_gauss_s1,a_gauss_t1,
643 . a_gauss_p_r,a_gauss_p_s,a_gauss_p_t
644 my_real,
ALLOCATABLE,
DIMENSION(:,:) :: evar
645 INTEGER I,II, NG, NEL,KCVT,
649 . isolnod, nptr, npts, nptt,
650 . is, ir, it,nc(20,mvsiz),nnod,ilay,
651 . icsig,ivisc,jj(6),ip,itsh
653 TYPE(G_BUFEL_) ,
POINTER :: GBUF
654 TYPE(L_BUFEL_) ,
POINTER :: LBUF
656 . A_GAUSS(9,9),EVAR_TMP(6),ALPHA,BETA,ALPHA_1,BETA_1,
670 . str_is24(mvsiz,6,8),
673 . SOL_NODE(3,8), IPERM1(10),IPERM2(10),NN2,ISKIN(MVSIZ)
674 DATA IPERM1/0,0,0,0,1,2,3,1,2,3/
675 DATA IPERM2/0,0,0,0,2,3,1,4,4,4/
681 2 -.577350269189626,0.577350269189626,0. ,
684 3 -.774596669241483,0. ,0.774596669241483,
687 4 -.861136311594053,-.339981043584856,0.339981043584856,
688 4 0.861136311594053,0. ,0. ,
690 5 -.906179845938664,-.538469310105683,0. ,
691 5 0.538469310105683,0.906179845938664,0. ,
693 6 -.932469514203152,-.661209386466265,-.238619186083197,
694 6 0.238619186083197,0.661209386466265,0.932469514203152,
696 7 -.949107912342759,-.741531185599394,-.405845151377397,
697 7 0. ,0.405845151377397,0.741531185599394,
698 7 0.949107912342759,0. ,0. ,
699 8 -.960289856497536,-.796666477413627,-.525532409916329,
700 8 -.183434642495650,0.183434642495650,0.525532409916329,
701 8 0.796666477413627,0.960289856497536,0. ,
702 9 -.968160239507626,-.836031107326636,-.613371432700590,
703 9 -.324253423403809,0. ,0.324253423403809,
704 9 0.613371432700590,0.836031107326636,0.968160239507626/
717 CALL my_alloc(evar,6,numnod)
728 gbuf => elbuf_tab(ng)%GBUF
730 2 mlw ,nel ,nft ,iad ,ity ,
731 3 npt ,jale ,ismstr ,jeul ,jtur ,
732 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
733 5 nvaux ,jpor ,kcvt ,jclose ,jplasol ,
735 7 icsen ,isorth ,isorthg ,ifailure,jsms )
737 IF (iparg(8,ng)==1.OR.mlw==0.OR.mlw==13) cycle
739 isolnod = iparg(28,ng)
751 IF (ity == 1.AND.(igtyp==14.OR.igtyp==6))
THEN
752 gbuf => elbuf_tab(ng)%GBUF
753 IF (kcvt==1.AND.isorth/=0) kcvt=2
763 iskin(i) = iskin(i) + tag_skin_nd(nc(j,i))
765 ELSEIF(isolnod == 4)
THEN
771 iskin(i) = iskin(i) + tag_skin_nd(nc(j,i))
773 ELSEIF(isolnod == 6)
THEN
780 ELSEIF(isolnod == 10)
THEN
787 nc(j+4,i) = ixs10(j,nn1)
790 iskin(i) = iskin(i) + tag_skin_nd(nc(j,i))
792 ELSEIF(isolnod == 16)
THEN
796 nn1 = n - (numels8+numels10+numels20)
798 nc(j+8,i) = ixs16(j,nn1)
800 ELSEIF(isolnod == 20)
THEN
804 nn1 = n - (numels8+numels10)
806 nc(j+8,i) = ixs20(j,nn1)
809 iskin(i) = iskin(i) + tag_skin_nd(nc(j,i))
814 nptr = elbuf_tab(ng)%NPTR
815 npts = elbuf_tab(ng)%NPTS
816 nptt = elbuf_tab(ng)%NPTT
817 nlay = elbuf_tab(ng)%NLAY
820 IF(igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
826 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
830 CALL szstraingps(lbuf%STRA, str_is24, gbuf%STRHG,nel)
833 IF((isolnod == 4.AND. isrot/=1).OR.(isolnod == 8.AND. jhbe<9))
THEN
836 IF (iskin(i)==0) cycle
840 gama(1) = gbuf%GAMA(jj(1) + i)
841 gama(2) = gbuf%GAMA(jj(2) + i)
842 gama(3) = gbuf%GAMA(jj(3) + i)
843 gama(4) = gbuf%GAMA(jj(4) + i)
844 gama(5) = gbuf%GAMA(jj(5) + i)
845 gama(6) = gbuf%GAMA(jj(6) + i)
857 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(1,1,1)
858 evar_tmp(1) = lbuf%STRA(jj(1) + i)
859 evar_tmp(2) = lbuf%STRA(jj(2) + i)
860 evar_tmp(3) = lbuf%STRA(jj(3) + i)
861 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
862 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
863 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
864 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
866 evar(1:6,nc(j,i)) = evar(1:6,nc(j,i)) + evar_tmp(1:6)
869 ELSEIF(isolnod == 6 .OR. isolnod == 8 .OR. isolnod == 16 .OR. isolnod == 20)
THEN
872 IF(itsh > 0 .AND. jhbe /= 14)
THEN
874 IF (iskin(i)==0) cycle
879 gama(1) = gbuf%GAMA(jj(1) + i)
880 gama(2) = gbuf%GAMA(jj(2) + i)
881 gama(3) = gbuf%GAMA(jj(3) + i)
882 gama(4) = gbuf%GAMA(jj(4) + i)
883 gama(5) = gbuf%GAMA(jj(5) + i)
884 gama(6) = gbuf%GAMA(jj(6) + i)
898 IF(sol_node(2,k) == sol_node(2,j))
THEN
900 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) ir = 1
901 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) ir =
max(1,nptr-1)
902 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) ir = nptr
903 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) ir =
min(nptr,2)
904 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1) is = 1
905 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) is =
max(1,npts-1)
906 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) is = npts
907 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) is =
min(npts,2)
908 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) it = 1
909 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) it =
max(1,nptt-1)
910 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) it = nptt
911 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1) it =
min(nptt,2)
919 ELSEIF (sol_node(1,j) == -1 )
THEN
920 a_gauss_r = a_gauss(1,nptr)
921 a_gauss_r1 = a_gauss(2,nptr)
922 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
923 ELSEIF(sol_node(1,j) == 1 )
THEN
924 a_gauss_r = a_gauss(nptr-1,nptr)
925 a_gauss_r1 = a_gauss(nptr,nptr)
926 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
931 ELSEIF (sol_node(2,j) == -1 )
THEN
932 a_gauss_s = a_gauss(1,npts)
933 a_gauss_s1 = a_gauss(2,npts)
934 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
935 ELSEIF(sol_node(2,j) == 1 )
THEN
936 a_gauss_s = a_gauss(npts-1,npts)
937 a_gauss_s1 = a_gauss(npts,npts)
938 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
943 ELSEIF (sol_node(3,j) == -1 )
THEN
944 a_gauss_t = a_gauss(1,nptt)
945 a_gauss_t1 = a_gauss(2,nptt)
946 a_gauss_p_t =(-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
947 ELSEIF(sol_node(3,j) == 1 )
THEN
948 a_gauss_t = a_gauss(nptt-1,nptt)
949 a_gauss_t1 = a_gauss(nptt,nptt)
950 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
953 IF (jhbe == 15 .OR. jhbe == 16)
THEN
956 n1 = fourth*((one+sol_node(1,k) * a_gauss_p_r) * (one+sol_node(3,k) * a_gauss_p_t) )
959 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
960 ip = ir + ( (is-1) + (it-1)*2 )*2
961 evar_tmp(1) = lbuf%STRA(jj(1) + i)
962 evar_tmp(2) = lbuf%STRA(jj(2) + i)
963 evar_tmp(3) = lbuf%STRA(jj(3) + i)
964 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
965 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
966 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
967 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
968 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
969 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
970 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1 * evar_tmp(3)
971 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
972 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
973 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp(6)
980 IF (iskin(i)==0) cycle
985 gama(1) = gbuf%GAMA(jj(1) + i)
986 gama(2) = gbuf%GAMA(jj(2) + i)
987 gama(3) = gbuf%GAMA(jj(3) + i)
988 gama(4) = gbuf%GAMA(jj(4) + i)
989 gama(5) = gbuf%GAMA(jj(5) + i)
990 gama(6) = gbuf%GAMA(jj(6) + i)
1000 IF(itsh>0) nptt = nlay
1003 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == -1) is = 1
1004 IF (sol_node(1,k) == -1 .AND. sol_node(1,j) == 1) is =
max(1,npts-1)
1005 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == 1) is = npts
1006 IF (sol_node(1,k) == 1 .AND. sol_node(1,j) == -1) is =
min(npts,2)
1007 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == -1) it = 1
1008 IF (sol_node(2,k) == -1 .AND. sol_node(2,j) == 1) it =
max(1,nptt-1)
1009 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == 1) it = nptt
1010 IF (sol_node(2,k) == 1 .AND. sol_node(2,j) == -1) it =
min(nptt,2)
1011 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == -1) ir = 1
1012 IF (sol_node(3,k) == -1 .AND. sol_node(3,j) == 1) ir =
max(1,nptr-1)
1013 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == 1) ir = nptr
1014 IF (sol_node(3,k) == 1 .AND. sol_node(3,j) == -1) ir =
min(nptr,2)
1022 ELSEIF (sol_node(1,j) == -1 )
THEN
1023 a_gauss_r = a_gauss(1,nptr)
1024 a_gauss_r1 = a_gauss(2,nptr)
1025 a_gauss_p_r = (-one-half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
1026 ELSEIF(sol_node(1,j) == 1 )
THEN
1027 a_gauss_r = a_gauss(nptr-1,nptr)
1028 a_gauss_r1 = a_gauss(nptr,nptr)
1029 a_gauss_p_r = (one+half*(a_gauss_r1+a_gauss_r))/(half*(a_gauss_r1-a_gauss_r))
1034 ELSEIF (sol_node(2,j) == -1 )
THEN
1035 a_gauss_s = a_gauss(1,npts)
1036 a_gauss_s1 = a_gauss(2,npts
1037 a_gauss_p_s = (-one-half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
1038 ELSEIF(sol_node(2,j) == 1 )
THEN
1039 a_gauss_s = a_gauss(npts-1,npts)
1040 a_gauss_s1 = a_gauss(npts,npts)
1041 a_gauss_p_s = (one+half*(a_gauss_s1+a_gauss_s))/(half*(a_gauss_s1-a_gauss_s))
1046 ELSEIF (sol_node(3,j) == -1 )
THEN
1047 a_gauss_t = a_gauss(1,nptt)
1048 a_gauss_t1 = a_gauss(2,nptt)
1049 a_gauss_p_t = (-one-half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
1050 ELSEIF(sol_node(3,j) == 1 )
THEN
1051 a_gauss_t = a_gauss(nptt-1,nptt)
1052 a_gauss_t1 = a_gauss(nptt,nptt)
1053 a_gauss_p_t = (one+half*(a_gauss_t1+a_gauss_t))/(half*(a_gauss_t1-a_gauss_t))
1056 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))
1058 IF (igtyp == 20 .OR. igtyp ==21 .OR. igtyp == 22)
THEN
1065 IF (jhbe == 24 .AND. gbuf%G_STRHG > 0)
THEN
1066 ip = ir + ( (is-1) + (it-1)*2 )*2
1067 evar_tmp(1) = str_is24(i,1,ip)
1068 evar_tmp(2) = str_is24(i,2,ip)
1069 evar_tmp(3) = str_is24(i,3,ip)
1070 evar_tmp(4) = str_is24(i,4,ip)
1071 evar_tmp(5) = str_is24(i,5,ip)
1072 evar_tmp(6) = str_is24(i,6,ip)
1074 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
1075 evar_tmp(1) = lbuf%STRA(jj(1) + i)
1076 evar_tmp(2) = lbuf%STRA(jj(2) + i)
1077 evar_tmp(3) = lbuf%STRA(jj(3) + i)
1078 evar_tmp(4) = lbuf%STRA(jj(4) + i)*half
1079 evar_tmp(5) = lbuf%STRA(jj(5) + i)*half
1080 evar_tmp(6) = lbuf%STRA(jj(6) + i)*half
1082 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_tmp, gama, jhbe, igtyp, isorth)
1083 evar(1,nc(j,i)) = evar(1,nc(j,i)) + n1 * evar_tmp(1)
1084 evar(2,nc(j,i)) = evar(2,nc(j,i)) + n1 * evar_tmp(2)
1085 evar(3,nc(j,i)) = evar(3,nc(j,i)) + n1 * evar_tmp(3)
1086 evar(4,nc(j,i)) = evar(4,nc(j,i)) + n1 * evar_tmp(4)
1087 evar(5,nc(j,i)) = evar(5,nc(j,i)) + n1 * evar_tmp(5)
1088 evar(6,nc(j,i)) = evar(6,nc(j,i)) + n1 * evar_tmp(6)
1094 ELSEIF(isolnod == 10)
THEN
1096 alpha_1 = -alpha/(beta-alpha)
1097 beta_1 = (one-alpha)/(beta-alpha)
1099 IF (iskin(i)==0) cycle
1103 gama(1) = gbuf%GAMA(jj(1) + i)
1104 gama(2) = gbuf%GAMA(jj(2) + i)
1105 gama(3) = gbuf%GAMA(jj(3) + i)
1106 gama(4) = gbuf%GAMA(jj(4) + i)
1107 gama(5) = gbuf%GAMA(jj(5) + i)
1108 gama(6) = gbuf%GAMA(jj(6) + i)
1119 evar_t10(1:6,j)=zero
1130 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
1131 evar_t10(1,j) = evar_t10(1,j)+ n1 *lbuf%STRA(jj(1) + i)
1132 evar_t10(2,j) = evar_t10(2,j)+ n1 *lbuf%STRA(jj(2) + i)
1133 evar_t10(3,j) = evar_t10(3,j)+ n1 *lbuf%STRA(jj(3) + i)
1134 evar_t10(4,j) = evar_t10(4,j)+ n1 *lbuf%STRA(jj(4) + i)*half
1135 evar_t10(5,j) = evar_t10(5,j)+ n1 *lbuf%STRA(jj(5) + i)*half
1136 evar_t10(6,j) = evar_t10(6,j
1138 IF (kcvt /= 0)
CALL srota6(x, ixs(1,n), kcvt, evar_t10(1,j), gama, jhbe, igtyp, isorth)
1143 evar_t10(1:6,j) = half*(evar_t10(1:6,nn1)+evar_t10(1:6,nn2))
1146 evar(1,nc(j,i)) = evar(1,nc(j,i)) + evar_t10(1,j)
1147 evar(2,nc(j,i)) = evar(2,nc(j,i)) + evar_t10(2,j)
1148 evar(3,nc(j,i)) = evar(3,nc(j,i)) + evar_t10(3,j)
1149 evar(4,nc(j,i)) = evar(4,nc(j,i)) + evar_t10(4,j)
1150 evar(5,nc(j,i)) = evar(5,nc(j,i)) + evar_t10(5,j)
1151 evar(6,nc(j,i)) = evar(6,nc(j,i)) + evar_t10(6,j)
1156 IF (iskin(i)==0) cycle
1161 func1(k,n) = evar(k,n)
1162 func2(k,n) = evar(k+3,n)
1164 itagps(n) = itagps(n)+1