33 . DRAPE , STACK, THK ,IXC ,IXTG ,
34 . IGEO ,IWORKSH ,INDX)
41 use element_mod ,
only : nixc,nixtg
45#include "implicit_f.inc"
57 INTEGER :: IXC(NIXC,*),
58 . (NIXTG,*),IGEO(NPROPGI,*),IWORKSH(3,*)
62 TYPE (DRAPE_) ,
DIMENSION(*),
TARGET :: DRAPE
63 TYPE (STACK_PLY) :: STACK
64 INTEGER,
DIMENSION(NUMELC+NUMELTG) :: INDX
68 INTEGER :: II,NPT,PID, IGTYP,IPOS,IPPID,IPMAT,IPANG, IPTHK,
69 . IPPOS, NTHK,ISUBS,J,I3,ISH3N,IE,NSLICE,K,IINT,,IP
70 my_real :: thinning, thkly ,tmin,tmax,thickt,thickc, thk_it
71 TYPE (DRAPE_PLY_),
POINTER :: DRAPE_PLY
75 . a_gauss(9,9),w_gauss(9,9)
81 2 -.577350269189626,0.577350269189626,0. ,
84 3 -.774596669241483,0. ,0.774596669241483,
87 4 -.861136311594053,-.339981043584856,0.339981043584856,
88 4 0.861136311594053,0. ,0. ,
90 5 -.906179845938664,-.538469310105683,0. ,
91 5 0.538469310105683,0.906179845938664,0. ,
93 6 -.932469514203152,-.661209386466265,-.238619186083197,
94 6 0.238619186083197,0.661209386466265,0.932469514203152,
96 7 -.949107912342759,-.741531185599394,-.405845151377397,
97 7 0. ,0.405845151377397,0.741531185599394,
98 7 0.949107912342759,0. ,0. ,
99 8 -.960289856497536,-.796666477413627,-.525532409916329,
100 8 -.183434642495650,0.183434642495650,0.525532409916329,
101 8 0.796666477413627,0.960289856497536,0. ,
102 9 -.968160239507626,-.836031107326636,-.613371432700590,
103 9 -.324253423403809,0. ,0.324253423403809,
104 9 0.613371432700590,0.836031107326636,0.968160239507626/
112 3 0.555555555555556,0.888888888888889,0.555555555555556,
115 4 0.347854845137454,0.652145154862546,0.652145154862546,
116 4 0.347854845137454,0. ,0. ,
118 5 0.236926885056189,0.478628670499366,0.568888888888889,
119 5 0.478628670499366,0.236926885056189,0. ,
121 6 0.171324492379170,0.360761573048139,0.467913934572691,
122 6 0.467913934572691,0.360761573048139,0.171324492379170,
124 7 0.129484966168870,0.279705391489277,0.381830050505119,
125 7 0.417959183673469,0.381830050505119,0.279705391489277,
126 7 0.129484966168870,0. ,0. ,
127 8 0.101228536290376,0.222381034453374,0.313706645877887,
128 8 0.362683783378362,0.362683783378362,0.313706645877887,
129 8 0.222381034453374,0.101228536290376,0. ,
130 9 0.081274388361574,0.180648160694857,0.260610696402935,
131 9 0.312347077040003,0.330239355001260,0.312347077040003,
132 9 0.260610696402935,0.180648160694857,0.081274388361574/
140 IF(igtyp /=17 .AND. igtyp /= 51 .AND. igtyp /= 52) cycle
155 isubs = iworksh(3,ii)
156 thickt = stack%GEO(1 ,isubs)
163 thkly = stack%GEO(i3 ,isubs)*thickt
164 thickc = thickt + thkly
167 IF(igtyp == 51 .OR. igtyp == 52)
THEN
170 thkly = stack%GEO(i3 ,isubs)*thickt
171 ipid = stack%IGEO(ippid + j,isubs)
173 ip = drape(ie)%INDX_PLY(j)
175 drape_ply => drape(ie)%DRAPE_PLY(ip)
176 nslice = drape_ply%NSLICE
179 thk_it = thkly/nslice
180 thinning = drape_ply%RDRAPE(k,1)
181 thk_it = thk_it*thinning
182 thickc = thickc + thk_it
184 ELSEIF(iint == 2)
THEN
188 thk_it = thk_it*thinning
189 thickc = thickc + thk_it
193 thickc = thickc + thkly
198 ip= drape(ie)%INDX_PLY(j)
200 thkly = stack%GEO(i3 ,isubs)*thickt
202 drape_ply => drape(ie)%DRAPE_PLY(ip)
203 thinning = drape_ply%RDRAPE(1,1)
206 thickc = thickc + thkly
209 drape(ie)%THICK = thickc
211 IF (thk(ii) == zero) thk(ii) = thickc
216 npt = iworksh(1,ish3n)
219 IF(igtyp /=17 .AND. igtyp /= 51 .AND. igtyp /= 52) cycle
234 isubs =iworksh(3,ish3n)
235 thickt = stack%GEO(1 ,isubs)
242 thkly = stack%GEO(i3 ,isubs)*thickt
243 thickc = thickc + thkly
246 IF(igtyp == 51 .OR. igtyp == 52)
THEN
249 ip= drape(ie)%INDX_PLY(j)
250 thkly = stack%GEO(i3 ,isubs)*thickt
251 ipid = stack%IGEO(ippid + j,isubs)
254 drape_ply => drape(ie)%DRAPE_PLY(ip)
255 nslice = drape_ply%NSLICE
258 thk_it = thkly/nslice
259 thinning = drape_ply%RDRAPE(k,1)
260 thk_it = thk_it*thinning
261 thickc = thickc + thk_it
263 ELSEIF(iint == 2)
THEN
265 thk_it = half*thkly*w_gauss(k,nslice)
266 thinning = drape_ply%RDRAPE(k,1)
267 thk_it = thk_it*thinning
268 thickc = thickc + thk_it
272 thickc = thickc + thkly
278 ip= drape(ie)%INDX_PLY(j)
279 thkly = stack%GEO(i3 ,isubs)*thickt
281 drape_ply => drape(ie)%DRAPE_PLY(ip)
282 thinning = drape_ply%RDRAPE(1,1)
283 thkly = thkly*thinning
285 thickc = thickc + thkly
288 drape(ie)%THICK = thickc
290 IF (thk(ish3n) == zero) thk(ish3n) = thickc