44 1 ELBUF_TAB ,IPARG ,IGEO ,IXC ,
45 2 IXTG ,WA ,WAP0 ,IPARTC,IPARTTG,
46 3 DYNAIN_DATA,DYNAIN_INDXC,DYNAIN_INDXTG,SIZP0 ,
47 4 GEO ,STACK ,DRAPE_SH4N ,DRAPE_SH3N,X ,
48 5 THKE ,DRAPEG ,NUMMAT ,MAT_PARAM )
57 use element_mod ,
only : nixc,nixtg
61#include "implicit_f.inc"
75 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
76 . IPARG(NPARG,*),IGEO(NPROPGI,*),
77 . IPARTC(*), IPARTTG(*),
78 . dynain_indxc(*), dynain_indxtg(*)
80 . geo(npropg,*) , x(*) ,thke(*)
81 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
82 TYPE (STACK_PLY) :: STACK
83 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE),DRAPE_SH3N(NUMELTG_DRAPE)
84 TYPE (DRAPEG_) :: DRAPEG
85 double precision WA(*),WAP0(*)
87 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
91 INTEGER I,J,K,N,JJ,LEN,IOFF,IE,NG,NEL,NFT,LFT,NPT,
92 . llt,ity,mlw,ihbe,
id, iprt,ir,is,it,
93 . npg,ipg,mpt,ipt,nptr,npts,nptt,nlay,l_pla,ithk,
94 . igtyp,npt_all,il,kk(12),large,irep,ipid,ivisc,
95 . imat,ipmat,ixfem,ixlay,isubstack,iptt,is_written,
96 , laynpt_max,nlay_max,ierr,l_dira,l_dirb,iorth,
97 . jdir,ilay,j1,j2,sedrape,numel_drape,kb
99 INTEGER,
DIMENSION(:) ,
ALLOCATABLE :: MATLY
100 my_real,
DIMENSION(:) ,
ALLOCATABLE :: THKLY
101 my_real,
DIMENSION(:,:) ,
ALLOCATABLE :: POSLY,THK_LY
102 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: PTWA, PTWA_P0
103 INTEGER MAT(MVSIZ),PID(MVSIZ)
107 . sig(6) , mom(3),a1 ,a2
110 . sk(2),st(2),mk(2),mt(2),shk(2),sht(2),zz
112 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
113 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
114 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
115 . rx(mvsiz), ry(mvsiz), rz(mvsiz),
116 . sx(mvsiz), sy(mvsiz), sz(mvsiz),
118 my_real,
ALLOCATABLE,
DIMENSION(:) :: dira,dirb
119 my_real,
DIMENSION(:) ,
POINTER :: dir_a, dir_b
121 TYPE(g_bufel_) ,
POINTER :: GBUF
122 TYPE(L_BUFEL_) ,
POINTER :: LBUF
123 TYPE(buf_lay_) ,
POINTER :: BUFLY
125 parameter(pg = .577350269189626)
126 parameter(mpg=-.577350269189626)
127 DATA qpg/mpg,mpg,pg,mpg,pg,pg,mpg,pg/
129 ./
'$--1---|---2---|---3---|---4---|---5---|---6---|'/
131 ./
'---7---|---8---|---9---|---10--|'/
137 ALLOCATE(ptwa(
max(dynain_data%DYNAIN_NUMELC ,
138 . dynain_data%DYNAIN_NUMELTG)),stat=ierr)
139 ALLOCATE(ptwa_p0(0:
max(1,dynain_data%DYNAIN_NUMELC_G,
140 . dynain_data%DYNAIN_NUMELTG_G)),stat=ierr)
147 IF (dynain_data%DYNAIN_NUMELC/=0)
THEN
151 gbuf => elbuf_tab(ng)%GBUF
160 isubstack=iparg(71,ng)
164 nptr = elbuf_tab(ng)%NPTR
165 npts = elbuf_tab(ng)%NPTS
166 nptt = elbuf_tab(ng)%NPTT
167 nlay = elbuf_tab(ng)%NLAY
170 IF (ihbe == 23) npg=4
183 IF (igtyp == 51 .OR. igtyp == 52 )
THEN
186 npt_all = npt_all + elbuf_tab(ng)%BUFLY(il)%NPTT
187 laynpt_max =
max(laynpt_max , elbuf_tab(ng)%BUFLY(il)%NPTT)
192 nlay_max =
max(nlay,npt, elbuf_tab(ng)%NLAY)
193 ALLOCATE(matly(mvsiz*nlay_max), thkly(mvsiz*nlay_max*laynpt_max),
194 . posly(mvsiz,nlay_max*laynpt_max),thk_ly(nel,nlay_max*laynpt_max))
208 thk0(lft:llt) = gbuf%THK(lft:llt)
210 thk0(lft:llt) = thke(lft:llt)
212 numel_drape = numelc_drape
215 . elbuf_tab(ng),lft ,llt ,geo ,igeo ,
216 . mat ,pid ,thkly ,matly ,posly ,
217 . igtyp ,ixfem ,ixlay ,nlay ,npt ,
218 . isubstack ,stack ,drape_sh4n ,nft ,thke ,
219 . nel ,thk_ly ,drapeg%INDX_SH4N ,sedrape,numel_drape)
225 1 lft , llt ,ity ,ihbe ,igtyp ,
226 2 ixc ,ixtg ,nft ,x ,gbuf%OFF,
227 3 rx ,ry ,rz ,sx ,sy ,
228 4 sz ,e1x ,e2x ,e3x ,e1y ,
229 5 e2y ,e3y ,e1z ,e2z ,e3z )
235 l_dira = elbuf_tab(ng)%BUFLY(1)%LY_DIRA
236 l_dirb = elbuf_tab(ng)%BUFLY(1)%LY_DIRB
237 ALLOCATE(dira(nlay*nel*l_dira))
238 ALLOCATE(dirb(nlay*nel*l_dirb))
241 IF (l_dira == 0)
THEN
243 ELSEIF (irep == 0)
THEN
245 j1 = 1+(j-1)*l_dira*nel
247 dira(j1:j2) = elbuf_tab(ng)%BUFLY(j)%DIRA(1:nel*l_dira)
250 dir_a => dira(1:nlay*nel*l_dira)
251 dir_b => dirb(1:nlay*nel*l_dirb)
253 CALL cortdir3(elbuf_tab(ng),dir_a ,dir_b ,lft ,llt ,
254 . nlay ,irep ,rx ,ry ,rz ,
255 . sx ,sy ,sz ,e1x ,e1y ,
256 . e1z ,e2x ,e2y ,e2z ,nel )
267 IF (igtyp == 11)
THEN
271 imat = matly((n-1)*llt + i)
272 IF (mat_param(imat)%IVISC > 0) ivisc = 1
275 ELSEIF (igtyp == 9 .OR. igtyp == 10)
THEN
278 imat = matly((n-1)*llt + i)
279 IF (mat_param(imat)%IVISC > 0) ivisc = 1
282 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR.igtyp == 52)
THEN
286 imat = matly((n-1)*llt + i)
287 IF (mat_param(imat)%IVISC > 0 ) ivisc = 1
298 IF (dynain_data%IPART_DYNAIN(iprt)==0) cycle
300 IF (mlw /= 0 .AND. mlw /= 13)
THEN
321 IF (mlw == 0 .or. mlw == 13)
THEN
330 ELSEIF (npg == 1)
THEN
336 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
337 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
338 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
339 sig(4) = gbuf%FOR(kk(4)+i)
340 sig(5) = gbuf%FOR(kk(5)+i)
348 1 i ,ilay ,nel ,iorth ,ity ,
349 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
350 3 rx ,ry ,rz ,sx ,sy ,
351 4 sz ,e1x ,e2x ,e3x ,e1y ,
352 5 e2y ,e3y ,e1z ,e2z ,e3z ,
371 IF (gbuf%G_PLA > 0)
THEN
380 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
381 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
382 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
383 sig(4) = gbuf%FOR(kk(4)+i)
384 sig(5) = gbuf%FOR(kk(5)+i)
392 1 i ,ilay ,nel ,iorth ,ity ,
393 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
394 3 rx ,ry ,rz ,sx ,sy ,
395 4 sz ,e1x ,e2x ,e3x ,e1y ,
396 5 e2y ,e3y ,e1z ,e2z ,e3z ,
415 IF (gbuf%G_PLA > 0)
THEN
425 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
426 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
427 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
428 sig(4) = gbuf%FOR(kk(4)+i)
429 sig(5) = gbuf%FOR(kk(5)+i)
437 1 i ,ilay ,nel ,iorth ,ity ,
438 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
439 3 rx ,ry ,rz ,sx ,sy ,
440 4 sz ,e1x ,e2x ,e3x ,e1y ,
441 5 e2y ,e3y ,e1z ,e2z ,e3z ,
460 IF (gbuf%G_PLA > 0)
THEN
470 st(1) = gbuf%HOURG(kk(1)+i)
471 st(2) =-gbuf%HOURG(kk(2)+i)
472 mt(1) = gbuf%HOURG(kk(3)+i)
473 mt(2) =-gbuf%HOURG(kk(4)+i)
474 sk(1) =-gbuf%HOURG(kk(7)+i)
475 sk(2) = gbuf%HOURG(kk(8)+i)
476 mk(1) =-gbuf%HOURG(kk(9)+i)
477 mk(2) = gbuf%HOURG(kk(10)+i)
478 sht(1)= gbuf%HOURG(kk(5)+i)
479 sht(2)=-gbuf%HOURG(kk(6)+i)
480 shk(1)=-gbuf%HOURG(kk(11)+i)
481 shk(2)= gbuf%HOURG(kk(12)+i)
489 sig(1) = gbuf%FOR(kk(1)+i)
490 . + st(1)*qpg(2,ipg)+sk(1)*qpg(1,ipg)
491 sig(2) = gbuf%FOR(kk(2)+i)
492 . + st(2)*qpg(2,ipg)+sk(2)*qpg(1,ipg)
493 sig(3) = gbuf%FOR(kk(3)+i)
494 sig(4) = gbuf%FOR(kk(4)+i)
495 . + sht(2)*qpg(2,ipg)+shk(2)*qpg(1,ipg)
496 sig(5) = gbuf%FOR(kk(5)+i)
497 . + sht(1)*qpg(2,ipg)+shk(1)*qpg(1,ipg)
499 mom(1) = gbuf%MOM(kk(1)+i)
500 . + mt(1)*qpg(2,ipg)+mk(1)*qpg(1,ipg)
501 mom(2) = gbuf%MOM(kk(2)+i)
502 . + mt(2)*qpg(2,ipg)+mk(2)*qpg(1,ipg)
503 mom(3) = gbuf%MOM(kk(3)+i)
504 sig(1) = a1*sig(1) + a2*mom(1)
505 sig(2) = a1*sig(2) + a2*mom(2)
506 sig(3) = a1*sig(3) + a2*mom(3)
514 1 i ,ilay ,nel ,iorth ,ity ,
515 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
516 3 rx ,ry ,rz ,sx ,sy ,
517 4 sz ,e1x ,e2x ,e3x ,e1y ,
518 5 e2y ,e3y ,e1z ,e2z ,e3z ,
537 IF (gbuf%G_PLA > 0)
THEN
551 sig(1) = gbuf%FOR(kk(1)+i)
552 . + st(1)*qpg(2,ipg)+sk(1)*qpg(1,ipg)
553 sig(2) = gbuf%FOR(kk(2)+i)
554 . + st(2)*qpg(2,ipg)+sk(1)*qpg(1,ipg)
555 sig(3) = gbuf%FOR(kk(3)+i)
556 sig(4) = gbuf%FOR(kk(4)+i)
557 . + sht(2)*qpg(2,ipg)+shk(2)*qpg(1,ipg)
558 sig(5) = gbuf%FOR(kk(5)+i)
559 . + sht(1)*qpg(2,ipg)+shk(1)*qpg(1,ipg)
561 mom(1) = gbuf%MOM(kk(1)+i)
562 . + mt(1)*qpg(2,ipg)+mk(1)*qpg(1,ipg)
563 mom(2) = gbuf%MOM(kk(2)+i)
564 . + mt(2)*qpg(2,ipg)+mk(2)*qpg(1,ipg)
565 mom(3) = gbuf%MOM(kk(3)+i)
566 sig(1) = a1*sig(1) + a2*mom(1)
567 sig(2) = a1*sig(2) + a2*mom(2)
568 sig(3) = a1*sig(3) + a2*mom(3)
576 1 i ,ilay ,nel ,iorth ,ity ,
577 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
578 3 rx ,ry ,rz ,sx ,sy ,
579 4 sz ,e1x ,e2x ,e3x ,e1y ,
580 5 e2y ,e3y ,e1z ,e2z ,e3z ,
599 IF (gbuf%G_PLA > 0)
THEN
612 sig(1) = gbuf%FOR(kk(1)+i)
613 . + st(1)*qpg(2,ipg)+sk(1)*qpg(1,ipg)
614 sig(2) = gbuf%FOR(kk(2)+i)
615 . + st(2)*qpg(2,ipg)+sk(2)*qpg(1,ipg)
616 sig(3) = gbuf%FOR(kk(3)+i)
617 sig(4) = gbuf%FOR(kk(4)+i)
618 . + sht(2)*qpg(2,ipg)+shk(2)*qpg(1,ipg)
619 sig(5) = gbuf%FOR(kk(5)+i)
620 . + sht(1)*qpg(2,ipg)+shk(1)*qpg(1,ipg)
622 mom(1) = gbuf%MOM(kk(1)+i)
623 . + mt(1)*qpg(2,ipg)+mk(1)*qpg(1,ipg)
624 mom(2) = gbuf%MOM(kk(2)+i)
625 . + mt(2)*qpg(2,ipg)+mk(2)*qpg(1,ipg)
626 mom(3) = gbuf%MOM(kk(3)+i)
627 sig(1) = a1*sig(1) + a2*mom(1)
628 sig(2) = a1*sig(2) + a2*mom(2)
629 sig(3) = a1*sig(3) + a2*mom(3)
637 1 i ,ilay ,nel ,iorth ,ity ,
638 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab
639 3 rx ,ry ,rz ,sx ,sy ,
640 4 sz ,e1x ,e2x ,e3x ,e1y ,
641 5 e2y ,e3y ,e1z ,e2z ,e3z ,
660 IF (gbuf%G_PLA > 0)
THEN
675 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
676 ipg = nptr*(is-1) + ir
679 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
680 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
681 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
682 sig(4) = gbuf%FORPG(k + kk(4) + i)
683 sig(5) = gbuf%FORPG(k + kk(5) + i)
691 1 i ,ilay ,nel ,iorth ,ity ,
692 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
693 3 rx ,ry ,rz ,sx ,sy ,
694 4 sz ,e1x ,e2x ,e3x ,e1y ,
695 5 e2y ,e3y ,e1z ,e2z ,e3z ,
714 IF (gbuf%G_PLA > 0)
THEN
728 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
729 ipg = nptr*(is-1) + ir
733 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
734 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
735 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
736 sig(4) = gbuf%FORPG(k + kk(4) + i)
737 sig(5) = gbuf%FORPG(k + kk(5) + i)
745 1 i ,ilay ,nel ,iorth ,ity ,
746 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
747 3 rx ,ry ,rz ,sx ,sy ,
748 4 sz ,e1x ,e2x ,e3x ,e1y ,
749 5 e2y ,e3y ,e1z ,e2z ,e3z ,
768 IF (gbuf%G_PLA > 0)
THEN
781 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
782 ipg = nptr*(is-1) + ir
786 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
787 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
788 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
789 sig(4) = gbuf%FORPG(k + kk(4) + i)
790 sig(5) = gbuf%FORPG(k + kk(5) + i)
798 1 i ,ilay ,nel ,iorth ,ity ,
799 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
800 3 rx ,ry ,rz ,sx ,sy ,
801 4 sz ,e1x ,e2x ,e3x ,e1y ,
802 5 e2y ,e3y ,e1z ,e2z ,e3z ,
821 IF (gbuf%G_PLA > 0)
THEN
835 ELSEIF (mlw == 0 .or. mlw == 13)
THEN
846 ELSEIF(ihbe == 23)
THEN
848 st(1) = gbuf%HOURG(kk(1)+i)
849 st(2) =-gbuf%HOURG(kk(2)+i)
850 mt(1) = gbuf%HOURG(kk(3)+i)
851 mt(2) =-gbuf%HOURG(kk(4)+i)
852 sk(1) =-gbuf%HOURG(kk(7)+i)
853 sk(2) = gbuf%HOURG(kk(8)+i)
854 mk(1) =-gbuf%HOURG(kk(9)+i)
855 mk(2) = gbuf%HOURG(kk(10)+i)
856 sht(1)= gbuf%HOURG(kk(5)+i)
857 sht(2)=-gbuf%HOURG(kk(6)+i)
858 shk(1)=-gbuf%HOURG(kk(11)+i)
859 shk(2)= gbuf%HOURG(kk(12)+i)
863 bufly => elbuf_tab(ng)%BUFLY(il)
866 jdir = 1 + (il-1)*nel*2
870 lbuf => bufly%LBUF(1,1,it)
872 zz = posly(i,ipt)*thk0(i)
875 sig(1) = lbuf%SIG(kk(1)+i)
876 . + (st(1)+zz*mt(1))*qpg(2,ipg)
877 . + (sk(1)+zz*mk(1))*qpg(1,ipg)
878 sig(2) = lbuf%SIG(kk(2)+i)
879 . + (st(2)+zz*mt(2))*qpg(2,ipg)
880 . + (sk(2)+zz*mk(2))*qpg(1,ipg)
881 sig(3) = lbuf%SIG(kk(3)+i)
882 sig(4) = lbuf%SIG(kk(4)+i)
883 . + sht(2)*qpg(2,ipg)+shk(2)*qpg(1,ipg)
884 sig(5) = lbuf%SIG(kk(5)+i)
885 . + sht(1)*qpg(2,ipg)+shk(1)*qpg(1,ipg)
889 1 i ,il ,nel ,iorth ,ity ,
890 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
891 3 rx ,ry ,rz ,sx ,sy ,
892 4 sz ,e1x ,e2x ,e3x ,e1y ,
893 5 e2y ,e3y ,e1z ,e2z ,e3z ,
897 wa(jj) = two * posly(i,ipt)
912 IF (bufly%L_PLA > 0)
THEN
925 ELSEIF (nlay == 1)
THEN
927 bufly => elbuf_tab(ng)%BUFLY(1)
933 lbuf => bufly%LBUF(ir,is,it)
934 ipg = nptr*(is-1) + ir
935 sig(1) = lbuf%SIG(kk(1)+i)
936 sig(2) = lbuf%SIG(kk(2)+i)
937 sig(3) = lbuf%SIG(kk(3)+i)
938 sig(4) = lbuf%SIG(kk(4)+i)
939 sig(5) = lbuf%SIG(kk(5)+i)
946 sig(1) = sig(1) + lbuf%VISC(kk(1)+i)
947 sig(2) = sig(2) + lbuf%VISC(kk(2)+i)
948 sig(3) = sig(3) + lbuf%VISC(kk(3)+i)
949 sig(4) = sig(4) + lbuf%VISC(kk(4)+i)
950 sig(5) = sig(5) + lbuf%VISC(kk(5)+i)
955 jdir = 1 + (ilay-1)*llt*2
958 1 i ,ilay ,nel ,iorth ,ity ,
959 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
960 3 rx ,ry ,rz ,sx ,sy ,
961 4 sz ,e1x ,e2x ,e3x ,e1y ,
962 5 e2y ,e3y ,e1z ,e2z ,e3z ,
968 wa(jj) = two * posly(i,it)
983 IF (bufly%L_PLA > 0)
THEN
998 bufly => elbuf_tab(ng)%BUFLY(il)
1001 jdir = 1 + (il-1)*llt*2
1007 lbuf => bufly%LBUF(ir,is,it)
1009 sig(1) = lbuf%SIG(kk(1)+i)
1010 sig(2) = lbuf%SIG(kk(2)+i)
1011 sig(3) = lbuf%SIG(kk(3)+i)
1012 sig(4) = lbuf%SIG(kk(4)+i)
1013 sig(5) = lbuf%SIG(kk(5)+i)
1019 sig(1) = sig(1) + lbuf%VISC(kk(1)+i)
1020 sig(2) = sig(2) + lbuf%VISC(kk(2)+i)
1021 sig(3) = sig(3) + lbuf%VISC(kk(3)+i)
1022 sig(4) = sig(4) + lbuf%VISC(kk(4)+i)
1023 sig(5) = sig(5) + lbuf%VISC(kk(5)+i)
1027 1 i ,il ,nel ,iorth ,ity ,
1028 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1029 3 rx ,ry ,rz ,sx ,sy ,
1030 4 sz ,e1x ,e2x ,e3x ,e1y ,
1031 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1035 wa(jj) = two * posly(i,ipt)
1050 IF (bufly%L_PLA > 0)
THEN
1051 wa(jj) = lbuf%PLA(i)
1067 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
1068 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
1070 DEALLOCATE(matly, thkly, posly, thk_ly)
1079 IF (nspmd == 1)
THEN
1082 DO n=1,dynain_data%DYNAIN_NUMELC
1091 CALL spmd_stat_pgather(ptwa,dynain_data%DYNAIN_NUMELC,ptwa_p0,dynain_data%DYNAIN_NUMELC_G)
1097 IF (ispmd == 0.AND.len > 0)
THEN
1098 IF(dynain_data%ZIPDYNAIN==0)
THEN
1099 WRITE(iudynain,
'(A)') delimit
1100 WRITE(iudynain,
'(A)')
'*INITIAL_STRESS_SHELL'
1101 WRITE(iudynain,
'(A)')
1102 .
'$ SHELLID NPG NBINT LARGE '
1103 WRITE(iudynain,
'(A)')
1104 .
'$ IF(NPT == 0), REPEAT I=1,NPG :'
1105 WRITE(iudynain,
'(A)')
1106 .
'$ IF(NPT /= 0) REPEAT K=1,NPT : REPEAT I=1,NPG :'
1107 WRITE(iudynain,
'(A)')
1108 .
'$ T SIGXX SIGYY SIGZZ SIGXY SIGYZ SIGZX EPSP '
1109 WRITE(iudynain,
'(A)') delimit
1111 WRITE(line,
'(A)') delimit
1113 WRITE(line,
'(A)')
'*INITIAL_STRESS_SHELL'
1116 .
'$ SHELLID NPG NBINT LARGE '
1119 .
'$ IF(NPT == 0), REPEAT I=1,NPG :'
1122 .
'$ IF(NPT /= 0) REPEAT K=1,NPT : REPEAT I=1,NPG :'
1125 .
'$ T SIGXX SIGYY SIGZZ SIGXY SIGYZ SIGZX EPSP '
1127 WRITE(line,
'(A)') delimit
1132 DO n=1,dynain_data%DYNAIN_NUMELC_G
1138 ioff = nint(wap0(j + 1))
1141 id = nint(wap0(j + 2))
1142 npt = nint(wap0(j + 3))
1143 npg = nint(wap0(j + 4))
1144 large = nint(wap0(j + 5))
1147 IF(dynain_data%ZIPDYNAIN==0)
THEN
1148 WRITE(iudynain,
'(3I8,16X,I8)')
id,npg,npt,large
1150 WRITE(line,
'(3I8,16X,I8)')
id,npg,npt,large
1155 IF(dynain_data%ZIPDYNAIN==0)
THEN
1156 WRITE(iudynain,
'(1P5G16.9)')(wap0(jj + k),k=1,5)
1157 WRITE(iudynain,
'(1P3G16.9)')(wap0(jj + k),k=6,8)
1159 WRITE(line,
'(1P5G16.9)')(wap0(jj + k),k=1,5)
1161 WRITE(line,
'(1P3G16.9)')(wap0(jj + k),k=6,8)
1169 IF(dynain_data%ZIPDYNAIN==0)
THEN
1170 WRITE(iudynain,
'(1P5G16.9)')(wap0(j + k),k=1,5)
1171 WRITE(iudynain,
'(1P3G16.9)')(wap0(j + k),k=6,8)
1173 WRITE(line,
'(1P5G16.9)')(wap0(j + k),k=1,5)
1175 WRITE(line,
'(1P3G16.9)')(wap0(j + k),k=6,8)
1193 IF(dynain_data%DYNAIN_NUMELTG/=0)
THEN
1197 gbuf => elbuf_tab(ng)%GBUF
1205 ipid = ixtg(5,nft+1)
1207 nptr = elbuf_tab(ng)%NPTR
1208 npts = elbuf_tab(ng)%NPTS
1209 nptt = elbuf_tab(ng)%NPTT
1210 nlay = elbuf_tab(ng)%NLAY
1225 IF (igtyp == 51 .OR. igtyp == 52 )
THEN
1228 npt_all = npt_all + elbuf_tab(ng)%BUFLY(k)%NPTT
1229 laynpt_max =
max(laynpt_max , elbuf_tab(ng)%BUFLY(k)%NPTT)
1231 mpt =
max(1,npt_all)
1234 nlay_max =
max(nlay,npt, elbuf_tab(ng)%NLAY)
1235 ALLOCATE(matly(mvsiz*nlay_max), thkly(mvsiz*nlay_max*laynpt_max),
1236 . posly(mvsiz,nlay_max*laynpt_max),thk_ly(nel,nlay_max*laynpt_max))
1242 mat(i)=ixtg(1,nft+i)
1243 pid(i)=ixtg(5,nft+i)
1250 thk0(lft:llt) = gbuf%THK(lft:llt)
1252 thk0(lft:llt) = thke(lft:llt)
1254 numel_drape = numeltg_drape
1257 . elbuf_tab(ng),lft ,llt ,geo ,igeo ,
1258 . mat ,pid ,thkly ,matly ,posly ,
1259 . igtyp ,ixfem ,ixlay ,nlay ,npt ,
1260 . isubstack ,stack ,drape_sh3n ,nft ,thke ,
1261 . nel ,thk_ly ,drapeg%INDX_SH3N,sedrape,numel_drape)
1267 1 lft , llt ,ity ,ihbe ,igtyp ,
1268 2 ixc ,ixtg ,nft ,x ,gbuf%OFF,
1269 3 rx ,ry ,rz ,sx ,sy ,
1270 4 sz ,e1x ,e2x ,e3x ,e1y ,
1271 5 e2y ,e3y ,e1z ,e2z ,e3z )
1277 l_dira = elbuf_tab(ng)%BUFLY(1)%LY_DIRA
1278 l_dirb = elbuf_tab(ng)%BUFLY(1)%LY_DIRB
1279 ALLOCATE(dira(nlay*nel*l_dira))
1280 ALLOCATE(dirb(nlay*nel*l_dirb))
1283 IF (l_dira == 0)
THEN
1285 ELSEIF (irep == 0)
THEN
1287 j1 = 1+(j-1)*l_dira*nel
1289 dira(j1:j2) = elbuf_tab(ng)%BUFLY(j)%DIRA(1:nel*l_dira)
1292 dir_a => dira(1:nlay*nel*l_dira)
1293 dir_b => dirb(1:nlay*nel*l_dirb)
1295 CALL cortdir3(elbuf_tab(ng),dir_a ,dir_b ,lft ,llt ,
1296 . nlay ,irep ,rx ,ry ,rz ,
1297 . sx ,sy ,sz ,e1x ,e1y ,
1298 . e1z ,e2x ,e2y ,e2z ,nel )
1306 IF (igtyp == 11)
THEN
1310 imat = matly((n-1)*llt + i)
1311 IF (mat_param(imat)%IVISC > 0 ) ivisc = 1
1314 ELSEIF (igtyp == 9 .OR. igtyp == 10)
THEN
1317 imat = matly((n-1)*llt + i)
1318 IF (mat_param(imat)%IVISC > 0 ) ivisc = 1
1321 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR.igtyp == 52)
THEN
1325 imat = matly((n-1)*llt + i)
1326 IF (mat_param(imat)%IVISC > 0 ) ivisc = 1
1338 IF (dynain_data%IPART_DYNAIN(iprt) == 0) cycle
1340 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1341 wa(jj) = gbuf%OFF(i)
1346 wa(jj) = ixtg(nixtg,n)
1359 IF (mlw == 0 .or. mlw == 13)
THEN
1366 ELSEIF (npg == 1)
THEN
1372 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
1373 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
1374 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
1375 sig(4) = gbuf%FOR(kk(4)+i)
1376 sig(5) = gbuf%FOR(kk(5)+i)
1384 1 i ,ilay ,nel ,iorth ,ity ,
1385 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1386 3 rx ,ry ,rz ,sx ,sy ,
1387 4 sz ,e1x ,e2x ,e3x ,e1y ,
1388 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1407 IF (gbuf%G_PLA > 0)
THEN
1408 wa(jj) = gbuf%PLA(i)
1416 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
1417 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
1418 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
1419 sig(4) = gbuf%FOR(kk(4)+i)
1420 sig(5) = gbuf%FOR(kk(5)+i)
1428 1 i ,ilay ,nel ,iorth ,ity ,
1429 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1430 3 rx ,ry ,rz ,sx ,sy ,
1431 4 sz ,e1x ,e2x ,e3x ,e1y ,
1432 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1451 IF (gbuf%G_PLA > 0)
THEN
1452 wa(jj) = gbuf%PLA(i)
1461 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
1462 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
1463 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
1464 sig(4) = gbuf%FOR(kk(4)+i)
1465 sig(5) = gbuf%FOR(kk(5)+i)
1473 1 i ,ilay ,nel ,iorth ,ity ,
1474 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1475 3 rx ,ry ,rz ,sx ,sy ,
1476 4 sz ,e1x ,e2x ,e3x ,e1y ,
1477 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1496 IF (gbuf%G_PLA > 0)
THEN
1497 wa(jj) = gbuf%PLA(i)
1508 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
1509 ipg = nptr*(is-1) + ir
1513 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
1514 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
1515 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
1516 sig(4) = gbuf%FORPG(k + kk(4) + i)
1517 sig(5) = gbuf%FORPG(k + kk(5) + i)
1525 1 i ,ilay ,nel ,iorth ,ity ,
1526 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1527 3 rx ,ry ,rz ,sx ,sy ,
1528 4 sz ,e1x ,e2x ,e3x ,e1y ,
1529 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1548 IF (gbuf%G_PLA > 0)
THEN
1549 wa(jj) = lbuf%PLA(i)
1562 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
1563 ipg = nptr*(is-1) + ir
1566 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
1567 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
1568 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
1569 sig(4) = gbuf%FORPG(k + kk(4) + i)
1570 sig(5) = gbuf%FORPG(k + kk(5) + i)
1578 1 i ,ilay ,nel ,iorth ,ity ,
1579 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1580 3 rx ,ry ,rz ,sx ,sy ,
1581 4 sz ,e1x ,e2x ,e3x ,e1y ,
1582 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1601 IF (gbuf%G_PLA > 0)
THEN
1602 wa(jj) = lbuf%PLA(i)
1614 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
1615 ipg = nptr*(is-1) + ir
1618 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
1619 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
1620 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
1621 sig(4) = gbuf%FORPG(k + kk(4) + i)
1622 sig(5) = gbuf%FORPG(k + kk(5) + i)
1630 1 i ,ilay ,nel ,iorth ,ity ,
1631 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1632 3 rx ,ry ,rz ,sx ,sy ,
1633 4 sz ,e1x ,e2x ,e3x ,e1y ,
1634 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1653 IF (gbuf%G_PLA > 0)
THEN
1654 wa(jj) = lbuf%PLA(i)
1663 IF (mlw == 0 .or. mlw == 13)
THEN
1670 ELSEIF (nlay == 1)
THEN
1672 bufly => elbuf_tab(ng)%BUFLY(1)
1678 lbuf => bufly%LBUF(ir,is,it)
1679 ipg = nptr*(is-1) + ir
1680 sig(1) = lbuf%SIG(kk(1)+i)
1681 sig(2) = lbuf%SIG(kk(2)+i)
1682 sig(3) = lbuf%SIG(kk(3)+i)
1683 sig(4) = lbuf%SIG(kk(4)+i)
1684 sig(5) = lbuf%SIG(kk(5)+i)
1691 sig(1) = sig(1) + lbuf%VISC(kk(1)+i)
1692 sig(2) = sig(2) + lbuf%VISC(kk(2)+i)
1693 sig(3) = sig(3) + lbuf%VISC(kk(3)+i)
1694 sig(4) = sig(4) + lbuf%VISC(kk(4)+i)
1695 sig(5) = sig(5) + lbuf%VISC(kk(5)+i)
1700 jdir = 1 + (ilay-1)*llt*2
1703 1 i ,ilay ,nel ,iorth ,ity ,
1704 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1705 3 rx ,ry ,rz ,sx ,sy ,
1706 4 sz ,e1x ,e2x ,e3x ,e1y ,
1707 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1711 wa(jj) = two * posly(i,it)
1725 IF (bufly%L_PLA > 0)
THEN
1726 wa(jj) = lbuf%PLA(i)
1737 bufly => elbuf_tab(ng)%BUFLY(il)
1741 lbuf => bufly%LBUF(ipg,1,it)
1744 sig(1) = lbuf%SIG(kk(1)+i)
1745 sig(2) = lbuf%SIG(kk(2)+i)
1746 sig(3) = lbuf%SIG(kk(3)+i)
1747 sig(4) = lbuf%SIG(kk(4)+i)
1748 sig(5) = lbuf%SIG(kk(5)+i)
1755 sig(1) = sig(1) + lbuf%VISC(kk(1)+i)
1756 sig(2) = sig(2) + lbuf%VISC(kk(2)+i)
1757 sig(3) = sig(3) + lbuf%VISC(kk(3)+i)
1758 sig(4) = sig(4) + lbuf%VISC(kk(4)+i)
1759 sig(5) = sig(5) + lbuf%VISC(kk(5)+i)
1764 jdir = 1 + (il-1)*llt*2
1767 1 i ,ilay ,nel ,iorth ,ity ,
1768 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1769 3 rx ,ry ,rz ,sx ,sy ,
1770 4 sz ,e1x ,e2x ,e3x ,e1y ,
1771 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1774 wa(jj) = two * posly(i,iptt)
1789 wa(jj) = lbuf%PLA(i)
1805 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
1806 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
1807 DEALLOCATE(matly, thkly, posly, thk_ly)
1813 IF (nspmd == 1)
THEN
1820 DO n=1,dynain_data%DYNAIN_NUMELTG
1825 CALL spmd_stat_pgather(ptwa,dynain_data%DYNAIN_NUMELTG,ptwa_p0,dynain_data%DYNAIN_NUMELTG_G)
1830 IF (ispmd == 0.AND.len > 0)
THEN
1831 IF(is_written == 0 )
THEN
1832 IF(dynain_data%ZIPDYNAIN==0)
THEN
1833 WRITE(iudynain,
'(A)') delimit
1834 WRITE(iudynain,
'(A)')
'*INITIAL_STRESS_SHELL'
1835 WRITE(iudynain,
'(A)')
1836 .
'$ SHELLID NPG NBINT LARGE '
1837 WRITE(iudynain,
'(A)')
1838 .
'$ IF(NPT == 0), REPEAT I=1,NPG :'
1839 WRITE(iudynain,
'(A)')
1840 .
'$ IF(NPT /= 0) REPEAT K=1,NPT : REPEAT I=1,NPG :'
1841 WRITE(iudynain,
'(A)')
1842 .
'$ T SIGXX SIGYY SIGZZ SIGXY SIGYZ SIGZX EPSP '
1843 WRITE(iudynain,
'(A)') delimit
1845 WRITE(line,
'(A)')
'*INITIAL_STRESS_SHELL'
1848 .
'$ SHELLID NPG NBINT LARGE '
1851 .
'$ IF(NPT == 0), REPEAT I=1,NPG :'
1854 .
'$ IF(NPT /= 0) REPEAT K=1,NPT : REPEAT I=1,NPG :'
1857 .
'$ T SIGXX SIGYY SIGZZ SIGXY SIGYZ SIGZX EPSP '
1859 WRITE(line,
'(A)') delimit
1865 DO n=1,dynain_data%DYNAIN_NUMELTG_G
1871 ioff = nint(wap0(j + 1))
1873 id = nint(wap0(j + 2))
1874 npt = nint(wap0(j + 3))
1875 npg = nint(wap0(j + 4))
1876 large = nint(wap0(j + 5))
1878 IF(dynain_data%ZIPDYNAIN==0)
THEN
1879 WRITE(iudynain,
'(3I8,16X,I8)')
id,npg,npt,large
1881 WRITE(line,
'(3I8,16X,I8)')
id,npg,npt,large
1886 IF(dynain_data%ZIPDYNAIN==0)
THEN
1887 WRITE(iudynain,
'(1P5G16.9)')(wap0(jj + k),k=1,5)
1888 WRITE(iudynain,
'(1P3G16.9)')(wap0(jj + k),k=6,8)
1890 WRITE(line,
'(1P5G16.9)')(wap0(jj + k),k=1,5)
1892 WRITE(line,
'(1P3G16.9)')(wap0(jj + k),k=6,8)
1900 IF(dynain_data%ZIPDYNAIN==0)
THEN
1901 WRITE(iudynain,
'(1P5G16.9)')(wap0(j + k),k=1,5)
1902 WRITE(iudynain,
'(1P3G16.9)')(wap0(j + k),k=6,8)
1904 WRITE(line,
'(1P5G16.9)')(wap0(j + k),k=1,5)
1906 WRITE(line,
'(1P3G16.9)')(wap0(j + k),k=6,8)
1918 DEALLOCATE(ptwa,ptwa_p0)