43 1 ELBUF_TAB ,IPARG ,IGEO ,IXC ,
44 2 IXTG ,WA ,WAP0 ,IPARTC,IPARTTG,
45 3 DYNAIN_DATA,DYNAIN_INDXC,DYNAIN_INDXTG,SIZP0 ,
46 4 GEO ,STACK ,DRAPE_SH4N ,DRAPE_SH3N,X ,
47 5 THKE ,DRAPEG ,NUMMAT ,MAT_PARAM )
59#include "implicit_f.inc"
73 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
74 . IPARG(NPARG,*),IGEO(NPROPGI,*),
75 . IPARTC(*), IPARTTG(*),
76 . dynain_indxc(*), dynain_indxtg(*)
78 . geo(npropg,*) , x(*) ,thke(*)
79 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
TARGET :: ELBUF_TAB
80 TYPE (STACK_PLY) :: STACK
81 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE),DRAPE_SH3N(NUMELTG_DRAPE)
82 TYPE (DRAPEG_) :: DRAPEG
83 double precision WA(*),WAP0(*)
84 TYPE (DYNAIN_DATABASE),
INTENT(INOUT) :: DYNAIN_DATA
85 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(IN) :: MAT_PARAM
89 INTEGER I,J,K,N,JJ,LEN,IOFF,IE,NG,,NFT,LFT,NPT,
90 . llt,ity,mlw,ih,ihbe,
id, iprt0, iprt,ir,is,it,
91 . npg,ipg,mpt,ipt,nptr,npts,nptt,nlay,l_pla,ithk,
92 . igtyp,npt_all,il,kk(12),large,irep,ipid,ivisc,
93 . imat,ipmat,ixfem,ixlay,isubstack,iptt,is_written,
94 , laynpt_max,nlay_max,ierr,l_dira,l_dirb,iorth,
95 . jdir,ilay,j1,j2,sedrape,numel_drape,kb
97 INTEGER,
DIMENSION(:) ,
ALLOCATABLE ::
98 my_real,
DIMENSION(:) ,
ALLOCATABLE :: THKLY
99 my_real,
DIMENSION(:,:) ,
ALLOCATABLE :: POSLY,THK_LY
100 INTEGER ,
DIMENSION(:),
ALLOCATABLE :: PTWA, PTWA_P0
101 INTEGER MAT(MVSIZ),PID(MVSIZ)
105 . sig(6) , mom(3),a1 ,a2
108 . sk(2),st(2),mk(2),mt(2),shk(2),sht(2),zz
110 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
111 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
112 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
113 . rx(mvsiz), ry(mvsiz), rz(mvsiz),
114 . sx(mvsiz), sy(mvsiz), sz(mvsiz),
116 my_real,
ALLOCATABLE,
DIMENSION(:) :: dira,dirb
117 my_real,
DIMENSION(:) ,
POINTER :: dir_a, dir_b
119 TYPE(g_bufel_) ,
POINTER :: GBUF
120 TYPE(L_BUFEL_) ,
POINTER :: LBUF
121 TYPE(buf_lay_) ,
POINTER :: BUFLY
123 parameter(pg = .577350269189626)
124 parameter(mpg=-.577350269189626)
125 DATA qpg/mpg,mpg,pg,mpg,pg,pg,mpg,pg/
127 ./
'$--1---|---2---|---3---|---4---|---5---|---6---|'/
129 ./
'---7---|---8---|---9---|---10--|'/
135 ALLOCATE(ptwa(
max(dynain_data%DYNAIN_NUMELC ,
136 . dynain_data%DYNAIN_NUMELTG)),stat=ierr)
137 ALLOCATE(ptwa_p0(0:
max(1,dynain_data%DYNAIN_NUMELC_G,
138 . dynain_data%DYNAIN_NUMELTG_G)),stat=ierr)
145 IF (dynain_data%DYNAIN_NUMELC/=0)
THEN
149 gbuf => elbuf_tab(ng)%GBUF
158 isubstack=iparg(71,ng)
162 nptr = elbuf_tab(ng)%NPTR
163 npts = elbuf_tab(ng)%NPTS
164 nptt = elbuf_tab(ng)%NPTT
165 nlay = elbuf_tab(ng)%NLAY
168 IF (ihbe == 23) npg=4
181 IF (igtyp == 51 .OR. igtyp == 52 )
THEN
184 npt_all = npt_all + elbuf_tab(ng)%BUFLY(il)%NPTT
185 laynpt_max =
max(laynpt_max , elbuf_tab(ng)%BUFLY(il)%NPTT)
190 nlay_max =
max(nlay,npt, elbuf_tab(ng)%NLAY)
191 ALLOCATE(matly(mvsiz*nlay_max), thkly(mvsiz*nlay_max*laynpt_max),
192 . posly(mvsiz,nlay_max*laynpt_max),thk_ly(nel,nlay_max*laynpt_max))
206 thk0(lft:llt) = gbuf%THK(lft:llt)
208 thk0(lft:llt) = thke(lft:llt)
210 numel_drape = numelc_drape
213 . elbuf_tab(ng),lft ,llt ,geo ,igeo ,
214 . mat ,pid ,thkly ,matly ,posly ,
215 . igtyp ,ixfem ,ixlay ,nlay ,npt ,
216 . isubstack ,stack ,drape_sh4n ,nft ,thke ,
217 . nel ,thk_ly ,drapeg%INDX_SH4N ,sedrape,numel_drape)
223 1 lft , llt ,ity ,ihbe ,igtyp
224 2 ixc ,ixtg ,nft ,x ,gbuf%OFF,
225 3 rx ,ry ,rz ,sx ,sy ,
226 4 sz ,e1x ,e2x ,e3x ,e1y ,
227 5 e2y ,e3y ,e1z ,e2z ,e3z )
233 l_dira = elbuf_tab(ng)%BUFLY(1)%LY_DIRA
234 l_dirb = elbuf_tab(ng)%BUFLY(1)%LY_DIRB
235 ALLOCATE(dira(nlay*nel*l_dira))
236 ALLOCATE(dirb(nlay*nel*l_dirb))
239 IF (l_dira == 0)
THEN
241 ELSEIF (irep == 0)
THEN
243 j1 = 1+(j-1)*l_dira*nel
245 dira(j1:j2) = elbuf_tab(ng)%BUFLY(j)%DIRA(1:nel*l_dira)
248 dir_a => dira(1:nlay*nel*l_dira)
249 dir_b => dirb(1:nlay*nel*l_dirb)
251 CALL cortdir3(elbuf_tab(ng),dir_a ,dir_b ,lft ,llt ,
252 . nlay ,irep ,rx ,ry ,rz ,
253 . sx ,sy ,sz ,e1x ,e1y ,
265 IF (igtyp == 11)
THEN
269 imat = matly((n-1)*llt + i)
270 IF (mat_param(imat)%IVISC > 0) ivisc = 1
273 ELSEIF (igtyp == 9 .OR. igtyp == 10)
THEN
276 imat = matly((n-1)*llt + i)
277 IF (mat_param(imat)%IVISC > 0) ivisc = 1
280 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR.igtyp == 52)
THEN
284 imat = matly((n-1)*llt + i)
285 IF (mat_param(imat)%IVISC > 0 ) ivisc = 1
296 IF (dynain_data%IPART_DYNAIN(iprt)==0) cycle
298 IF (mlw /= 0 .AND. mlw /= 13)
THEN
319 IF (mlw == 0 .or. mlw == 13)
THEN
328 ELSEIF (npg == 1)
THEN
334 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
335 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
336 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
337 sig(4) = gbuf%FOR(kk(4)+i)
338 sig(5) = gbuf%FOR(kk(5)+i)
346 1 i ,ilay ,nel ,iorth ,ity ,
347 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
348 3 rx ,ry ,rz ,sx ,sy ,
349 4 sz ,e1x ,e2x ,e3x ,e1y ,
350 5 e2y ,e3y ,e1z ,e2z ,e3z ,
369 IF (gbuf%G_PLA > 0)
THEN
378 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
379 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
380 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
381 sig(4) = gbuf%FOR(kk(4)+i)
382 sig(5) = gbuf%FOR(kk(5)+i)
390 1 i ,ilay ,nel ,iorth ,ity ,
392 3 rx ,ry ,rz ,sx ,sy ,
393 4 sz ,e1x ,e2x ,e3x ,e1y ,
394 5 e2y ,e3y ,e1z ,e2z ,e3z ,
413 IF (gbuf%G_PLA > 0)
THEN
423 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
424 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
425 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
426 sig(4) = gbuf%FOR(kk(4)+i)
427 sig(5) = gbuf%FOR(kk(5)+i)
435 1 i ,ilay ,nel ,iorth ,ity ,
436 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
437 3 rx ,ry ,rz ,sx ,sy ,
438 4 sz ,e1x ,e2x ,e3x ,e1y ,
439 5 e2y ,e3y ,e1z ,e2z ,e3z ,
468 st(1) = gbuf%HOURG(kk(1)+i)
469 st(2) =-gbuf%HOURG(kk(2)+i)
470 mt(1) = gbuf%HOURG(kk(3)+i)
471 mt(2) =-gbuf%HOURG(kk(4)+i)
472 sk(1) =-gbuf%HOURG(kk(7)+i)
473 sk(2) = gbuf%HOURG(kk(8)+i)
474 mk(1) =-gbuf%HOURG(kk(9)+i)
475 mk(2) = gbuf%HOURG(kk(10)+i)
476 sht(1)= gbuf%HOURG(kk(5)+i)
477 sht(2)=-gbuf%HOURG(kk(6)+i
479 shk(2)= gbuf%HOURG(kk(12)+i)
487 sig(1) = gbuf%FOR(kk(1)+i)
488 . + st(1)*qpg(2,ipg)+sk(1)*qpg(1,ipg)
489 sig(2) = gbuf%FOR(kk(2)+i)
490 . + st(2)*qpg(2,ipg)+sk(2)*qpg(1,ipg)
491 sig(3) = gbuf%FOR(kk(3)+i)
492 sig(4) = gbuf%FOR(kk(4)+i)
493 . + sht(2)*qpg(2,ipg)+shk(2)*qpg(1,ipg)
494 sig(5) = gbuf%FOR(kk(5)+i)
495 . + sht(1)*qpg(2,ipg)+shk(1)*qpg(1,ipg)
497 mom(1) = gbuf%MOM(kk(1)+i)
498 . + mt(1)*qpg(2,ipg)+mk(1)*qpg(1,ipg)
499 mom(2) = gbuf%MOM(kk(2)+i)
500 . + mt(2)*qpg(2,ipg)+mk(2)*qpg(1,ipg)
501 mom(3) = gbuf%MOM(kk(3)+i)
502 sig(1) = a1*sig(1) + a2*mom(1)
503 sig(2) = a1*sig(2) + a2*mom(2)
504 sig(3) = a1*sig(3) + a2*mom(3)
512 1 i ,ilay ,nel ,iorth ,ity ,
513 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
514 3 rx ,ry ,rz ,sx ,sy ,
515 4 sz ,e1x ,e2x ,e3x ,e1y ,
516 5 e2y ,e3y ,e1z ,e2z ,e3z ,
535 IF (gbuf%G_PLA > 0)
THEN
549 sig(1) = gbuf%FOR(kk(1)+i)
550 . + st(1)*qpg(2,ipg)+sk(1)*qpg(1,ipg)
551 sig(2) = gbuf%FOR(kk(2)+i)
552 . + st(2)*qpg(2,ipg)+sk(1)*qpg(1,ipg)
553 sig(3) = gbuf%FOR(kk(3)+i)
554 sig(4) = gbuf%FOR(kk(4)+i)
555 . + sht(2)*qpg(2,ipg)+shk(2)*qpg(1,ipg)
556 sig(5) = gbuf%FOR(kk(5)+i)
557 . + sht(1)*qpg(2,ipg)+shk(1)*qpg(1,ipg)
559 mom(1) = gbuf%MOM(kk(1)+i)
560 . + mt(1)*qpg(2,ipg)+mk(1)*qpg(1,ipg)
561 mom(2) = gbuf%MOM(kk(2)+i)
562 . + mt(2)*qpg(2,ipg)+mk(2)*qpg(1,ipg)
563 mom(3) = gbuf%MOM(kk(3)+i)
564 sig(1) = a1*sig(1) + a2*mom(1)
565 sig(2) = a1*sig(2) + a2*mom(2)
566 sig(3) = a1*sig(3) + a2*mom(3)
574 1 i ,ilay ,nel ,iorth ,ity ,
575 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
576 3 rx ,ry ,rz ,sx ,sy ,
577 4 sz ,e1x ,e2x ,e3x ,e1y ,
578 5 e2y ,e3y ,e1z ,e2z ,e3z ,
597 IF (gbuf%G_PLA > 0)
THEN
610 sig(1) = gbuf%FOR(kk(1)+i)
611 . + st(1)*qpg(2,ipg)+sk(1)*qpg(1,ipg)
612 sig(2) = gbuf%FOR(kk(2)+i)
613 . + st(2)*qpg(2,ipg)+sk(2)*qpg(1,ipg)
614 sig(3) = gbuf%FOR(kk(3)+i)
615 sig(4) = gbuf%FOR(kk(4)+i)
616 . + sht(2)*qpg(2,ipg)+shk(2)*qpg(1,ipg)
617 sig(5) = gbuf%FOR(kk(5)+i)
618 . + sht(1)*qpg(2,ipg)+shk(1)*qpg(1,ipg)
620 mom(1) = gbuf%MOM(kk(1)+i)
621 . + mt(1)*qpg(2,ipg)+mk(1)*qpg(1,ipg)
622 mom(2) = gbuf%MOM(kk(2)+i)
623 . + mt(2)*qpg(2,ipg)+mk(2)*qpg(1,ipg)
624 mom(3) = gbuf%MOM(kk(3)+i)
625 sig(1) = a1*sig(1) + a2*mom(1)
626 sig(2) = a1*sig(2) + a2*mom(2)
627 sig(3) = a1*sig(3) + a2*mom(3)
635 1 i ,ilay ,nel ,iorth ,ity ,
636 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
637 3 rx ,ry ,rz ,sx ,sy ,
638 4 sz ,e1x ,e2x ,e3x ,e1y ,
639 5 e2y ,e3y ,e1z ,e2z ,e3z ,
658 IF (gbuf%G_PLA > 0)
THEN
673 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
674 ipg = nptr*(is-1) + ir
677 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
678 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
679 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
680 sig(4) = gbuf%FORPG(k + kk(4) + i)
681 sig(5) = gbuf%FORPG(k + kk(5) + i)
689 1 i ,ilay ,nel ,iorth ,ity ,
690 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
691 3 rx ,ry ,rz ,sx ,sy ,
692 4 sz ,e1x ,e2x ,e3x ,e1y ,
693 5 e2y ,e3y ,e1z ,e2z ,e3z ,
712 IF (gbuf%G_PLA > 0)
THEN
726 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF
727 ipg = nptr*(is-1) + ir
731 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
732 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
733 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
734 sig(4) = gbuf%FORPG(k + kk(4) + i)
735 sig(5) = gbuf%FORPG(k + kk(5) + i)
743 1 i ,ilay ,nel ,iorth ,ity ,
744 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
745 3 rx ,ry ,rz ,sx ,sy ,
746 4 sz ,e1x ,e2x ,e3x ,e1y ,
747 5 e2y ,e3y ,e1z ,e2z ,e3z ,
766 IF (gbuf%G_PLA > 0)
THEN
780 ipg = nptr*(is-1) + ir
784 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
785 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
786 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
787 sig(4) = gbuf%FORPG(k + kk(4) + i)
788 sig(5) = gbuf%FORPG(k + kk(5) + i)
796 1 i ,ilay ,nel ,iorth ,ity ,
797 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
798 3 rx ,ry ,rz ,sx ,sy ,
799 4 sz ,e1x ,e2x ,e3x ,e1y ,
800 5 e2y ,e3y ,e1z ,e2z ,e3z ,
819 IF (gbuf%G_PLA > 0)
THEN
833 ELSEIF (mlw == 0 .or. mlw == 13)
THEN
844 ELSEIF(ihbe == 23)
THEN
846 st(1) = gbuf%HOURG(kk(1)+i)
847 st(2) =-gbuf%HOURG(kk(2)+i)
848 mt(1) = gbuf%HOURG(kk(3)+i)
849 mt(2) =-gbuf%HOURG(kk(4)+i)
850 sk(1) =-gbuf%HOURG(kk(7)+i)
851 sk(2) = gbuf%HOURG(kk(8)+i)
852 mk(1) =-gbuf%HOURG(kk(9)+i)
853 mk(2) = gbuf%HOURG(kk(10)+i)
854 sht(1)= gbuf%HOURG(kk(5)+i)
855 sht(2)=-gbuf%HOURG(kk(6)+i)
856 shk(1)=-gbuf%HOURG(kk(11)+i)
857 shk(2)= gbuf%HOURG(kk(12)+i)
861 bufly => elbuf_tab(ng)%BUFLY(il)
864 jdir = 1 + (il-1)*nel*2
868 lbuf => bufly%LBUF(1,1,it)
870 zz = posly(i,ipt)*thk0(i)
873 sig(1) = lbuf%SIG(kk(1)+i)
874 . + (st(1)+zz*mt(1))*qpg(2,ipg)
875 . + (sk(1)+zz*mk(1))*qpg(1,ipg)
876 sig(2) = lbuf%SIG(kk(2)+i)
877 . + (st(2)+zz*mt(2))*qpg(2,ipg)
878 . + (sk(2)+zz*mk(2))*qpg(1,ipg)
879 sig(3) = lbuf%SIG(kk(3)+i)
880 sig(4) = lbuf%SIG(kk(4)+i)
881 . + sht(2)*qpg(2,ipg)+shk(2)*qpg(1,ipg)
882 sig(5) = lbuf%SIG(kk(5)+i)
883 . + sht(1)*qpg(2,ipg)+shk(1)*qpg(1,ipg)
887 1 i ,il ,nel ,iorth ,ity ,
888 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
889 3 rx ,ry ,rz ,sx ,sy ,
890 4 sz ,e1x ,e2x ,e3x ,e1y ,
891 5 e2y ,e3y ,e1z ,e2z ,e3z ,
895 wa(jj) = two * posly(i,ipt)
910 IF (bufly%L_PLA > 0)
THEN
923 ELSEIF (nlay == 1)
THEN
925 bufly => elbuf_tab(ng)%BUFLY(1)
931 lbuf => bufly%LBUF(ir,is,it)
932 ipg = nptr*(is-1) + ir
933 sig(1) = lbuf%SIG(kk(1)+i)
934 sig(2) = lbuf%SIG(kk(2)+i)
935 sig(3) = lbuf%SIG(kk(3)+i)
936 sig(4) = lbuf%SIG(kk(4)+i)
937 sig(5) = lbuf%SIG(kk(5)+i)
944 sig(1) = sig(1) + lbuf%VISC(kk(1)+i)
945 sig(2) = sig(2) + lbuf%VISC(kk(2)+i)
946 sig(3) = sig(3) + lbuf%VISC(kk(3)+i)
947 sig(4) = sig(4) + lbuf%VISC(kk(4)+i)
948 sig(5) = sig(5) + lbuf%VISC(kk(5)+i)
953 jdir = 1 + (ilay-1)*llt*2
956 1 i ,ilay ,nel ,iorth ,ity ,
957 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
958 3 rx ,ry ,rz ,sx ,sy ,
959 4 sz ,e1x ,e2x ,e3x ,e1y ,
960 5 e2y ,e3y ,e1z ,e2z ,e3z ,
966 wa(jj) = two * posly(i,it)
981 IF (bufly%L_PLA > 0)
THEN
996 bufly => elbuf_tab(ng)%BUFLY(il)
999 jdir = 1 + (il-1)*llt*2
1005 lbuf => bufly%LBUF(ir,is,it)
1007 sig(1) = lbuf%SIG(kk(1)+i)
1008 sig(2) = lbuf%SIG(kk(2)+i)
1009 sig(3) = lbuf%SIG(kk(3)+i)
1010 sig(4) = lbuf%SIG(kk(4)+i)
1011 sig(5) = lbuf%SIG(kk(5)+i)
1017 sig(1) = sig(1) + lbuf%VISC(kk(1)+i)
1018 sig(2) = sig(2) + lbuf%VISC(kk(2)+i)
1019 sig(3) = sig(3) + lbuf%VISC(kk(3)+i)
1020 sig(4) = sig(4) + lbuf%VISC(kk(4)+i)
1021 sig(5) = sig(5) + lbuf%VISC(kk(5)+i)
1025 1 i ,il ,nel ,iorth ,ity ,
1026 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1027 3 rx ,ry ,rz ,sx ,sy ,
1028 4 sz ,e1x ,e2x ,e3x ,e1y ,
1029 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1033 wa(jj) = two * posly(i,ipt)
1048 IF (bufly%L_PLA > 0)
THEN
1049 wa(jj) = lbuf%PLA(i)
1065 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
1066 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
1068 DEALLOCATE(matly, thkly, posly, thk_ly)
1077 IF (nspmd == 1)
THEN
1080 DO n=1,dynain_data%DYNAIN_NUMELC
1089 CALL spmd_stat_pgather(ptwa,dynain_data%DYNAIN_NUMELC,ptwa_p0,dynain_data%DYNAIN_NUMELC_G)
1095 IF (ispmd == 0.AND.len > 0)
THEN
1096 IF(dynain_data%ZIPDYNAIN==0)
THEN
1097 WRITE(iudynain,
'(A)') delimit
1098 WRITE(iudynain,
'(A)')
'*INITIAL_STRESS_SHELL'
1099 WRITE(iudynain,
'(A)')
1100 .
'$ SHELLID NPG NBINT LARGE '
1101 WRITE(iudynain,
'(A)')
1102 .
'$ IF(NPT == 0), REPEAT I=1,NPG :'
1103 WRITE(iudynain,
'(A)')
1104 .
'$ IF(NPT /= 0) REPEAT K=1,NPT : REPEAT I=1,NPG :'
1105 WRITE(iudynain,
'(A)')
1106 .
'$ T SIGXX SIGYY SIGZZ SIGXY SIGYZ SIGZX EPSP '
1107 WRITE(iudynain,
'(A)') delimit
1109 WRITE(line,
'(A)') delimit
1111 WRITE(line,
'(A)')
'*INITIAL_STRESS_SHELL'
1114 .
'$ SHELLID NPG NBINT LARGE '
1117 .
'$ IF(NPT == 0), REPEAT I=1,NPG :'
1120 .
'$ IF(NPT /= 0) REPEAT K=1,NPT : REPEAT I=1,NPG :'
1123 .
'$ T SIGXX SIGYY SIGZZ SIGXY SIGYZ SIGZX EPSP '
1125 WRITE(line,
'(A)') delimit
1130 DO n=1,dynain_data%DYNAIN_NUMELC_G
1136 ioff = nint(wap0(j + 1))
1139 id = nint(wap0(j + 2))
1140 npt = nint(wap0(j + 3))
1141 npg = nint(wap0(j + 4))
1142 large = nint(wap0(j + 5))
1145 IF(dynain_data%ZIPDYNAIN==0)
THEN
1146 WRITE(iudynain,
'(3I8,16X,I8)')
id,npg,npt,large
1148 WRITE(line,
'(3I8,16X,I8)')
id,npg,npt,large
1153 IF(dynain_data%ZIPDYNAIN==0)
THEN
1154 WRITE(iudynain,
'(1P5G16.9)')(wap0(jj + k),k=1,5)
1155 WRITE(iudynain,
'(1P3G16.9)')(wap0(jj + k),k=6,8)
1157 WRITE(line,
'(1P5G16.9)')(wap0(jj + k),k=1,5)
1159 WRITE(line,
'(1P3G16.9)')(wap0(jj + k),k=6,8)
1167 IF(dynain_data%ZIPDYNAIN==0)
THEN
1168 WRITE(iudynain,
'(1P5G16.9)')(wap0(j + k),k=1,5)
1169 WRITE(iudynain,
'(1P3G16.9)')(wap0(j + k),k=6,8)
1171 WRITE(line,
'(1P5G16.9)')(wap0(j + k),k=1,5)
1173 WRITE(line,
'(1P3G16.9)')(wap0(j + k),k=6,8)
1191 IF(dynain_data%DYNAIN_NUMELTG/=0)
THEN
1195 gbuf => elbuf_tab(ng)%GBUF
1203 ipid = ixtg(5,nft+1)
1205 nptr = elbuf_tab(ng)%NPTR
1206 npts = elbuf_tab(ng)%NPTS
1207 nptt = elbuf_tab(ng)%NPTT
1208 nlay = elbuf_tab(ng)%NLAY
1223 IF (igtyp == 51 .OR. igtyp == 52 )
THEN
1226 npt_all = npt_all + elbuf_tab(ng)%BUFLY(k)%NPTT
1227 laynpt_max =
max(laynpt_max , elbuf_tab(ng)%BUFLY(k)%NPTT)
1229 mpt =
max(1,npt_all)
1232 nlay_max =
max(nlay,npt, elbuf_tab(ng)%NLAY)
1233 ALLOCATE(matly(mvsiz*nlay_max), thkly(mvsiz*nlay_max*laynpt_max),
1234 . posly(mvsiz,nlay_max*laynpt_max),thk_ly(nel,nlay_max*laynpt_max))
1240 mat(i)=ixtg(1,nft+i)
1241 pid(i)=ixtg(5,nft+i)
1248 thk0(lft:llt) = gbuf%THK(lft:llt)
1250 thk0(lft:llt) = thke(lft:llt)
1252 numel_drape = numeltg_drape
1255 . elbuf_tab(ng),lft ,llt ,geo ,igeo ,
1256 . mat ,pid ,thkly ,matly ,posly ,
1257 . igtyp ,ixfem ,ixlay ,nlay ,npt ,
1258 . isubstack ,stack ,drape_sh3n ,nft ,thke ,
1259 . nel ,thk_ly ,drapeg%INDX_SH3N,sedrape,numel_drape)
1265 1 lft , llt ,ity ,ihbe ,igtyp ,
1266 2 ixc ,ixtg ,nft ,x ,gbuf%OFF,
1267 3 rx ,ry ,rz ,sx ,sy ,
1268 4 sz ,e1x ,e2x ,e3x ,e1y ,
1269 5 e2y ,e3y ,e1z ,e2z ,e3z )
1275 l_dira = elbuf_tab(ng)%BUFLY(1)%LY_DIRA
1276 l_dirb = elbuf_tab(ng)%BUFLY(1)%LY_DIRB
1277 ALLOCATE(dira(nlay*nel*l_dira))
1278 ALLOCATE(dirb(nlay*nel*l_dirb))
1281 IF (l_dira == 0)
THEN
1283 ELSEIF (irep == 0)
THEN
1285 j1 = 1+(j-1)*l_dira*nel
1287 dira(j1:j2) = elbuf_tab(ng)%BUFLY(j)%DIRA(1:nel*l_dira)
1290 dir_a => dira(1:nlay*nel*l_dira)
1291 dir_b => dirb(1:nlay*nel*l_dirb)
1293 CALL cortdir3(elbuf_tab(ng),dir_a ,dir_b ,lft ,llt ,
1294 . nlay ,irep ,rx ,ry ,rz ,
1295 . sx ,sy ,sz ,e1x ,e1y ,
1296 . e1z ,e2x ,e2y ,e2z ,nel )
1304 IF (igtyp == 11)
THEN
1308 imat = matly((n-1)*llt + i)
1309 IF (mat_param(imat)%IVISC > 0 ) ivisc = 1
1312 ELSEIF (igtyp == 9 .OR. igtyp == 10)
THEN
1315 imat = matly((n-1)*llt + i)
1316 IF (mat_param(imat)%IVISC > 0 ) ivisc = 1
1319 ELSEIF(igtyp == 17 .OR. igtyp == 51 .OR.igtyp == 52)
THEN
1323 imat = matly((n-1)*llt + i)
1324 IF (mat_param(imat)%IVISC > 0 ) ivisc = 1
1336 IF (dynain_data%IPART_DYNAIN(iprt) == 0) cycle
1338 IF (mlw /= 0 .AND. mlw /= 13)
THEN
1339 wa(jj) = gbuf%OFF(i)
1344 wa(jj) = ixtg(nixtg,n)
1357 IF (mlw == 0 .or. mlw == 13)
THEN
1364 ELSEIF (npg == 1)
THEN
1370 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
1371 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
1372 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
1373 sig(4) = gbuf%FOR(kk(4)+i)
1374 sig(5) = gbuf%FOR(kk(5)+i)
1382 1 i ,ilay ,nel ,iorth ,ity ,
1383 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1384 3 rx ,ry ,rz ,sx ,sy ,
1385 4 sz ,e1x ,e2x ,e3x ,e1y ,
1386 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1405 IF (gbuf%G_PLA > 0)
THEN
1406 wa(jj) = gbuf%PLA(i)
1414 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
1415 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
1416 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
1417 sig(4) = gbuf%FOR(kk(4)+i)
1418 sig(5) = gbuf%FOR(kk(5)+i)
1426 1 i ,ilay ,nel ,iorth ,ity ,
1427 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1428 3 rx ,ry ,rz ,sx ,sy ,
1429 4 sz ,e1x ,e2x ,e3x ,e1y ,
1430 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1449 IF (gbuf%G_PLA > 0)
THEN
1450 wa(jj) = gbuf%PLA(i)
1459 sig(1) = a1*gbuf%FOR(kk(1)+i) + a2* gbuf%MOM(kk(1)+i)
1460 sig(2) = a1*gbuf%FOR(kk(2)+i) + a2* gbuf%MOM(kk(2)+i)
1461 sig(3) = a1*gbuf%FOR(kk(3)+i) + a2* gbuf%MOM(kk(3)+i)
1462 sig(4) = gbuf%FOR(kk(4)+i)
1463 sig(5) = gbuf%FOR(kk(5)+i)
1471 1 i ,ilay ,nel ,iorth ,ity ,
1472 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1473 3 rx ,ry ,rz ,sx ,sy ,
1474 4 sz ,e1x ,e2x ,e3x ,e1y ,
1475 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1494 IF (gbuf%G_PLA > 0)
THEN
1495 wa(jj) = gbuf%PLA(i)
1506 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
1507 ipg = nptr*(is-1) + ir
1511 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
1512 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
1513 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
1514 sig(4) = gbuf%FORPG(k + kk(4) + i)
1515 sig(5) = gbuf%FORPG(k + kk(5) + i)
1523 1 i ,ilay ,nel ,iorth ,ity ,
1524 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1525 3 rx ,ry ,rz ,sx ,sy ,
1526 4 sz ,e1x ,e2x ,e3x ,e1y ,
1527 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1546 IF (gbuf%G_PLA > 0)
THEN
1547 wa(jj) = lbuf%PLA(i)
1560 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
1561 ipg = nptr*(is-1) + ir
1564 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
1565 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
1566 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
1567 sig(4) = gbuf%FORPG(k + kk(4) + i)
1568 sig(5) = gbuf%FORPG(k + kk(5) + i)
1576 1 i ,ilay ,nel ,iorth ,ity ,
1577 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1578 3 rx ,ry ,rz ,sx ,sy ,
1579 4 sz ,e1x ,e2x ,e3x ,e1y ,
1580 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1599 IF (gbuf%G_PLA > 0)
THEN
1600 wa(jj) = lbuf%PLA(i)
1612 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(ir,is,1)
1613 ipg = nptr*(is-1) + ir
1616 sig(1) = a1*gbuf%FORPG(k + kk(1) + i) + a2*gbuf%MOMPG(kb + kk(1) + i)
1617 sig(2) = a1*gbuf%FORPG(k + kk(2) + i) + a2*gbuf%MOMPG(kb + kk(2) + i)
1618 sig(3) = a1*gbuf%FORPG(k + kk(3) + i) + a2*gbuf%MOMPG(kb + kk(3) + i)
1619 sig(4) = gbuf%FORPG(k + kk(4) + i)
1620 sig(5) = gbuf%FORPG(k + kk(5) + i)
1628 1 i ,ilay ,nel ,iorth ,ity ,
1629 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1630 3 rx ,ry ,rz ,sx ,sy ,
1631 4 sz ,e1x ,e2x ,e3x ,e1y ,
1632 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1651 IF (gbuf%G_PLA > 0)
THEN
1652 wa(jj) = lbuf%PLA(i)
1661 IF (mlw == 0 .or. mlw == 13)
THEN
1668 ELSEIF (nlay == 1)
THEN
1670 bufly => elbuf_tab(ng)%BUFLY(1)
1676 lbuf => bufly%LBUF(ir,is,it)
1677 ipg = nptr*(is-1) + ir
1678 sig(1) = lbuf%SIG(kk(1)+i)
1679 sig(2) = lbuf%SIG(kk(2)+i)
1680 sig(3) = lbuf%SIG(kk(3)+i)
1681 sig(4) = lbuf%SIG(kk(4)+i)
1682 sig(5) = lbuf%SIG(kk(5)+i)
1689 sig(1) = sig(1) + lbuf%VISC(kk(1)+i)
1690 sig(2) = sig(2) + lbuf%VISC(kk(2)+i)
1691 sig(3) = sig(3) + lbuf%VISC(kk(3)+i)
1692 sig(4) = sig(4) + lbuf%VISC(kk(4)+i)
1693 sig(5) = sig(5) + lbuf%VISC(kk(5)+i)
1698 jdir = 1 + (ilay-1)*llt*2
1701 1 i ,ilay ,nel ,iorth ,ity ,
1702 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1703 3 rx ,ry ,rz ,sx ,sy ,
1704 4 sz ,e1x ,e2x ,e3x ,e1y ,
1705 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1709 wa(jj) = two * posly(i,it)
1723 IF (bufly%L_PLA > 0)
THEN
1724 wa(jj) = lbuf%PLA(i)
1735 bufly => elbuf_tab(ng)%BUFLY(il)
1739 lbuf => bufly%LBUF(ipg,1,it)
1742 sig(1) = lbuf%SIG(kk(1)+i)
1743 sig(2) = lbuf%SIG(kk(2)+i)
1744 sig(3) = lbuf%SIG(kk(3)+i)
1745 sig(4) = lbuf%SIG(kk(4)+i)
1746 sig(5) = lbuf%SIG(kk(5)+i)
1753 sig(1) = sig(1) + lbuf%VISC(kk(1)+i)
1754 sig(2) = sig(2) + lbuf%VISC(kk(2)+i)
1755 sig(3) = sig(3) + lbuf%VISC(kk(3)+i)
1756 sig(4) = sig(4) + lbuf%VISC(kk(4)+i)
1757 sig(5) = sig(5) + lbuf%VISC(kk(5)+i)
1762 jdir = 1 + (il-1)*llt*2
1765 1 i ,ilay ,nel ,iorth ,ity ,
1766 2 igtyp ,mlw ,jdir ,sig ,elbuf_tab(ng),
1767 3 rx ,ry ,rz ,sx ,sy ,
1768 4 sz ,e1x ,e2x ,e3x ,e1y ,
1769 5 e2y ,e3y ,e1z ,e2z ,e3z ,
1772 wa(jj) = two * posly(i,iptt)
1787 wa(jj) = lbuf%PLA(i)
1803 IF (
ALLOCATED(dirb))
DEALLOCATE(dirb)
1804 IF (
ALLOCATED(dira))
DEALLOCATE(dira)
1805 DEALLOCATE(matly, thkly, posly, thk_ly)
1811 IF (nspmd == 1)
THEN
1818 DO n=1,dynain_data%DYNAIN_NUMELTG
1823 CALL spmd_stat_pgather(ptwa,dynain_data%DYNAIN_NUMELTG,ptwa_p0,dynain_data%DYNAIN_NUMELTG_G)
1828 IF (ispmd == 0.AND.len > 0)
THEN
1829 IF(is_written == 0 )
THEN
1830 IF(dynain_data%ZIPDYNAIN==0)
THEN
1831 WRITE(iudynain,
'(A)') delimit
1832 WRITE(iudynain,
'(A)')
'*INITIAL_STRESS_SHELL'
1833 WRITE(iudynain,
'(A)')
1834 .
'$ SHELLID NPG NBINT LARGE '
1835 WRITE(iudynain,
'(A)')
1836 .
'$ IF(NPT == 0), REPEAT I=1,NPG :'
1837 WRITE(iudynain,
'(A)')
1838 .
'$ IF(NPT /= 0) REPEAT K=1,NPT : REPEAT I=1,NPG :'
1839 WRITE(iudynain,
'(A)')
1840 .
'$ T SIGXX SIGYY SIGZZ SIGXY SIGYZ SIGZX EPSP '
1841 WRITE(iudynain,
'(A)') delimit
1843 WRITE(line,
'(A)')
'*INITIAL_STRESS_SHELL'
1846 .
'$ SHELLID NPG NBINT LARGE '
1849 .
'$ IF(NPT == 0), REPEAT I=1,NPG :'
1852 .
'$ IF(NPT /= 0) REPEAT K=1,NPT : REPEAT I=1,NPG :'
1855 .
'$ T SIGXX SIGYY SIGZZ SIGXY SIGYZ SIGZX EPSP '
1857 WRITE(line,
'(A)') delimit
1863 DO n=1,dynain_data%DYNAIN_NUMELTG_G
1869 ioff = nint(wap0(j + 1))
1871 id = nint(wap0(j + 2))
1872 npt = nint(wap0(j + 3))
1873 npg = nint(wap0(j + 4))
1874 large = nint(wap0(j + 5))
1876 IF(dynain_data%ZIPDYNAIN==0)
THEN
1877 WRITE(iudynain,
'(3I8,16X,I8)')
id,npg,npt,large
1879 WRITE(line,
'(3I8,16X,I8)')
id,npg,npt,large
1884 IF(dynain_data%ZIPDYNAIN==0)
THEN
1885 WRITE(iudynain,
'(1P5G16.9)')(wap0(jj + k),k=1,5)
1886 WRITE(iudynain,
'(1P3G16.9)')(wap0(jj + k),k=6,8)
1888 WRITE(line,
'(1P5G16.9)')(wap0(jj + k),k=1,5)
1890 WRITE(line,
'(1P3G16.9)')(wap0(jj + k),k=6,8)
1898 IF(dynain_data%ZIPDYNAIN==0)
THEN
1899 WRITE(iudynain,
'(1P5G16.9)')(wap0(j + k),k=1,5)
1900 WRITE(iudynain,
'(1P3G16.9)')(wap0(j + k),k=6,8)
1902 WRITE(line,
'(1P5G16.9)')(wap0(j + k),k=1,5)
1904 WRITE(line,
'(1P3G16.9)')(wap0(j + k),k=6,8)
1916 DEALLOCATE(ptwa,ptwa_p0)