35 . IGRSH3N ,IGRSH4N ,IXC ,IXTG ,
36 . IGEO ,GEO ,IWORKSH ,THK ,
37 . STACK ,IPM ,IGEO_STACK ,GEO_STACK ,
38 . STACK_INFO ,NUMGEO_STACK,NPROP_STACK)
51#include "implicit_f.inc"
64 . IXTG(NIXTG,*),IGEO(NPROPGI,*),IWORKSH(3,*),IPM(NPROPMI,*),
65 . IGEO_STACK(NPROPGI,*),NUMGEO_STACK(*),
68 . geo(npropg,*),thk(*),geo_stack(npropg,*)
70 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
71 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) :: IGRSH4N
72 TYPE(STACK_INFO_ ),
INTENT(INOUT),
DIMENSION (NPROP_STACK):: STACK_INFO
76 INTEGER I,J,II,NSTACK,NPLY,IGTYP,ID,JD,IDPLY,NEL,
77 . IAD,ITY,IDSHEL,PID,IS,IDS,NSH,MODE,NS,JJ,NGEO_STACK,
78 . IGRTYP,N1,IPMAT,IPANG,IPTHK,IIGEO,NSS,IPPOS,NPT,IIS,NP,
79 . JJPID,JSTACK,JPID,ITG,IPMAT_IPLY,ISH3N,J4N,J3N,IPOS,
80 . mat_ly,nlay,nptt,ipidl,it,ilay,ipthk_nptt,ippos_nptt,
81 . iint,ipid_ly,ipdir ,ns_stack0 ,npt_stack0,is0,js,pids,ip,
82 . ii1,ii2,jj1,jj2,ii3,ii4,ii5,jj3,jj4,jj5, nkey,irest,ibit,ikey,
86 . IPTPLY(1000),NBFI,IPPID,ITAG(1000),
87 . NGL,IPID_1,NUMS,IPWEIGHT,IPTHKLY,NSHQ4,NSHT3
88 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IPIDPLY
89 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IDGR4N,IDGR3N
90 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISUBSTACK
91 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDEX_SH4,INDEX_T3
92 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NFIRST,NLAST
93 INTEGER,
DIMENSION(:),
ALLOCATABLE :: INDX_SH,PID_SH
94 my_real,
DIMENSION(:,:),
ALLOCATABLE :: geo0
97 . thickt,zshift,tmin,tmax,dt,thk_ly,pos_ly,thk_it(100),
98 . pos_it(100),pos_nptt,thk_nptt,pos_0,thinning,pos
100 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ITRI
101 INTEGER,
DIMENSION (:) ,
ALLOCATABLE ::INDX,
103 INTEGER ,
DIMENSION(:,:),
ALLOCATABLE :: ACTIV_PLY
104 TYPE (STACK_PLY) :: STACK, IWORKS
106 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
109 . a_gauss(9,9),w_gauss(9,9)
115 2 -.577350269189626,0.577350269189626,0. ,
118 3 -.774596669241483,0. ,0.774596669241483,
121 4 -.861136311594053,-.339981043584856,0.339981043584856,
122 4 0.861136311594053,0. ,0. ,
124 5 -.906179845938664,-.538469310105683,0. ,
125 5 0.538469310105683,0.906179845938664,0. ,
127 6 -.932469514203152,-.661209386466265,-.238619186083197,
128 6 0.238619186083197,0.661209386466265,0.932469514203152,
130 7 -.949107912342759,-.741531185599394,-.405845151377397,
131 7 0. ,0.405845151377397,0.741531185599394,
132 7 0.949107912342759,0. ,0. ,
133 8 -.960289856497536,-.796666477413627,-.525532409916329,
134 8 -.183434642495650,0.183434642495650,0.525532409916329,
135 8 0.796666477413627,0.960289856497536,0. ,
136 9 -.968160239507626,-.836031107326636,-.613371432700590,
137 9 -.324253423403809,0. ,0.324253423403809,
138 9 0.613371432700590,0.836031107326636,0.968160239507626/
146 3 0.555555555555556,0.888888888888889,0.555555555555556,
149 4 0.347854845137454,0.652145154862546,0.652145154862546,
150 4 0.347854845137454,0. ,0. ,
152 5 0.236926885056189,0.478628670499366,0.568888888888889,
153 5 0.478628670499366,0.236926885056189,0. ,
155 6 0.171324492379170,0.360761573048139,0.467913934572691,
156 6 0.467913934572691,0.360761573048139,0.171324492379170,
158 7 0.129484966168870,0.279705391489277,0.381830050505119,
159 7 0.417959183673469,0.381830050505119,0.279705391489277,
160 7 0.129484966168870,0. ,0. ,
161 8 0.101228536290376,0.222381034453374,0.313706645877887,
162 8 0.362683783378362,0.362683783378362,0.313706645877887,
163 8 0.222381034453374,0.101228536290376,0. ,
164 9 0.081274388361574,0.180648160694857,0.260610696402935,
165 9 0.312347077040003,0.330239355001260,0.312347077040003,
166 9 0.260610696402935,0.180648160694857,0.081274388361574/
173 integer,
DIMENSION(:) ,
POINTER :: IPT
175 TYPE() ,
DIMENSION(:),
POINTER :: IWORK_T
181 CALL my_alloc(geo0,1000,numgeo)
182 ALLOCATE(iwork_t(numelc+numeltg))
183 ALLOCATE(ipidply(numgeo+numply))
184 ALLOCATE(idgr4n(numgeo+numply))
185 ALLOCATE(idgr3n(numgeo+numply))
186 ALLOCATE(isubstack(numgeo+numstack))
187 ALLOCATE(index_sh4(numelc))
188 ALLOCATE(index_t3(numeltg))
189 ALLOCATE(nfirst(numelc+numeltg))
190 ALLOCATE(nlast(numelc+numeltg))
191 ALLOCATE(indx_sh(numelc+numeltg))
192 ALLOCATE(pid_sh(numelc+numeltg))
194 IF(ipart_stack > 0)
THEN
202 IF (igtyp == 19 .AND. nstack > 0)
THEN
205 idgr4n(nply) = igeo(40,i)
206 idgr3n(nply) = igeo(41,i)
237 nbit = bit_size(nply)
238 irest = mod(nply,nbit)
240 IF(irest > 0) nkey = nkey + 1
242 ALLOCATE( activ_ply(numelc+numeltg,nkey))
243 IF(numelc + numeltg > 0)activ_ply = 0
249 IF(igtyp == 17 .OR. igtyp == 51)
THEN
259 IF(igtyp == 17 .OR. igtyp == 51)
THEN
269 nstack = igeo(42, idply)
270 IF(j > 0 .AND. nstack > 0 )
THEN
271 nel = igrsh4n(j)%NENTITY
273 ity = igrsh4n(j)%GRTYPE
275 idshel = igrsh4n(j)%ENTITY(ii)
278 IF(igtyp == 17 .OR. igtyp == 51)
THEN
280 ids = igeo(200 + is, idply)
282 iworksh(1,idshel) = iworksh(1,idshel) + 1
291 IF(j > 0 .AND. nstack > 0 )
THEN
292 nel = igrsh3n(j)%NENTITY
294 ity = igrsh3n(j)%GRTYPE
297 ish3n = igrsh3n(j)%ENTITY(ii)
300 IF(igtyp == 17 .OR. igtyp == 51)
THEN
302 ids = igeo(200 + is,idply)
304 idshel = ish3n + numelc
305 iworksh(1,idshel) = iworksh(1,idshel ) + 1
312 IF(j4n == 0 .AND. j3n == 0 .AND. nstack > 0 )
THEN
317 IF(igtyp == 17 .OR. igtyp == 51)
THEN
319 ids = igeo(200 + is,idply)
321 iworksh(1,ii) = iworksh(1,ii) + 1
332 IF(igtyp == 17 .OR. igtyp == 51)
THEN
334 ids = igeo(200 + is,idply)
336 iworksh(1,itg) = iworksh(1,itg) + 1
349 IF(igtyp == 17 .OR. igtyp == 51 .AND. npt > 0)
THEN
350 NULLIFY(iwork_t(i)%IPT)
351 ALLOCATE(iwork_t(i)%IPT(npt))
361 IF((igtyp == 17 .OR. igtyp == 51) .AND. npt > 0)
THEN
362 NULLIFY(iwork_t(ii)%IPT)
363 ALLOCATE(iwork_t(ii)%IPT(npt))
375 nstack = igeo(42, idply)
377 IF(mod(i,nbit) > 0 ) ikey = ikey + 1
378 ikey =
min(ikey, nkey)
379 ibit = i - (ikey - 1)*nbit
383 IF(j > 0 .AND. nstack > 0 )
THEN
384 nel = igrsh4n(j)%NENTITY
386 ity = igrsh4n(j)%GRTYPE
388 idshel = igrsh4n(j)%ENTITY(ii)
391 IF(igtyp == 17 .OR. igtyp == 51)
THEN
393 ids = igeo(200 + is, idply)
395 iworksh(1,idshel) = iworksh(1,idshel) + 1
396 npt = iworksh(1,idshel)
397 iwork_t(idshel)%IPT(npt) = idply
398 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
407 IF(j > 0 .AND. nstack > 0 )
THEN
408 nel = igrsh3n(j)%NENTITY
410 ity = igrsh3n(j)%GRTYPE
412 ish3n = igrsh3n(j)%ENTITY(ii)
415 IF(igtyp == 17 .OR. igtyp == 51)
THEN
417 ids = igeo(200 + is,idply)
419 idshel = ish3n + numelc
420 iworksh(1,idshel) = iworksh(1,idshel ) + 1
421 npt = iworksh(1,idshel)
422 iwork_t(idshel)%IPT(npt) = idply
423 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
430 IF(j4n == 0 .AND. j3n == 0 .AND. nstack > 0 )
THEN
436 IF(igtyp == 17 .OR. igtyp == 51)
THEN
438 ids = igeo(200 + is,idply)
440 iworksh(1,ii) = iworksh(1,ii) + 1
442 iwork_t(ii)%IPT(npt) = idply
443 activ_ply(ii,ikey) = ibset(activ_ply(ii,ikey),ibit)
454 IF(igtyp == 17 .OR. igtyp == 51)
THEN
456 ids = igeo(200 + is,idply)
458 iworksh(1,itg) = iworksh(1,itg) + 1
460 iwork_t(itg)%IPT(npt) = idply
461 activ_ply(itg,ikey) = ibset(activ_ply(itg,ikey),ibit)
481 IF(igtyp == 17 .OR. igtyp == 51)
THEN
491 IF(igtyp == 17 .OR. igtyp == 51)
THEN
493 indx_sh(nsh) = i+numelc
500 ALLOCATE(indx(2*nsh),itri(2+nkey,nsh))
507 itri(1,i) = pid_sh(i)
508 itri(2,i) = iworksh(1,ii)
510 itri(2+j,i) = activ_ply(ii,j)
517 CALL my_orders(mode, work, itri, indx, nsh , nkey)
523 ii = itri(ikey,indx(i))
524 jj = itri(ikey,indx(i-1))
528 nlast(ns) = nfirst(ns)
530 ELSEIF(ikey == nkey)
THEN
531 nlast(ns) = nlast(ns) + 1
546 npt_stack =
max(npt_stack,npt)
549 ALLOCATE(iworks%IGEO(3*npt_stack+2,ns_stack))
550 ALLOCATE(iworks%GEO(6*npt_stack+1,ns_stack))
556 ngeo_stack = numgeo + is
568 DO i= nfirst(is) , nlast(is)
571 iworksh(2,ii) = ngeo_stack
584 nums = numgeo_stack(pid)
587 jpid = stack_info(nums)%PID(j)
590 jjpid = iwork_t(iis)%IPT(jj)
591 IF(jjpid == jpid)
THEN
600 iworks%IGEO(1,is) = npt
601 iworks%IGEO(2,is) = pid
604 ipmat_iply = ipmat + npt
609 ipthkly = ipdir + npt
610 ipweight = ipthkly + npt
611 nums= numgeo_stack(pid)
614 iworks%IGEO(ippid + j ,is) = stack_info(nums)%PID(jstack)
615 iworks%IGEO(ipmat + j ,is) = stack_info(nums)%MID(jstack)
616 iworks%IGEO(ipmat_iply + j ,is) = stack_info(nums)%MID_IP(jstack)
617 iworks%GEO(ipang + j ,is) = stack_info(nums)%ANG(jstack)
618 iworks%GEO(ipthk + j ,is) = stack_info(nums)%THK(jstack)
619 iworks%GEO(ippos + j ,is) = stack_info(nums)%POS(jstack)
620 iworks%GEO(ipdir + j ,is) = stack_info(nums)%DIR(jstack)
621 iworks%GEO(ipthkly + j ,is) = stack_info(nums)%THKLY(jstack)
622 iworks%GEO(ipweight + j ,is) = stack_info(nums)%WEIGHT(jstack)
627 zshift = geo(199,pid)
632 dt = half*iworks%GEO(ipthk + j ,is)
633 tmin =
min(tmin,iworks%GEO(ippos + j ,is)-dt)
634 tmax =
max(tmax,iworks%GEO(ippos + j ,is)+dt)
638 iworks%GEO(ipthk+j,is)=iworks%GEO(ipthk+j,is)/
max(thickt,em20)
639 iworks%GEO(ippos+j,is)=iworks%GEO(ippos+j,is)/
max(thickt,em20)
645 thickt = thickt + iworks%GEO(ipthk+j,is)
648 iworks%GEO(ipthk+j,is) =
649 . iworks%GEO(ipthk+j,is)/
max(thickt,em20)
652 IF(ipos == 2 )zshift = zshift /
max(thickt,em20)
654 iworks%GEO(ippos+1,is) = zshift + half*iworks%GEO(ipthk+1,is)
656 iworks%GEO(ippos+j,is) = iworks%GEO(ippos+j-1,is)
657 . + half*(iworks%GEO(ipthk+j,is)+iworks%GEO(ipthk+j-1,is))
662 iworks%GEO(1,is) = thickt
667 DO i= nfirst(is) , nlast(is)
670 IF (thk(ii) == zero) thk(ii) = thickt
714 DEALLOCATE(indx,itri,activ_ply)
721 npt_stack0 = npt_stack
723 IF(ipart_pcompp > 0)
THEN
728 ids = igeo_stack(42,numstack + i)
731 ipidply(nply) = numstack + i
732 idgr4n(nply) = igeo_stack(40,numstack + i)
733 idgr3n(nply) = igeo_stack(41,numstack + i)
766 nbit = bit_size(nply)
767 irest = mod(nply,nbit)
769 IF(irest > 0) nkey = nkey + 1
771 ALLOCATE( activ_ply(numelc+numeltg,nkey))
772 IF(numelc + numeltg > 0)activ_ply = 0
775 ALLOCATE(icsh_stack(numelc + numeltg) )
776 IF(numelc + numeltg > 0)icsh_stack = 0
782 ids = igeo_stack(42, idply)
783 IF(j > 0 .AND. ids > 0 )
THEN
784 nel = igrsh4n(j)%NENTITY
787 ity = igrsh4n(j)%GRTYPE
789 idshel = igrsh4n(j)%ENTITY(ii)
793 IF(icsh_stack(idshel) == 0)
THEN
794 iworksh(1,idshel) = iworksh(1,idshel) + 1
795 icsh_stack(idshel) = ids
796 ELSEIF(icsh_stack(idshel) == ids
THEN
797 iworksh(1,idshel) = iworksh(1,idshel) + 1
800 ipid_1=igeo_stack(1,icsh_stack(idshel))
801 ngl =ixc(nixc,idshel)
804 . anmode=aninfo_blind_1,
807 . i2= igeo_stack(1,ids),
808 . i3= igeo_stack(1,ipid_1) )
815 IF(j > 0 .AND. ids > 0 )
THEN
816 nel = igrsh3n(j)%NENTITY
818 ity = igrsh3n(j)%GRTYPE
822 ish3n = igrsh3n(j)%ENTITY(ii)
826 idshel = ish3n + numelc
827 IF(icsh_stack(idshel) == 0)
THEN
828 iworksh(1,idshel) = iworksh(1,idshel ) + 1
829 icsh_stack(idshel) = ids
830 ELSEIF(icsh_stack(idshel) == ids)
THEN
834 ipid_1=igeo_stack(1,icsh_stack(idshel))
835 ngl =ixtg(nixtg,idshel)
838 . anmode=aninfo_blind_1,
841 . i2= igeo_stack(1,ids),
842 . i3= igeo_stack(1,ipid_1) )
851 IF(numelc+numeltg > 0) icsh_stack = 0
856 IF(igtyp == 52 .AND. npt > 0)
THEN
857 NULLIFY(iwork_t(i)%IPT)
858 ALLOCATE(iwork_t(i)%IPT(npt))
868 IF(igtyp == 52 .AND. npt > 0)
THEN
869 NULLIFY(iwork_t(ii)%IPT)
870 ALLOCATE(iwork_t(ii)%IPT(npt))
880 ids = igeo_stack(42, idply)
883 IF(mod(i,nbit) > 0 ) ikey = ikey + 1
884 ikey =
min(ikey, nkey)
885 ibit = i - (ikey - 1)*nbit
887 IF(j > 0 .AND. ids > 0 )
THEN
888 nel = igrsh4n(j)%NENTITY
891 ity = igrsh4n(j)%GRTYPE
893 idshel = igrsh4n(j)%ENTITY(ii)
897 IF(icsh_stack(idshel) == 0)
THEN
898 iworksh(1,idshel) = iworksh(1,idshel) + 1
899 npt = iworksh(1,idshel)
900 iwork_t(idshel)%IPT(npt) = idply
901 icsh_stack(idshel) = ids
902 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
903 ELSEIF(icsh_stack(idshel) == ids)
THEN
904 iworksh(1,idshel) = iworksh(1,idshel) + 1
905 npt = iworksh(1,idshel)
906 iwork_t(idshel)%IPT(npt) = idply
907 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
910 ipid_1=igeo_stack(1,icsh_stack(idshel))
911 ngl =ixc(nixc,idshel)
914 . anmode=aninfo_blind_1,
917 . i2= igeo_stack(1,ids),
918 . i3= igeo_stack(1,ipid_1) )
925 IF(j > 0 .AND. ids > 0 )
THEN
926 nel = igrsh3n(j)%NENTITY
928 ity = igrsh3n(j)%GRTYPE
932 ish3n = igrsh3n(j)%ENTITY(ii)
936 idshel = ish3n + numelc
937 IF(icsh_stack(idshel) == 0)
THEN
938 iworksh(1,idshel) = iworksh(1,idshel ) + 1
939 npt = iworksh(1,idshel)
940 iwork_t(idshel)%IPT(npt) = idply
941 icsh_stack(idshel) = ids
942 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit
943 ELSEIF(icsh_stack(idshel) == ids)
THEN
944 iworksh(1,idshel) = iworksh(1,idshel ) + 1
945 npt = iworksh(1,idshel)
946 iwork_t(idshel)%IPT(npt) = idply
947 activ_ply(idshel,ikey) = ibset(activ_ply(idshel,ikey),ibit)
950 ipid_1=igeo_stack(1,icsh_stack(idshel))
951 ngl =ixtg(nixtg,idshel)
954 . anmode=aninfo_blind_1,
957 . i2= igeo_stack(1,ids),
958 . i3= igeo_stack(1,ipid_1) )
977 IF(igtyp == 52 )
THEN
988 is = icsh_stack(numelc + i)
991 indx_sh(nsh) = i + numelc
998 ALLOCATE(indx(2*nsh),itri(2+nkey,nsh))
1004 itri(1,i) = pid_sh(i)
1005 itri(2,i) = iworksh(1,ii)
1007 itri(2+j,i) = activ_ply(ii,j)
1014 CALL my_orders(mode, work, itri, indx, nsh , nkey)
1021 ii = itri(ikey,indx(i))
1026 nlast(ns) = nfirst(ns)
1028 ELSEIF(ikey == nkey)
THEN
1029 nlast(ns) = nlast(ns) + 1
1036 ALLOCATE(idstack(ns))
1038 ns_stack = ns_stack + ns
1044 npt_stack =
max(npt_stack,npt)
1046 ids = icsh_stack(ii)
1052 ALLOCATE(stack%IGEO(4*npt_stack+2,ns_stack))
1053 ALLOCATE(stack%GEO(6*npt_stack+1,ns_stack))
1054 ALLOCATE(stack%PM(20,ns_stack))
1062 ngeo_stack = numgeo + numstack + numply + is
1073 DO i= nfirst(is) , nlast(is)
1076 iworksh(2,ii) = ngeo_stack
1077 iworksh(3,ii) = ns_stack0 + is
1080 igtyp = igeo(11,pid)
1081 DO j=2,npropgi - ltitr
1082 igeo(j,pid) = igeo_stack(j,idstack(is))
1084 igeo(11,pid) = igtyp
1087 geo(j,pid) = geo_stack(j,idstack(is))
1090 n1 = int(geo(6,pid))
1092 nums = numgeo_stack(numgeo + idstack(is))
1094 jpid = stack_info(nums)%PID(j)
1098 IF(jjpid == jpid)
THEN
1108 iis = ns_stack0 + is
1109 stack%IGEO(1,iis) = npt
1113 ipmat_iply = ipmat + npt
1119 ipthkly = ipdir + npt
1120 ipweight =ipthkly + npt
1130 nums = numgeo_stack(numgeo + pids)
1133 stack%IGEO(ippid+j ,iis) = stack_info(nums)%PID(js)
1134 stack%IGEO(ipmat + j ,iis) = stack_info(nums)%MID(js)
1135 stack%IGEO(ipmat_iply+j ,iis) = stack_info(nums)%MID_IP(js)
1136 stack%GEO(ipang + j ,iis) = stack_info(nums)%ANG(js)
1137 stack%GEO(ipthk + j ,iis) = stack_info(nums)%THK(js)
1138 stack%GEO(ippos + j ,iis) = stack_info(nums)%POS(js)
1139 stack%GEO(ipdir + j ,iis) = stack_info(nums)%DIR(js)
1140 stack%GEO(ipthkly + j ,iis) = stack_info(nums)%THKLY(js)
1141 stack%GEO(ipweight + j ,iis) = stack_info(nums)%WEIGHT(js)
1146 zshift = geo(199,pid)
1151 dt = half*stack%GEO(ipthk + j ,iis)
1152 tmin =
min(tmin,stack%GEO(ippos
1153 tmax =
max(tmax,stack%GEO(ippos + j ,iis)+dt)
1155 thickt = tmax - tmin
1157 stack%GEO(ipthk+j,iis)=
1158 . stack%GEO(ipthk+j,iis)/
max(thickt,em20)
1159 stack%GEO(ippos+j,iis)=
1160 . stack%GEO(ippos+j,iis)/
max
1166 thickt = thickt + stack%GEO(ipthk+j,iis)
1169 stack%GEO(ipthk+j,iis) =
1170 . stack%GEO(ipthk+j,iis)/
max(thickt,em20)
1173 IF (ipos == 2 ) zshift = zshift /
max(thickt,em20)
1175 stack%GEO(ippos+1,iis) = zshift +
1176 . half*stack%GEO(ipthk+1,iis)
1178 stack%GEO(ippos+j,iis) =
1179 . stack%GEO(ippos+j-1,iis) +
1180 . half*(stack%GEO(ipthk+j,iis)+
1181 . stack%GEO(ipthk+j-1,iis))
1186 stack%GEO(1,iis) = thickt
1191 DO i= nfirst(is) , nlast(is)
1194 IF (thk(ii) == zero) thk(ii) = thickt
1239 pids = stack%IGEO(ippid + ilay ,iis)
1240 nptt = igeo_stack(4,pids)
1241 igeo(4,pid) =
max(igeo(4,pid),nptt)
1245 DEALLOCATE(indx,itri,idstack, icsh_stack)
1246 DEALLOCATE(activ_ply)
1248 DO i=1,numelc + numeltg
1250 IF(npt > 0)
DEALLOCATE(iwork_t(i)%IPT)
1254 IF(ipart_stack > 0)
THEN
1255 IF(ipart_pcompp == 0)
THEN
1256 ALLOCATE(stack%IGEO(4*npt_stack0+2,ns_stack0))
1257 ALLOCATE(stack%GEO(6*npt_stack0+1,ns_stack0))
1258 ALLOCATE(stack%PM(20,ns_stack0))
1263 DO is = 1, ns_stack0
1264 DO j = 1, 3*npt_stack0 + 2
1265 stack%IGEO(j, is ) = iworks%IGEO(j,is)
1267 DO j = 1, 6*npt_stack0+1
1268 stack%GEO(j, is ) = iworks%GEO(j,is)
1271 DEALLOCATE(iworks%IGEO, iworks%GEO)
1274 IF(ns_stack > 0)
THEN
1276 npt = stack%IGEO(1,is)
1277 pid = stack%IGEO(2,is)
1278 thickt = stack%GEO(1,is)
1280 igtyp = igeo(11,pid)
1282 WRITE(iout,1000)id, is
1283 WRITE(iout,1100) thickt,npt
1289 IF(igtyp == 52)
THEN
1291 pid = stack%IGEO(ippid + j
1292 pos = stack%GEO( ippos + j ,is)
1294 id = igeo_stack(1,pid)
1295 WRITE(iout,2000)j, id , pos
1299 pid = stack%IGEO(ippid + j ,is)
1300 pos = stack%GEO( ippos + j ,is)
1303 WRITE(iout,2000)j, id , pos
1309 IF(ipart_pcompp > 0 .AND. ipart_stack == 0) ipart_stack = 1
1314 DEALLOCATE(isubstack)
1315 DEALLOCATE(index_sh4)
1316 DEALLOCATE(index_t3)
1325 & 5x,
'COMPOSITE STACK SHELL PROPERTY SET ',
1326 &
'WITH VARIABLE THICKNESSES AND MATERIALS'//,
1327 & 7x,
'PROPERTY SET NUMBER . . . . . . . . . . ..=',i10/,
1328 & 7x,
'SUB PROPERTY SET NUMBER . . . . . . . . . .=',i10/)
1330 & 8x,
'SHELL THICKNESS . . . . . . . . . . . .=',1pg20.13/
1331 & 8x,
'NUMBER OF PLIES. . . . . . . . . . . . =',i10/)
1334 & 8x,
' PLY PID NUMBER . . . . . . . . .=',i10/
1335 & 8x,
' POSITION. . . . . . . . . . . . .=',1pg20.13/)