35 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
36 . IGEO ,GEO ,IWORKSH ,THK ,
37 . STACK ,IPM ,IGEO_STACK ,GEO_STACK ,
38 . STACK_INFO ,NUMGEO_STACK,NPROP_STACK)
48 use element_mod ,
only : nixc,nixtg
52#include "implicit_f.inc"
65 . IXTG(NIXTG,*),IGEO(NPROPGI,*),IWORKSH(3,*),IPM(NPROPMI,*),
66 . IGEO_STACK(NPROPGI,*),NUMGEO_STACK(*),
69 . geo(npropg,*),thk(*),geo_stack(npropg,*)
71 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
72 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) :: IGRSH4N
73 TYPE(STACK_INFO_ ),
INTENT(INOUT),
DIMENSION (NPROP_STACK):: STACK_INFO
77 INTEGER I,J,II,NSTACK,NPLY,IGTYP,ID,JD,IDPLY,NEL,
78 . IAD,ITY,,PID,IS,IDS,NSH,MODE,NS,JJ,NGEO_STACK,
79 . IGRTYP,N1,IPMAT,IPANG,IPTHK,IIGEO,NSS,IPPOS,NPT,IIS,NP,
80 . JJPID,JSTACK,JPID,ITG,IPMAT_IPLY,ISH3N,J4N,J3N,IPOS,
81 . mat_ly,nlay,nptt,ipidl,it,ilay,ipthk_nptt,ippos_nptt,
82 . iint,ipid_ly,ipdir ,ns_stack0 ,npt_stack0,is0,js,pids,ip,
83 . ii1,ii2,jj1,jj2,ii3,ii4,ii5,jj3,jj4,jj5, nkey,irest,ibit,ikey,
87 . IPTPLY(1000),NBFI,IPPID,ITAG(1000),
88 . NGL,IPID_1,NUMS,IPWEIGHT,IPTHKLY,NSHQ4,NSHT3
89 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IPIDPLY
90 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IDGR4N,IDGR3N
91 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISUBSTACK
92 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX_SH4,INDEX_T3
93 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NFIRST,NLAST
94 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDX_SH,PID_SH
95 my_real,
DIMENSION(:,:),
ALLOCATABLE :: geo0
98 . thickt,zshift,tmin,tmax,dt,thk_ly,pos_ly,thk_it(100),
99 . pos_it(100),pos_nptt,thk_nptt,pos_0,thinning,pos
101 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
102 INTEGER,
DIMENSION (:) ,
ALLOCATABLE ::INDX,
104 INTEGER ,
DIMENSION(:,:),
ALLOCATABLE ::
105 TYPE (STACK_PLY) :: STACK, IWORKS
107 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
110 . a_gauss(9,9),w_gauss(9,9)
116 2 -.577350269189626,0.577350269189626,0. ,
119 3 -.774596669241483,0. ,0.774596669241483,
122 4 -.861136311594053,-.339981043584856,0.339981043584856,
123 4 0.861136311594053,0. ,0. ,
125 5 -.906179845938664,-.538469310105683,0. ,
126 5 0.538469310105683,0.906179845938664,0. ,
128 6 -.932469514203152,-.661209386466265,-.238619186083197,
129 6 0.238619186083197,0.661209386466265,0.932469514203152,
131 7 -.949107912342759,-.741531185599394,-.405845151377397,
132 7 0. ,0.405845151377397,0.741531185599394,
133 7 0.949107912342759,0. ,0. ,
134 8 -.960289856497536,-.796666477413627,-.525532409916329,
135 8 -.183434642495650,0.183434642495650,0.525532409916329,
136 8 0.796666477413627,0.960289856497536,0. ,
137 9 -.968160239507626,-.836031107326636,-.613371432700590,
138 9 -.324253423403809,0. ,0.324253423403809,
139 9 0.613371432700590,0.836031107326636,0.968160239507626/
147 3 0.555555555555556,0.888888888888889,0.555555555555556,
150 4 0.347854845137454,0.652145154862546,0.652145154862546,
151 4 0.347854845137454,0. ,0. ,
153 5 0.236926885056189,0.478628670499366,0.568888888888889,
154 5 0.478628670499366,0.236926885056189,0. ,
156 6 0.171324492379170,0.360761573048139,0.467913934572691,
157 6 0.467913934572691,0.360761573048139,0.171324492379170,
159 7 0.129484966168870,0.279705391489277,0.381830050505119,
160 7 0.417959183673469,0.381830050505119,0.279705391489277,
161 7 0.129484966168870,0. ,0. ,
162 8 0.101228536290376,0.222381034453374,0.313706645877887,
163 8 0.362683783378362,0.362683783378362,0.313706645877887,
164 8 0.222381034453374,0.101228536290376,0. ,
165 9 0.081274388361574,0.180648160694857,0.260610696402935,
166 9 0.312347077040003,0.330239355001260,0.312347077040003,
167 9 0.260610696402935,0.180648160694857,0.081274388361574/
174 integer,
DIMENSION(:) ,
POINTER :: IPT
176 TYPE(TMP_WORK) ,
DIMENSION(:),
POINTER :: IWORK_T
182 CALL my_alloc(geo0,1000,numgeo)
183 ALLOCATE(iwork_t(numelc+numeltg))
184 ALLOCATE(ipidply(numgeo+numply))
185 ALLOCATE(idgr4n(numgeo+numply))
186 ALLOCATE(idgr3n(numgeo+numply))
187 ALLOCATE(isubstack(numgeo+numstack))
188 ALLOCATE(index_sh4(numelc))
189 ALLOCATE(index_t3(numeltg))
190 ALLOCATE(nfirst(numelc+numeltg))
191 ALLOCATE(nlast(numelc+numeltg))
192 ALLOCATE(indx_sh(numelc+numeltg))
193 ALLOCATE(pid_sh(numelc+numeltg))
195 IF(ipart_stack > 0)
THEN
203 IF (igtyp == 19 .AND. nstack > 0)
THEN
206 idgr4n(nply) = igeo(40,i)
207 idgr3n(nply) = igeo(41,i)
238 nbit = bit_size(nply)
239 irest = mod(nply,nbit)
241 IF(irest > 0) nkey = nkey + 1
243 ALLOCATE( activ_ply(numelc+numeltg,nkey))
244 IF(numelc + numeltg > 0)activ_ply = 0
250 IF(igtyp == 17 .OR. igtyp == 51)
THEN
260 IF(igtyp == 17 .OR. igtyp == 51)
THEN
270 nstack = igeo(42, idply)
271 IF(j > 0 .AND. nstack > 0 )
THEN
272 nel = igrsh4n(j)%NENTITY
274 ity = igrsh4n(j)%GRTYPE
276 idshel = igrsh4n(j)%ENTITY(ii)
279 IF(igtyp == 17 .OR. igtyp == 51)
THEN
281 ids = igeo(200 + is, idply)
283 iworksh(1,idshel) = iworksh(1,idshel) + 1
292 IF(j > 0 .AND. nstack > 0 )
THEN
293 nel = igrsh3n(j)%NENTITY
295 ity = igrsh3n(j)%GRTYPE
298 ish3n = igrsh3n(j)%ENTITY(ii)
301 IF(igtyp == 17 .OR. igtyp == 51)
THEN
303 ids = igeo(200 + is,idply)
305 idshel = ish3n + numelc
306 iworksh(1,idshel) = iworksh(1,idshel ) + 1
313 IF(j4n == 0 .AND. j3n == 0 .AND. nstack > 0 )
THEN
318 IF(igtyp == 17 .OR. igtyp == 51)
THEN
320 ids = igeo(200 + is,idply)
322 iworksh(1,ii) = iworksh(1,ii) + 1
333 IF(igtyp == 17 .OR. igtyp == 51)
THEN
335 ids = igeo(200 + is,idply)
337 iworksh(1,itg) = iworksh(1,itg) + 1
350 IF(igtyp == 17 .OR. igtyp == 51 .AND. npt > 0)
THEN
351 NULLIFY(iwork_t(i)%IPT)
352 ALLOCATE(iwork_t(i)%IPT(npt))
362 IF((igtyp == 17 .OR. igtyp == 51) .AND. npt > 0)
THEN
363 NULLIFY(iwork_t(ii)%IPT)
364 ALLOCATE(iwork_t(ii)%IPT(npt))
376 nstack = igeo(42, idply)
378 IF(mod(i,nbit) > 0 ) ikey = ikey + 1
379 ikey =
min(ikey, nkey)
380 ibit = i - (ikey - 1)*nbit
384 IF(j > 0 .AND. nstack > 0 )
THEN
385 nel = igrsh4n(j)%NENTITY
387 ity = igrsh4n(j)%GRTYPE
389 idshel = igrsh4n(j)%ENTITY(ii)
392 IF(igtyp == 17 .OR. igtyp == 51)
THEN
394 ids = igeo(200 + is, idply)
396 iworksh(1,idshel) = iworksh(1,idshel) + 1
397 npt = iworksh(1,idshel)
398 iwork_t(idshel)%IPT(npt) = idply
399 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
408 IF(j > 0 .AND. nstack > 0 )
THEN
413 ish3n = igrsh3n(j)%ENTITY(ii)
416 IF(igtyp == 17 .OR. igtyp == 51)
THEN
418 ids = igeo(200 + is,idply)
420 idshel = ish3n + numelc
421 iworksh(1,idshel) = iworksh(1,idshel ) + 1
422 npt = iworksh(1,idshel)
424 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
431 IF(j4n == 0 .AND. j3n == 0 .AND. nstack > 0 )
THEN
439 ids = igeo(200 + is,idply)
441 iworksh(1,ii) = iworksh(1,ii) + 1
443 iwork_t(ii)%IPT(npt) = idply
444 activ_ply(ii,ikey) = ibset(activ_ply(ii,ikey),ibit)
455 IF(igtyp == 17 .OR. igtyp == 51)
THEN
457 ids = igeo(200 + is,idply)
459 iworksh(1,itg) = iworksh(1,itg) + 1
461 iwork_t(itg)%IPT(npt) = idply
462 activ_ply(itg,ikey) = ibset(activ_ply(itg,ikey),ibit)
482 IF(igtyp == 17 .OR. igtyp == 51)
THEN
492 IF(igtyp == 17 .OR. igtyp == 51)
THEN
494 indx_sh(nsh) = i+numelc
501 ALLOCATE(indx(2*nsh),itri(2+nkey,nsh))
508 itri(1,i) = pid_sh(i)
509 itri(2,i) = iworksh(1,ii)
511 itri(2+j,i) = activ_ply(ii,j)
524 ii = itri(ikey,indx(i))
525 jj = itri(ikey,indx(i-1))
529 nlast(ns) = nfirst(ns)
531 ELSEIF(ikey == nkey)
THEN
532 nlast(ns) = nlast(ns) + 1
547 npt_stack =
max(npt_stack,npt)
550 ALLOCATE(iworks%IGEO(3*npt_stack+2,ns_stack))
551 ALLOCATE(iworks%GEO(6*npt_stack+1,ns_stack))
557 ngeo_stack = numgeo + is
569 DO i= nfirst(is) , nlast(is)
572 iworksh(2,ii) = ngeo_stack
585 nums = numgeo_stack(pid)
588 jpid = stack_info(nums)%PID(j)
591 jjpid = iwork_t(iis)%IPT(jj)
592 IF(jjpid == jpid)
THEN
601 iworks%IGEO(1,is) = npt
602 iworks%IGEO(2,is) = pid
605 ipmat_iply = ipmat + npt
610 ipthkly = ipdir + npt
611 ipweight = ipthkly + npt
612 nums= numgeo_stack(pid)
615 iworks%IGEO(ippid + j ,is) = stack_info(nums)%PID(jstack)
616 iworks%IGEO(ipmat + j ,is) = stack_info(nums)%MID(jstack)
617 iworks%IGEO(ipmat_iply + j ,is) = stack_info(nums)%MID_IP(jstack)
618 iworks%GEO(ipang + j ,is) = stack_info(nums)%ANG(jstack)
619 iworks%GEO(ipthk + j ,is) = stack_info(nums)%THK(jstack)
620 iworks%GEO(ippos + j ,is) = stack_info(nums)%POS(jstack)
621 iworks%GEO(ipdir + j ,is) = stack_info(nums)%DIR(jstack)
622 iworks%GEO(ipthkly + j ,is) = stack_info(nums)%THKLY(jstack)
623 iworks%GEO(ipweight + j ,is) = stack_info(nums)%WEIGHT(jstack)
628 zshift = geo(199,pid)
633 dt = half*iworks%GEO(ipthk + j ,is)
634 tmin =
min(tmin,iworks%GEO(ippos + j ,is)-dt)
635 tmax =
max(tmax,iworks%GEO(ippos + j ,is)+dt)
639 iworks%GEO(ipthk+j,is)=iworks%GEO(ipthk+j,is)/
max(thickt,em20)
640 iworks%GEO(ippos+j,is)=iworks%GEO(ippos+j,is)/
max(thickt,em20)
646 thickt = thickt + iworks%GEO(ipthk+j,is)
649 iworks%GEO(ipthk+j,is) =
650 . iworks%GEO(ipthk+j,is)/
max(thickt,em20)
653 IF(ipos == 2 )zshift = zshift /
max(thickt,em20)
655 iworks%GEO(ippos+1,is) = zshift + half*iworks%GEO(ipthk+1,is)
657 iworks%GEO(ippos+j,is) = iworks%GEO(ippos+j-1,is)
658 . + half*(iworks%GEO(ipthk+j,is)+iworks%GEO(ipthk+j-1,is))
663 iworks%GEO(1,is) = thickt
668 DO i= nfirst(is) , nlast(is)
671 IF (thk(ii) == zero) thk(ii) = thickt
715 DEALLOCATE(indx,itri,activ_ply)
722 npt_stack0 = npt_stack
724 IF(ipart_pcompp > 0)
THEN
729 ids = igeo_stack(42,numstack + i)
732 ipidply(nply) = numstack + i
733 idgr4n(nply) = igeo_stack(40,numstack + i)
734 idgr3n(nply) = igeo_stack(41,numstack + i)
767 nbit = bit_size(nply)
768 irest = mod(nply,nbit)
770 IF(irest > 0) nkey = nkey + 1
772 ALLOCATE( activ_ply(numelc+numeltg,nkey))
773 IF(numelc + numeltg > 0)activ_ply = 0
776 ALLOCATE(icsh_stack(numelc + numeltg) )
777 IF(numelc + numeltg > 0)icsh_stack = 0
783 ids = igeo_stack(42, idply)
784 IF(j > 0 .AND. ids > 0 )
THEN
785 nel = igrsh4n(j)%NENTITY
788 ity = igrsh4n(j)%GRTYPE
790 idshel = igrsh4n(j)%ENTITY(ii)
794 IF(icsh_stack(idshel) == 0)
THEN
795 iworksh(1,idshel) = iworksh(1,idshel) + 1
796 icsh_stack(idshel) = ids
797 ELSEIF(icsh_stack(idshel) == ids)
THEN
798 iworksh(1,idshel) = iworksh(1,idshel) + 1
801 ipid_1=igeo_stack(1,icsh_stack(idshel))
802 ngl =ixc(nixc,idshel)
805 . anmode=aninfo_blind_1,
808 . i2= igeo_stack(1,ids),
809 . i3= igeo_stack(1,ipid_1) )
816 IF(j > 0 .AND. ids > 0 )
THEN
817 nel = igrsh3n(j)%NENTITY
819 ity = igrsh3n(j)%GRTYPE
823 ish3n = igrsh3n(j)%ENTITY(ii)
827 idshel = ish3n + numelc
828 IF(icsh_stack(idshel) == 0)
THEN
829 iworksh(1,idshel) = iworksh(1,idshel ) + 1
830 icsh_stack(idshel) = ids
831 ELSEIF(icsh_stack(idshel) == ids)
THEN
832 iworksh(1,idshel) = iworksh(1,idshel ) + 1
835 ipid_1=igeo_stack(1,icsh_stack(idshel))
836 ngl =ixtg(nixtg,idshel)
839 . anmode=aninfo_blind_1,
842 . i2= igeo_stack(1,ids),
843 . i3= igeo_stack(1,ipid_1) )
852 IF(numelc+numeltg > 0) icsh_stack = 0
857 IF(igtyp == 52 .AND. npt > 0)
THEN
858 NULLIFY(iwork_t(i)%IPT)
859 ALLOCATE(iwork_t(i)%IPT(npt))
869 IF(igtyp == 52 .AND. npt > 0)
THEN
870 NULLIFY(iwork_t(ii)%IPT)
871 ALLOCATE(iwork_t(ii)%IPT(npt))
881 ids = igeo_stack(42, idply)
884 IF(mod(i,nbit) > 0 ) ikey = ikey + 1
885 ikey =
min(ikey, nkey)
886 ibit = i - (ikey - 1)*nbit
888 IF(j > 0 .AND. ids > 0 )
THEN
889 nel = igrsh4n(j)%NENTITY
892 ity = igrsh4n(j)%GRTYPE
894 idshel = igrsh4n(j)%ENTITY(ii)
898 IF(icsh_stack(idshel) == 0)
THEN
899 iworksh(1,idshel) = iworksh(1,idshel
900 npt = iworksh(1,idshel)
901 iwork_t(idshel)%IPT(npt) = idply
902 icsh_stack(idshel) = ids
903 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
904 ELSEIF(icsh_stack(idshel) == ids)
THEN
905 iworksh (1,idshel) = iworksh(1,idshel) + 1
906 npt = iworksh(1,idshel)
907 iwork_t(idshel)%IPT(npt) = idply
908 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
911 ipid_1=igeo_stack(1,icsh_stack(idshel))
912 ngl =ixc(nixc,idshel)
915 . anmode=aninfo_blind_1,
918 . i2= igeo_stack(1,ids),
919 . i3= igeo_stack(1,ipid_1) )
926 IF(j > 0 .AND. ids > 0 )
THEN
927 nel = igrsh3n(j)%NENTITY
929 ity = igrsh3n(j)%GRTYPE
933 ish3n = igrsh3n(j)%ENTITY(ii)
937 idshel = ish3n + numelc
938 IF(icsh_stack(idshel) == 0)
THEN
939 iworksh(1,idshel) = iworksh(1,idshel ) + 1
940 npt = iworksh(1,idshel)
941 iwork_t(idshel)%IPT(npt) = idply
942 icsh_stack(idshel) = ids
943 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
944 ELSEIF(icsh_stack(idshel) == ids)
THEN
945 iworksh(1,idshel) = iworksh(1,idshel ) + 1
946 npt = iworksh(1,idshel)
947 iwork_t(idshel)%IPT(npt) = idply
948 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
951 ipid_1=igeo_stack(1,icsh_stack(idshel))
952 ngl =ixtg(nixtg,idshel)
955 . anmode=aninfo_blind_1,
958 . i2= igeo_stack(1,ids),
959 . i3= igeo_stack(1,ipid_1) )
978 IF(igtyp == 52 )
THEN
989 is = icsh_stack(numelc + i)
992 indx_sh(nsh) = i + numelc
999 ALLOCATE(indx(2*nsh),itri(2+nkey,nsh))
1005 itri(1,i) = pid_sh(i)
1006 itri(2,i) = iworksh(1,ii)
1008 itri(2+j,i) = activ_ply(ii,j)
1015 CALL my_orders(mode, work, itri, indx, nsh , nkey)
1022 ii = itri(ikey,indx(i))
1023 jj = itri(ikey,indx(i-1))
1027 nlast(ns) = nfirst(ns)
1029 ELSEIF(ikey == nkey)
THEN
1030 nlast(ns) = nlast(ns) + 1
1037 ALLOCATE(idstack(ns))
1039 ns_stack = ns_stack + ns
1045 npt_stack =
max(npt_stack,npt)
1047 ids = icsh_stack(ii)
1053 ALLOCATE(stack%IGEO(4*npt_stack+2,ns_stack))
1054 ALLOCATE(stack%GEO(6*npt_stack+1,ns_stack))
1055 ALLOCATE(stack%PM(20,ns_stack))
1063 ngeo_stack = numgeo + numstack + numply + is
1074 DO i= nfirst(is) , nlast(is)
1077 iworksh(2,ii) = ngeo_stack
1078 iworksh(3,ii) = ns_stack0 + is
1081 igtyp = igeo(11,pid)
1082 DO j=2,npropgi - ltitr
1083 igeo(j,pid) = igeo_stack(j,idstack(is))
1085 igeo(11,pid) = igtyp
1088 geo(j,pid) = geo_stack(j,idstack(is))
1091 n1 = int(geo(6,pid))
1093 nums = numgeo_stack(numgeo + idstack(is))
1095 jpid = stack_info(nums)%PID(j)
1098 jjpid = iwork_t(iis)%IPT(jj)
1099 IF(jjpid == jpid)
THEN
1109 iis = ns_stack0 + is
1110 stack%IGEO(1,iis) = npt
1111 stack%IGEO(2,iis) = pid
1114 ipmat_iply = ipmat + npt
1120 ipthkly = ipdir + npt
1121 ipweight =ipthkly + npt
1131 nums = numgeo_stack(numgeo + pids)
1134 stack%IGEO(ippid+j ,iis) = stack_info(nums)%PID(js)
1135 stack%IGEO(ipmat + j ,iis) = stack_info(nums)%MID(js)
1136 stack%IGEO(ipmat_iply+j ,iis) = stack_info(nums)%MID_IP(js)
1137 stack%GEO(ipang + j ,iis) = stack_info(nums)%ANG(js)
1138 stack%GEO(ipthk + j ,iis) = stack_info(nums)%THK(js)
1139 stack%GEO(ippos + j ,iis) = stack_info(nums)%POS(js)
1140 stack%GEO(ipdir + j ,iis) = stack_info(nums)%DIR(js)
1141 stack%GEO(ipthkly + j ,iis) = stack_info(nums)%THKLY(js)
1142 stack%GEO(ipweight + j ,iis) = stack_info(nums)%WEIGHT(js)
1147 zshift = geo(199,pid)
1152 dt = half*stack%GEO(ipthk + j ,iis)
1153 tmin =
min(tmin,stack%GEO(ippos + j ,iis)-dt)
1154 tmax =
max(tmax,stack%GEO(ippos + j ,iis)+dt)
1156 thickt = tmax - tmin
1158 stack%GEO(ipthk+j,iis)=
1159 . stack%GEO(ipthk+j,iis)/
max(thickt,em20)
1160 stack%GEO(ippos+j,iis)=
1161 . stack%GEO(ippos+j,iis)/
max(thickt,em20)
1167 thickt = thickt + stack%GEO(ipthk+j,iis)
1170 stack%GEO(ipthk+j,iis) =
1171 . stack%GEO(ipthk+j,iis)/
max(thickt,em20)
1174 IF (ipos == 2 ) zshift = zshift /
max(thickt,em20)
1176 stack%GEO(ippos+1,iis) = zshift +
1177 . half*stack%GEO(ipthk+1,iis)
1179 stack%GEO(ippos+j,iis) =
1180 . stack%GEO(ippos+j-1,iis) +
1181 . half*(stack%GEO(ipthk+j,iis)+
1182 . stack%GEO(ipthk+j-1,iis))
1187 stack%GEO(1,iis) = thickt
1192 DO i= nfirst(is) , nlast(is)
1195 IF (thk(ii) == zero) thk(ii) = thickt
1240 pids = stack%IGEO(ippid + ilay ,iis)
1241 nptt = igeo_stack(4,pids)
1242 igeo(4,pid) =
max(igeo(4,pid),nptt)
1246 DEALLOCATE(indx,itri,idstack, icsh_stack)
1247 DEALLOCATE(activ_ply)
1249 DO i=1,numelc + numeltg
1251 IF(npt > 0)
DEALLOCATE(iwork_t(i)%IPT)
1255 IF(ipart_stack > 0)
THEN
1256 IF(ipart_pcompp == 0)
THEN
1257 ALLOCATE(stack%IGEO(4*npt_stack0+2,ns_stack0))
1258 ALLOCATE(stack%GEO(6*npt_stack0+1,ns_stack0))
1259 ALLOCATE(stack%PM(20,ns_stack0))
1264 DO is = 1, ns_stack0
1265 DO j = 1, 3*npt_stack0 + 2
1266 stack%IGEO(j, is ) = iworks%IGEO(j,is)
1268 DO j = 1, 6*npt_stack0+1
1269 stack%GEO(j, is ) = iworks%GEO(j,is)
1272 DEALLOCATE(iworks%IGEO, iworks%GEO)
1275 IF(ns_stack > 0)
THEN
1277 npt = stack%IGEO(1,is)
1278 pid = stack%IGEO(2,is)
1279 thickt = stack%GEO(1,is)
1281 igtyp = igeo(11,pid)
1283 WRITE(iout,1000)id, is
1284 WRITE(iout,1100) thickt,npt
1290 IF(igtyp == 52)
THEN
1292 pid = stack%IGEO(ippid + j ,is)
1293 pos = stack%GEO( ippos + j ,is)
1296 WRITE(iout,2000)j, id , pos
1300 pid = stack%IGEO(ippid + j ,is)
1301 pos = stack%GEO( ippos + j ,is)
1304 WRITE(iout,2000)j, id , pos
1310 IF(ipart_pcompp > 0 .AND. ipart_stack == 0) ipart_stack = 1
1315 DEALLOCATE(isubstack)
1316 DEALLOCATE(index_sh4)
1317 DEALLOCATE(index_t3)
1326 & 5x,'composite stack shell property set
',
1327 & 'with variable thicknesses and materials
'//,
1328 & 7X,'property set number . . . . . . . . . . ..=
',I10/,
1329 & 7X,'sub property set number . . . . . . . . . .=
',I10/)
1331 & 8X,'shell thickness . . . . . . . . . . . .=
',1PG20.13/
1332 & 8X,'number of plies. . . . . . . . . . . . =
',I10/)
1335 & 8X,' ply pid number . . . . . . . . .=
',I10/
1336 & 8X,' position. . . . . . . . . . . . .=
',1PG20.13/)