59
60
61
62 USE elbufdef_mod
65 use element_mod , only : nixc
66
67
68
69#include "implicit_f.inc"
70
71
72
73#include "mvsiz_p.inc"
74
75
76
77#include "com04_c.inc"
78#include "param_c.inc"
79#include "impl1_c.inc"
80
81
82
83 INTEGER JFT ,JLT ,NFT ,NPT ,
84 . MTN ,ITHK ,NCYCLE,ISUBSTACK,
85 . ISTRAIN ,IPLA ,OFFSET,IHBE ,ISMSTR,IKGEO,IEXPAN
86 INTEGER , INTENT(IN) :: SEDRAPE,NUMEL_DRAPE
87 INTEGER IXC(NIXC,*),IGEO(NPROPGI,*),IPM(*),IPARG(*)
88 INTEGER INDXOF(MVSIZ),
89 . ETAG(*),IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*)
90 INTEGER, DIMENSION(SEDRAPE) :: INDX_DRAPE
91
92
94 . pm(npropm,*),geo(npropg,*),bufmat(*),x(3,*),thke(*),
95 . off(mvsiz),k_diag(*) ,k_lt(*)
96 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
97 TYPE (STACK_PLY) :: STACK
98 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE)
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134 INTEGER
135 . I, J,J1,J2, NEL, NPLAT,IPLAT(MVSIZ), NLAY,L_DIRA,L_DIRB,
136 . IREP,EP,IDRIL
137 INTEGER MAT(MVSIZ), PID(MVSIZ), NGL(MVSIZ),IORTH,IGTYP,IUN
139 . x13(mvsiz), x24(mvsiz), y13(mvsiz), y24(mvsiz),
140 . mx13(mvsiz), mx23(mvsiz), mx34(mvsiz),
141 . my13(mvsiz), my23(mvsiz), my34(mvsiz), z1(mvsiz),
142 . px1(mvsiz), px2(mvsiz), py1(mvsiz),py2(mvsiz),
143 . sx(mvsiz), sy(mvsiz), rx(mvsiz),ry(mvsiz),
144 . sx2(mvsiz), sy2(mvsiz), rx2(mvsiz),ry2(mvsiz),
145 . rhx(mvsiz,4),rhy(mvsiz,4),shx(mvsiz,4),shy(mvsiz,4),
146 . ph1(mvsiz),ph2(mvsiz),hxx(mvsiz),hyy(mvsiz),hxy(mvsiz)
148 . vq(mvsiz,9),
area(mvsiz), vqn(mvsiz,12),thk0(mvsiz),vol(mvsiz),
149 . a_i(mvsiz), thk2(mvsiz),hm(mvsiz,4),hf(mvsiz,4),hc(mvsiz,2),
150 . hz(mvsiz),dhz(mvsiz),hmor(mvsiz,2),hfor(mvsiz,2),
151 . gs(mvsiz),hmfor(mvsiz,6)
153 . corelv(mvsiz,2,4)
155 . k11(9,mvsiz),k12(9,mvsiz),k13(9,mvsiz),k14(9,mvsiz),
156 . k22(9,mvsiz),k23(9,mvsiz),k24(9,mvsiz),k33(9,mvsiz),
157 . m11(9,mvsiz),m12(9,mvsiz),m13(9,mvsiz),m14(9,mvsiz),
158 . m22(9,mvsiz),m23(9,mvsiz),m24(9,mvsiz),m33(9,mvsiz),
159 . mf11(9,mvsiz),mf12(9,mvsiz),mf13(9,mvsiz),mf14(9,mvsiz),
160 . mf22(9,mvsiz),mf23(9,mvsiz),mf24(9,mvsiz),mf33(9,mvsiz),
161 . fm12(9,mvsiz),fm13(9,mvsiz),fm14(9,mvsiz),
162 . fm23(9,mvsiz),fm24(9,mvsiz),fm34(9,mvsiz),
163 . k34(9,mvsiz),k44(9,mvsiz),m34(9,mvsiz),m44(9,mvsiz),
164 . mf34(9,mvsiz),mf44(9,mvsiz)
166 . prx(4,mvsiz),pry(4,mvsiz),prxy(4,mvsiz),phkrx(4,mvsiz),
167 . phkry(4,mvsiz),phkrxy(4,mvsiz),pherx(4,mvsiz),phery(4,mvsiz),
168 . pherxy(4,mvsiz),prz(4,mvsiz),phkrz(4,mvsiz),pherz(4,mvsiz),
169 . phkx(mvsiz),phky(mvsiz),phex(mvsiz),phey(mvsiz)
171 . ke11(36,mvsiz),ke22(36,mvsiz),ke33(36,mvsiz),ke44(36,mvsiz),
172 . ke12(36,mvsiz),ke13(36,mvsiz),ke14(36,mvsiz),ke23(36,mvsiz),
173 . ke24(36,mvsiz),ke34(36,mvsiz)
174
176 . DIMENSION(:) ,POINTER :: dir_a, dir_b
178 . ALLOCATABLE, DIMENSION(:), TARGET :: dira,dirb
179 TYPE(G_BUFEL_) ,POINTER :: GBUF
180
181
182
183
184
185
186 gbuf => elbuf_str%GBUF
187 nel=jlt-jft+1
188 idril = iparg(41)
189
190 igtyp = igeo(11,ixc(6,1))
191 irep = igeo(6 ,ixc(6,1))
192 nlay = elbuf_str%NLAY
193 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
194 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
195 ALLOCATE(dira(nlay*nel*l_dira))
196 ALLOCATE(dirb(nlay*nel*l_dirb))
197 dira = zero
198 dirb = zero
199 dir_a => dira(1:nlay*nel*l_dira)
200 dir_b => dirb(1:nlay*nel*l_dirb)
201 IF (irep == 0) THEN
202 DO j=1,nlay
203 j1 = 1+(j-1)*l_dira*nel
204 j2 = j*l_dira*nel
205 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
206 ENDDO
207 ENDIF
208
209 CALL czcoork3(jft ,jlt ,x ,ixc ,pm ,
210 1 gbuf%OFF,
area,a_i,vqn ,vq ,
211 2 x13 ,x24 ,y13 ,y24 ,mx13,
212 3 mx23,mx34 ,my13 ,my23 ,my34,
213 4 z1 , geo ,
214 5 elbuf_str,gbuf%SMSTR,nlay,
215 6 irep,npt,ismstr,
216 7 dir_a,dir_b,pid,mat,ngl,nplat,iplat ,
217 8 corelv,off,thke,nel)
218 IF (ikproj>0.OR.idril>0) THEN
219 DO i=1,9
220 DO ep=jft,jlt
221 m11(i,ep) =zero
222 m22(i,ep) =zero
223 m33(i,ep) =zero
224 m44(i,ep) =zero
225 m12(i,ep) =zero
226 m13(i,ep) =zero
227 m14(i,ep) =zero
228 m23(i,ep) =zero
229 m24(i,ep) =zero
230 m34(i,ep) =zero
231 mf11(i,ep) =zero
232 mf22(i,ep) =zero
233 mf33(i,ep) =zero
234 mf44(i,ep) =zero
235 mf12(i,ep) =zero
236 mf13(i,ep) =zero
237 mf14(i,ep) =zero
238 mf23(i,ep) =zero
239 mf24(i,ep) =zero
240 mf34(i,ep) =zero
241 fm12(i,ep) =zero
242 fm13(i,ep) =zero
243 fm14(i,ep) =zero
244 fm23(i,ep) =zero
245 fm24(i,ep) =zero
246 fm34(i,ep) =zero
247 ENDDO
248 ENDDO
249 ENDIF
250 IF (irep>0) THEN
251 CALL cmatc3(jft ,jlt ,pm ,mat ,geo ,
252 1 pid ,
area ,thk0 ,thk2 ,gbuf%THK ,
253 2 thke ,vol ,mtn ,npt ,ithk ,
254 3 hm ,hf ,hc ,hz ,igtyp ,
255 4 iorth ,hmor ,hfor ,dir_a ,igeo ,
256 5 idril ,ihbe ,hmfor ,gs ,isubstack,
257 6 stack ,elbuf_str ,nlay ,drape_sh4n ,nft ,
258 7 nel ,indx_drape,sedrape,numel_drape)
259 ELSE
260 CALL cmatc3(jft ,jlt ,pm ,mat ,geo ,
261 1 pid ,
area ,thk0 ,thk2 ,gbuf%THK ,
262 2 thke ,vol ,mtn ,npt ,ithk ,
263 3 hm ,hf ,hc ,hz ,igtyp ,
264 4 iorth ,hmor ,hfor ,dira ,igeo ,
265 5 idril ,ihbe ,hmfor ,gs ,isubstack,
266 6 stack ,elbuf_str ,nlay ,drape_sh4n ,nft ,
267 7 nel ,indx_drape,sedrape,numel_drape)
268 ENDIF
269
270
271
272 iun = 1
273 CALL cmatip3(jft ,jlt ,pm ,mat ,pid ,
274 1 mtn ,npt ,hm ,hf ,iorth ,
275 2 hmor ,hfor ,hmfor ,iun )
276
277 IF (iorth >0 .AND.ikproj<=0 .AND.idril==0 ) THEN
278 DO i=1,9
279 DO ep=jft,jlt
280 mf11(i,ep) =zero
281 mf22(i,ep) =zero
282 mf33(i,ep) =zero
283 mf44(i,ep) =zero
284 mf12(i,ep) =zero
285 mf13(i,ep) =zero
286 mf14(i,ep) =zero
287 mf23(i,ep) =zero
288 mf24(i,ep) =zero
289 mf34(i,ep) =zero
290 fm12(i,ep) =zero
291 fm13(i,ep) =zero
292 fm14(i,ep) =zero
293 fm23(i,ep) =zero
294 fm24(i,ep) =zero
295 fm34(i,ep) =zero
296 ENDDO
297 ENDDO
298 ENDIF
299
300
301
303 2 x24 ,y13 ,y24 ,mx13 ,mx23 ,
304 3 mx34 ,my13 ,my23 ,my34 ,z1 ,
305 4 px1 ,px2 ,py1 ,py2 ,rx ,
306 5 ry ,sx ,sy ,rx2 ,ry2 ,
307 6 sx2 ,sy2 ,rhx ,rhy ,shx ,
308 7 shy ,ph1 ,ph2 ,hxx ,hyy ,
309 8 hxy ,nplat,iplat)
310
311
312
313
314
315
316 CALL czlkec3(jft ,jlt ,vol ,thk0 ,thk2 ,
317 2 hm ,hf ,hz ,a_i ,z1 ,
318 3 px1 ,px2 ,py1 ,py2 ,nplat,
319 4 iplat,dhz ,
320 4 k11,k12,k13,k14,k22,k23,k24,k33,k34,k44,
321 5 m11,m12,m13,m14,m22,m23,m24,m33,m34,m44,
322 6 mf11,mf12,mf13,mf14,mf22,mf23,mf24,mf33,
323 7 mf34,mf44,fm12,fm13,fm14,fm23,fm24,fm34,
324 8 iorth,hmor,hfor,hmfor)
325
326
327
328 CALL czlkect3(jft ,jlt ,vol ,hc ,rx ,
329 4 ry ,sx ,sy ,rx2 ,ry2 ,
330 5 sx2 ,sy2 ,rhx ,rhy ,shx ,
331 6 shy ,gs ,nplat ,iplat,
332 9 k11,k12,k13,k14,k22,k23,k24,k33,k34,k44,
333 a m11,m12,m13,m14,m22,m23,m24,m33,m34,m44
334 b mf11,mf12,mf13,mf14,mf22,mf23,mf24,mf33,
335 c mf34,mf44,fm12,fm13,fm14,fm23,fm24,fm34)
336 IF (idril>0) THEN
338 1 x24 ,y13 ,y24 ,mx13 ,mx23 ,
339 2 mx34 ,my13 ,my23 ,my34 ,z1 ,
340 3 rx ,ry ,sx ,sy ,prx
341 4 pry ,prxy ,prz ,phkrx,phkry,
342 5 phkrxy,pherx,phery,pherxy,
343 6 phkrz,pherz ,phkx ,phky
344 7 phey ,iplat)
345 CALL czlkecr3(jft ,jlt ,vol ,thk0 ,thk2 ,
346 2 hm ,hf ,hz ,a_i ,z1 ,
347 3 px1 ,px2 ,py1 ,py2 ,
348 6 k11,k12,k13,k14,k22,k23,k24,k33,k34,k44,
349 7 m11,m12,m13,m14,m22,m23,m24,m33,m34,m44,
350 8 mf11,mf12,mf13,mf14,mf22,mf23,mf24,mf33,
351 9 mf34,mf44,fm12,fm13,fm14,fm23,fm24,fm34,
352 a iorth,hmor,hfor ,iplat,dhz ,
353 4 prx ,pry ,prxy ,prz ,hmfor,nplat)
354 ENDIF
355
356
357
358
359 IF ( iorth >0 .OR. mtn == 27) THEN
360
361
362 CALL cmatch3(jft ,jlt ,pm ,mat ,geo ,
363 1 pid ,mtn ,idril ,igeo ,hm ,
364 2 hf ,hz )
365 ENDIF
366 CALL czlken3(jft ,jlt ,vol ,thk0 ,thk2 ,
367 2 hm ,hz ,a_i ,px1 ,px2 ,
368 3 py1 ,py2 ,hxx ,hyy ,hxy ,
369 4 ph1 ,ph2 ,z1 ,nplat,iplat,dhz ,
370 5 k11,k12,k13,k14,k22,k23,k24,k33,k34,k44,
371 6 m11,m12,m13,m14,m22,m23,m24,m33,m34,m44,
372 7 mf11,mf12,mf13,mf14,mf22,mf23,mf24,mf33,
373 8 mf34,mf44,fm12,fm13,fm14,fm23,fm24,fm34,
374 9 idril )
375 IF (idril>0) THEN
376 CALL czlkenr3(jft ,jlt ,vol ,thk0 ,thk2 ,
377 2 hm ,hz ,a_i ,px1 ,px2 ,
378 3 py1 ,py2 ,hxx ,hyy ,hxy ,
379 4 ph1 ,ph2 ,z1 ,nplat,iplat,dhz ,
380 5 k11,k12,k13,k14,k22,k23,k24,k33,k34,k44,
381 6 m11,m12,m13,m14,m22,m23,m24,m33,m34,m44,
382 7 mf11,mf12,mf13,mf14,mf22,mf23,mf24,mf33,
383 8 mf34,mf44,fm12,fm13,fm14,fm23,fm24,fm34,
384 9 phkrx,phkry,phkrxy,pherx,phery,pherxy,
385 a phkrz,pherz,phkx ,phky ,phex ,phey )
386 ENDIF
387 IF (ikgeo ==1)
388 .
CALL czlkecg3(jft ,jlt ,vol ,thk0 ,thk2 ,
389 1 px1 ,px2 ,py1 ,py2 ,rx ,
390 2 ry ,sx ,sy ,rx2 ,ry2 ,
391 3 sx2 ,sy2 ,rhx ,rhy ,shx ,
392 4 shy ,nplat ,iplat,gbuf%FOR,gbuf%MOM,
393 5 k11,k12,k13,k14,k22,k23,k24,k33,k34,k44,
394 6 m11,m12,m13,m14,m22,m23,m24,m33,m34,m44,
395 7 mf11,mf12,mf13,mf14,mf22,mf23,mf24,mf33,
396 8 mf34,mf44,fm12,fm13,fm14,fm23,fm24,fm34,
397 9 idril,iorth ,nel)
398
399
400
402 1 jft ,jlt ,vqn ,vq ,nplat,
403 2 iplat ,
404 3 k11,k12,k13,k14,k22,k23,k24,k33,k34,k44,
405 4 m11,m12,m13,m14,m22,m23,m24,m33,m34,m44,
406 5 mf11,mf12,mf13,mf14,mf22,mf23,mf24,mf33,
407 6 mf34,mf44,fm12,fm13,fm14,fm23,fm24,fm34,
408 7 ke11,ke22,ke33,ke44,ke12,ke13,ke14,ke23,
409 8 ke24,ke34,corelv,z1 ,idril ,iorth)
410
412 1 jft, jlt, ixc, etag, off)
413
415 1 ixc ,nel ,iddl ,ndof ,k_diag ,
416 2 k_lt ,iadk ,jdik ,ke11 ,ke12 ,
417 3 ke13 ,ke14 ,ke22 ,ke23 ,ke24 ,
418 5 ke33 ,ke34 ,ke44 ,off )
419
420 RETURN
subroutine assem_c4(ixc, nel, iddl, ndof, k_diag, k_lt, iadk, jdik, kc11, kc12, kc13, kc14, kc22, kc23, kc24, kc33, kc34, kc44, off)
subroutine c4eoff(jft, jlt, ixc, etag, off)
subroutine cmatip3(jft, jlt, pm, mat, pid, mtn, npt, hm, hf, iorth, hmor, hfor, hmfor, ipg)
subroutine cmatch3(jft, jlt, pm, mat, geo, pid, mtn, idril, igeo, hm, hf, hz)
subroutine cmatc3(jft, jlt, pm, mat, geo, pid, area, thk0, thk02, thk, thke, volg, mtn, npt, ithk, hm, hf, hc, hz, igtyp, iorth, hmor, hfor, dir, igeo, idril, ihbe, hmfor, gs, isubstack, stack, elbuf_str, nlay, drape, nft, nel, indx_drape, sedrape, numel_drape)
subroutine czbe3(jft, jlt, area, a_i, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, px1, px2, py1, py2, rx, ry, sx, sy, rx2, ry2, sx2, sy2, rhx, rhy, shx, shy, ph1, ph2, hxx, hyy, hxy, nplat, iplat)
subroutine czber3(jft, jlt, area, a_i, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, rx, ry, sx, sy, prx, pry, prxy, prz, phkrx, phkry, phkrxy, pherx, phery, pherxy, phkrz, pherz, phkx, phky, phex, phey, iplat)
subroutine czcoork3(jft, jlt, x, ixc, pm, offg, area, area_i, vqn, vq, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, geo, elbuf_str, smstr, nlay, irep, npt, ismstr, dir_a, dir_b, pid, mat, ngl, nplat, iplat, corelv, off, thk, nel)
subroutine czlkec3(jft, jlt, vol, thk0, thk2, hm, hf, hz, a_i, z1, px1, px2, py1, py2, nplat, iplat, dhz, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44, mf11, mf12, mf13, mf14, mf22, mf23, mf24, mf33, mf34, mf44, fm12, fm13, fm14, fm23, fm24, fm34, iorth, hmor, hfor, hmfor)
subroutine czlkecr3(jft, jlt, vol, thk0, thk2, hm, hf, hz, a_i, z1, px1, px2, py1, py2, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44, mf11, mf12, mf13, mf14, mf22, mf23, mf24, mf33, mf34, mf44, fm12, fm13, fm14, fm23, fm24, fm34, iorth, hmor, hfor, iplat, dhz, prx, pry, prxy, prz, hmfor, nplat)
subroutine czlkecg3(jft, jlt, vol, thk0, thk2, px1, px2, py1, py2, rx, ry, sx, sy, rx2, ry2, sx2, sy2, rhx, rhy, shx, shy, nplat, iplat, for, mom, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44, mf11, mf12, mf13, mf14, mf22, mf23, mf24, mf33, mf34, mf44, fm12, fm13, fm14, fm23, fm24, fm34, idril, iorth, nel)
subroutine czlkect3(jft, jlt, vol, hc, rx, ry, sx, sy, rx2, ry2, sx2, sy2, rhx, rhy, shx, shy, gs, nplat, iplat, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44, mf11, mf12, mf13, mf14, mf22, mf23, mf24, mf33, mf34, mf44, fm12, fm13, fm14, fm23, fm24, fm34)
subroutine czlken3(jft, jlt, vol, thk0, thk2, hm, hz, a_i, px1, px2, py1, py2, hxx, hyy, hxy, ph1, ph2, z1, nplat, iplat, dhz, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44, mf11, mf12, mf13, mf14, mf22, mf23, mf24, mf33, mf34, mf44, fm12, fm13, fm14, fm23, fm24, fm34, idril)
subroutine czlkenr3(jft, jlt, vol, thk0, thk2, hm, hz, a_i, px1, px2, py1, py2, hxx, hyy, hxy, ph1, ph2, z1, nplat, iplat, dhz, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44, mf11, mf12, mf13, mf14, mf22, mf23, mf24, mf33, mf34, mf44, fm12, fm13, fm14, fm23, fm24, fm34, phkrx, phkry, phkrxy, pherx, phery, pherxy, phkrz, pherz, phkx, phky, phex, phey)
subroutine czsumg3(jft, jlt, vqn, vq, nplat, iplat, k11, k12, k13, k14, k22, k23, k24, k33, k34, k44, m11, m12, m13, m14, m22, m23, m24, m33, m34, m44, mf11, mf12, mf13, mf14, mf22, mf23, mf24, mf33, mf34, mf44, fm12, fm13, fm14, fm23, fm24, fm34, ke11, ke22, ke33, ke44, ke12, ke13, ke14, ke23, ke24, ke34, corelv, z1, idril, iorth)
subroutine area(d1, x, x2, y, y2, eint, stif0)