33 . DRAPE , STACK, THK ,IXC ,IXTG ,
34 . IGEO ,IWORKSH ,INDX)
44#include "implicit_f.inc"
56 INTEGER :: IXC(NIXC,*),
57 . IXTG(NIXTG,*),IGEO(NPROPGI,*),IWORKSH(3,*)
61 TYPE (DRAPE_) ,
DIMENSION(*),
TARGET :: DRAPE
62 TYPE (STACK_PLY) :: STACK
63 INTEGER,
DIMENSION(NUMELC+NUMELTG) :: INDX
67 INTEGER :: II,NPT,PID, IGTYP,IPOS,IPPID,IPMAT,IPANG, IPTHK,
68 . IPPOS, NTHK,ISUBS,J,I3,I4,ISH3N,IE,NSLICE,K,IINT,IPID,IP
69 my_real :: thinning, thkly , pos, dt,tmin,tmax,thickt,thickc, thk_it
70 TYPE (DRAPE_PLY_),
POINTER :: DRAPE_PLY
74 . a_gauss(9,9),w_gauss(9,9)
80 2 -.577350269189626,0.577350269189626,0. ,
83 3 -.774596669241483,0. ,0.774596669241483,
86 4 -.861136311594053,-.339981043584856,0.339981043584856,
87 4 0.861136311594053,0. ,0. ,
89 5 -.906179845938664,-.538469310105683,0. ,
90 5 0.538469310105683,0.906179845938664,0. ,
92 6 -.932469514203152,-.661209386466265,-.238619186083197,
93 6 0.238619186083197,0.661209386466265,0.932469514203152,
95 7 -.949107912342759,-.741531185599394,-.405845151377397,
96 7 0. ,0.405845151377397,0.741531185599394,
97 7 0.949107912342759,0. ,0. ,
98 8 -.960289856497536,-.796666477413627,-.525532409916329,
99 8 -.183434642495650,0.183434642495650,0.525532409916329,
100 8 0.796666477413627,0.960289856497536,0.
101 9 -.968160239507626,-.836031107326636,-.613371432700590,
102 9 -.324253423403809,0. ,0.324253423403809,
103 9 0.613371432700590,0.836031107326636,0.968160239507626/
111 3 0.555555555555556,0.888888888888889,0.555555555555556,
114 4 0.347854845137454,0.652145154862546,0.652145154862546,
115 4 0.347854845137454,0. ,0. ,
117 5 0.236926885056189,0.478628670499366,0.568888888888889,
120 6 0.171324492379170,0.360761573048139,0.467913934572691,
121 6 0.467913934572691,0.360761573048139,0.171324492379170,
123 7 0.129484966168870,0.279705391489277,0.381830050505119,
124 7 0.417959183673469,0.381830050505119,0.279705391489277,
125 7 0.129484966168870,0. ,0. ,
126 8 0.101228536290376,0.222381034453374,0.313706645877887,
127 8 0.362683783378362,0.362683783378362,0.3137066458778
128 8 0.222381034453374,0.101228536290376,0. ,
129 9 0.081274388361574,0.180648160694857,0.260610696402935,
130 9 0.312347077040003,0.330239355001260,0.312347077040003,
131 9 0.260610696402935,0.180648160694857,0.081274388361574/
139 IF(igtyp /=17 .AND. igtyp /= 51 .AND. igtyp /= 52) cycle
154 isubs = iworksh(3,ii)
155 thickt = stack%GEO(1 ,isubs)
162 thkly = stack%GEO(i3 ,isubs)*thickt
163 thickc = thickt + thkly
166 IF(igtyp == 51 .OR. igtyp == 52)
THEN
169 thkly = stack%GEO(i3 ,isubs)*thickt
170 ipid = stack%IGEO(ippid + j,isubs)
172 ip = drape(ie)%INDX_PLY(j
174 drape_ply => drape(ie)%DRAPE_PLY(ip)
175 nslice = drape_ply%NSLICE
178 thk_it = thkly/nslice
179 thinning = drape_ply%RDRAPE(k,1)
181 thickc = thickc + thk_it
183 ELSEIF(iint == 2)
THEN
185 thk_it = half*thkly*w_gauss(k,nslice)
186 thinning = drape_ply%RDRAPE
187 thk_it = thk_it*thinning
192 thickc = thickc + thkly
197 ip= drape(ie)%INDX_PLY(j)
199 thkly = stack%GEO(i3 ,isubs)*thickt
201 drape_ply => drape(ie)%DRAPE_PLY(ip)
202 thinning = drape_ply%RDRAPE(1,1)
203 thkly = thkly*thinning
205 thickc = thickc + thkly
208 drape(ie)%THICK = thickc
210 IF (thk(ii) == zero) thk(ii) = thickc
215 npt = iworksh(1,ish3n)
218 IF(igtyp /=17 .AND. igtyp /= 51 .AND. igtyp /= 52) cycle
233 isubs =iworksh(3,ish3n)
234 thickt = stack%GEO(1 ,isubs)
241 thkly = stack%GEO(i3 ,isubs)*thickt
242 thickc = thickc + thkly
245 IF(igtyp == 51 .OR. igtyp == 52)
THEN
248 ip= drape(ie)%INDX_PLY(j)
249 thkly = stack%GEO(i3 ,isubs)*thickt
250 ipid = stack%IGEO(ippid + j,isubs)
253 drape_ply => drape(ie)%DRAPE_PLY(ip)
254 nslice = drape_ply%NSLICE
257 thk_it = thkly/nslice
258 thinning = drape_ply%RDRAPE(k,1)
259 thk_it = thk_it*thinning
260 thickc = thickc + thk_it
262 ELSEIF(iint == 2)
THEN
264 thk_it = half*thkly*w_gauss(k,nslice)
265 thinning = drape_ply%RDRAPE(k,1)
266 thk_it = thk_it*thinning
267 thickc = thickc + thk_it
271 thickc = thickc + thkly
277 ip= drape(ie)%INDX_PLY(j)
278 thkly = stack%GEO(i3 ,isubs)*thickt
280 drape_ply => drape(ie)%DRAPE_PLY(ip)
281 thinning = drape_ply%RDRAPE(1,1)
282 thkly = thkly*thinning
284 thickc = thickc + thkly
287 drape(ie)%THICK = thickc
289 IF (thk(ish3n) == zero) thk(ish3n) = thickc