79
80
81
82 USE my_alloc_mod
83 USE mat_elem_mod
88 USE group_param_mod
90 USE random_walk_def_mod
91 USE fractal_dmg_init_mod
93 use brokmann_random_def_mod
94 use glob_therm_mod
95 use initemp_shell_mod
96
97
98
99#include "implicit_f.inc"
100
101
102
103#include "mvsiz_p.inc"
104
105
106
107#include "com01_c.inc"
108#include "com04_c.inc"
109#include "com_xfem1.inc"
110#include "param_c.inc"
111#include "scr03_c.inc"
112#include "scr17_c.inc"
113#include "vect01_c.inc"
114#include "scry_c.inc"
115
116
117
118 INTEGER NDDIM,OFFSET,NEL,ITHK,ISIGSH,NSIGSH,IUSER,
119 . CPT_ELTENS,ISUBSTACK,IYLDINI,ISH3N,NG,IDRAPE
120 INTEGER IXTG(NIXTG,*),IPART(*),IGEO(NPROPGI,*),IPM(NPROPMI,*),
121 . IPARG(*),NSHNOD(*), PTSH3N(*),NPF(*),
122 . SH3TREE(*),ITAGE(*),ITAGN(*),IXFEM,IAD0,SH3TRIM(*),
123 . IGEO_STACK(*),PERTURB(NPERTURB)
124 INTEGER ,INTENT(IN) :: IDDLEVEL
125
127 . pm(*),x(3,*),geo(npropg,*),xmas(*),xreftg(3,3,*),
128 . in(*),dtelem(*),thk(*),sigsh(nsigsh,*),
129 . stifn(*),stifr(*),partsav(20,*), v(*), skew(lskew,*),
130 . mstg(*),intg(*),ptg(3,*),
131 . etnod(*), sttg(*),bufmat(*),mcp(*),mcptg(*),temp(*),
132 . part_area(*),tf(*),rnoise(*),sh3ang(*),
133 . geo_stack(*),strtg(*),ele_area(*)
134 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
135 TYPE(ELBUF_STRUCT_), TARGET ,DIMENSION(NGROUP,*):: XFEM_STR
136
137 TYPE (STACK_PLY) :: STACK
138 TYPE (NLOCAL_STR_) :: NLOC_DMG
139 TYPE (GROUP_PARAM_) :: GROUP_PARAM
140 TYPE (DRAPE_) :: DRAPE(NUMELC_DRAPE + NUMELTG_DRAPE)
141 TYPE (DRAPEG_) :: DRAPEG
142 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :: MAT_PARAM
143 TYPE (FAIL_FRACTAL_) ,INTENT(IN) :: FAIL_FRACTAL
144 TYPE (FAIL_BROKMANN_) ,INTENT(IN) :: FAIL_BROKMANN
145 TYPE (glob_therm_) ,intent(in) :: glob_therm
146
147 TYPE (GROUP_) , DIMENSION(NGRSHEL) :: IGRSH4N
148 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
149
150
151
152 INTEGER I,J,NDEPAR,IGTYP,NVC,NUVAR,NLAY,IR,IS,IL,IFAIL,NUPARAM,
153 . ,NPTS,NPTT,IXEL,II,IT,ILAW,IMAT,IPROP,IREP,ITG,IGMAT,
154 . IFRAM_OLD,NPT_ALL,MPT,LAYNPT_MAX,LAY_MAX
155 INTEGER IORTHLOC(MVSIZ),MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),JJ(6),
156 . IX1(MVSIZ),IX2(MVSIZ),IX3(MVSIZ)
158 . vx(mvsiz),vy(mvsiz),vz(mvsiz),aldt(mvsiz),
area(mvsiz)
160 . DIMENSION(MVSIZ) :: px1g,py1g,py2g,x2s,x3s,y3s,dt
161 my_real x1(mvsiz), x2(mvsiz), x3(mvsiz) ,x4(mvsiz),
162 . y1(mvsiz), y2(mvsiz), y3(mvsiz),y4(mvsiz),
163 . z1(mvsiz), z2(mvsiz), z3(mvsiz),z4(mvsiz),
164 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
165 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz
166
167 . x31(mvsiz), y31(mvsiz), z31(mvsiz),
168 . x2l(mvsiz), x3l(mvsiz), y3l(mvsiz)
169 INTEGER ID
170 CHARACTER(LEN=NCHARTITLE)::TITR
172 . ALLOCATABLE, DIMENSION(:) :: dir_a,dir_b,phi1,phi2,
173 . coor1,coor2,coor3,coor4
174 INTEGER, ALLOCATABLE, DIMENSION(:) :: INDX
175 parameter(laynpt_max = 10)
176 parameter(lay_max = 100)
177 INTEGER, DIMENSION(:),ALLOCATABLE::MATLY
178 my_real,
DIMENSION(:,:),
ALLOCATABLE :: posly
179
181 . DIMENSION(:) ,POINTER :: uvar,dir1,dir2
182 TYPE(G_BUFEL_) ,POINTER :: GBUF
183 TYPE(L_BUFEL_) ,POINTER :: LBUF
184 TYPE(BUF_LAY_) ,POINTER :: BUFLY
185
186
187 CALL my_alloc(matly,mvsiz*lay_max)
188 CALL my_alloc(posly,mvsiz,lay_max*laynpt_max)
189
190 gbuf => elbuf_str%GBUF
191 bufly => elbuf_str%BUFLY(1)
192
193 imat = ixtg(1,1+nft)
194 iprop = ixtg(nixtg
195 igtyp = nint(geo(12,iprop))
197 igmat = igeo(98,iprop)
198 irep = iparg(35)
199 ifail = iparg(43)
200
201 IF (ish3n==3.AND.ish3nfram==0) THEN
202 ifram_old =0
203 ELSE
204 ifram_old =1
205 END IF
206
208 nuvar = ipm(8,ixtg(1,1+nft))
209 vx = zero
210 vy = zero
211 vz = zero
212 iorthloc = 0
213 itg = 1+numelc
214
215 ir = 1
216 is = 1
217 nlay = elbuf_str%NLAY
218 nxel = elbuf_str%NXEL
219 nptt = elbuf_str%NPTT
220
221 npt_all = 0
222 DO il=1,nlay
223 npt_all = npt_all + elbuf_str%BUFLY(il)%NPTT
224 ENDDO
226 IF(npt_all == 0) npt_all = nlay
227 IF (iparg(6) == 0.OR.npt==0) mpt=0
228 IF((igtyp == 51 .OR. igtyp == 52) .AND. idrape > 0) THEN
229 ALLOCATE(dir_a(npt_all*nel*2))
230 ALLOCATE(dir_b(npt_all*nel*2))
231 dir_a = zero
232 dir_b = zero
233 ALLOCATE(phi1(mvsiz*npt_all
234 ALLOCATE(phi2(nvsiz*npt_all))
235 phi1 = zero
236 phi2 = zero
237 ALLOCATE(coor1(npt_all*mvsiz))
238 ALLOCATE(coor2(npt_all*mvsiz))
239 ALLOCATE(coor3(npt_all*mvsiz))
240 ALLOCATE(coor4(npt_all*mvsiz))
241 coor1 = zero
242 coor2 = zero
243 coor3 = zero
244 coor4 = zero
245 ELSE
246 ALLOCATE(dir_a(nlay*nel*2))
247 ALLOCATE(dir_b(nlay*nel*2))
248 dir_a = zero
249 dir_b = zero
250 ALLOCATE(phi1(nlay*mvsiz))
251 ALLOCATE(phi2(nlay*mvsiz
252 phi1 = zero
253 phi2 = zero
254 ALLOCATE(coor1(nlay*mvsiz))
255 ALLOCATE(coor2(nlay*mvsiz))
256 ALLOCATE(coor3(nlay*mvsiz))
257 ALLOCATE(coor4(nlay*mvsiz))
258 coor1 = zero
259 coor2 = zero
260 coor3 = zero
261 coor4 = zero
262 npt_all = nlay
263 ENDIF
264
265
266 DO j=1,6
267 jj(j) = nel*(j-1)
268 ENDDO
269
270 DO i=lft,llt
271 mat(i) = imat
272 pid(i) = iprop
273 ENDDO
274
275 IF (ixfem > 0) THEN
276 DO i=lft
277 itagn(ixtg(2,i+nft)) =1
278 itagn(ixtg(3,i+nft)) =1
279 itagn(ixtg(4,i+nft)) =1
280 itage(i+nft) = 1
281 ENDDO
282 ENDIF
283
284 CALL c3coori(x,xreftg(1,1,nft+1),ixtg(1,nft
285 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
286 . z1 ,z2 ,z3 ,ix1 ,ix2
287 CALL c3veok3(nvc ,ix1 ,ix2 ,ix3 )
289 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
290 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
291 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
292 . x31,
293
294
295
296 IF ((imasadd > 0).OR.(nloc_dmg%IMOD > 0)) THEN
297 DO i=lft,llt
298 j = ipart(i+nft)
299
300 ele_area(numelc+i+nft) =
area(i)
301 IF (gbuf%G_AREA > 0) gbuf%AREA(i) =
area(i)
302 ENDDO
303 ENDIF
304
305
306
307 IF (jthe == 0 .and. glob_therm%NINTEMP > 0) THEN
308 CALL initemp_shell(elbuf_str,temp,nel,numnod,numeltg,3,nixtg,ixtg)
309 END IF
310
311 IF(idrape > 0 ) THEN
312 ALLOCATE(indx(numeltg))
313 indx = 0
314 indx(1:numeltg) = drapeg%INDX(numelc + 1 : numelc + numeltg)
315 ELSE
316 ALLOCATE(indx(0))
317 ENDIF
318 CALL c3inmas(x,xreftg(1,1,nft+1),ixtg,geo,pm,xmas,in,thk,
319 . partsav,v,ipart(nft
320 . ptg(1,nft+1),igeo ,imat ,iprop ,
area ,
321 . etnod,nshnod,sttg(nft+1) ,sh3tree ,mcp ,
322 . mcptg(nft+1),temp ,sh3trim,isubstack,nlay ,
323 . elbuf_str ,stack ,gbuf%THK_I,rnoise,drape,
324 . perturb,ix1 ,ix2
325 . x2l ,x3l ,y3l ,idrape,indx)
326
327 CALL c3derii(lft,llt,pm,geo,px1g,py1g,py2g,
328 . stifn ,stifr ,ixtg(1,nft+1),
329 . thk,sh3tree,aldt ,bufmat , ipm ,igeo,
330 . stack%PM,isubstack,strtg(nft+1),imat,iprop,
331 .
area ,dt ,x31 ,y31 ,z31 ,
332 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,
333 . e1z ,e2z ,e3z ,x2l ,x3l ,y3l ,
334 . group_param)
335
336 CALL c1buf3(geo,gbuf%THK,gbuf%OFF,thk,ksh3tree,sh3tree)
337
338 IF (ixfem > 0) THEN
339 DO ixel=1,nxel
340 DO i=lft,llt
341 xfem_str(ng,ixel)%GBUF%THK(i) = thk(i)
342 xfem_str(ng,ixel)%GBUF%OFF(i) = -one
343 END DO
344 ENDDO
345 ENDIF
346
347 IF (ifram_old ==0 )
349 . x1 ,x2 ,x3 ,y1 ,y2 ,y3 ,
350 . z1 ,z2 ,z3 ,e1x ,e2x ,e3x ,
351 . e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
352
353
354
356 . lft ,llt ,nft
357 . nsigsh ,nixtg ,ixtg(1,nft+1),igeo ,geo ,
358 . skew ,sigsh
359 . vx ,vy ,vz ,coor1 ,coor2 ,
360 . coor3 ,coor4 ,iorthloc ,isubstack ,stack ,
361 . irep ,elbuf_str ,drape ,sh3ang(nft+1),x ,
362 . geo_stack ,e3x ,e3y ,e3z ,
363 . gbuf%BETAORTH,x1 ,x2 ,y1 ,y2 ,
364 . z1 ,z2 ,nel ,gbuf%G_ADD_NODE,gbuf%ADD_NODE,
365 . npt_all ,idrape ,indx)
366
367 IF(igtyp == 51 .OR. igtyp == 52 .OR. igmat > 0) THEN
368
370 . igeo ,geo ,vx ,vy ,vz
371 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
372 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
373 . stack ,geo_stack ,igeo_stack ,ir ,is ,
374 . nel ,imat ,iprop ,
375 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
376 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
377 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
378 . npt_all ,idrape)
379
380 ELSEIF (mtn == 27) THEN
382 . geo ,igeo ,pm ,ipm ,ixtg(1,1+nft) ,nixtg,
383 . nlay,ir ,is ,imat )
384 ELSEIF (mtn == 35) THEN
385 nptr = elbuf_str%NPTR
386 npts = elbuf_str%NPTS
387 nptt = elbuf_str%NPTT
389 . nptr,npts,nptt,igtyp)
390 ELSEIF (mtn == 15 .or. mtn == 19 .or. mtn == 25 .or. mtn >= 28)THEN
391 IF (mtn == 19 .AND. igtyp /= 9) THEN
393 . anmode=aninfo,
394 . msgtype=msgerror,
395 . i1=igeo(1,ixtg(nixtg-1,nft+1)))
396 ENDIF
397
399 . igeo ,geo ,vx ,vy ,vz ,
400 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
401 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
402 . stack ,geo_stack ,igeo_stack ,ir ,is ,
403 . nel ,imat ,iprop ,
404 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
405 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
406 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
407 . npt_all ,idrape)
408 ENDIF
409
410 IF ((mtn == 58 .or. mtn == 158) .AND.
411 . igtyp /= 16 .AND. igtyp /= 51 .AND. igtyp /= 52) THEN
413 . msgtype=msgerror,
414 . anmode=aninfo_blind_1,
416 . c1=titr,
417 . i2=mtn,
418 . i3=igtyp)
419 ELSEIF (mtn == 58 .or. mtn == 158 .OR. igtyp == 51 .OR. igtyp == 52) THEN
420 IF (idrape == 0 ) THEN
421 DO il = 1,nlay
422 nptt = elbuf_str%BUFLY(il)%NPTT
423 imat = elbuf_str%BUFLY(il)%IMAT
424 ilaw = elbuf_str%BUFLY(il)%ILAW
425 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
426 dir1 => elbuf_str%BUFLY(il)%DIRA
427 dir2 => elbuf_str%BUFLY(il)%DIRB
428 nuparam = mat_param(imat)%NUPARAM
429
430 IF (ilaw == 58) THEN
431 DO it=1,nptt
432 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
433 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
435 . irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
436 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
437 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
438 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
439 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
440 ENDDO
441 ELSE IF (ilaw == 158) THEN
442 DO it=1,nptt
443 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
444 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
446 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
447 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
448 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
449 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
450 ENDDO
451 ENDIF
452
453 ENDDO
454 ELSE
455 DO il = 1,nlay
456 nptt = elbuf_str%BUFLY(il)%NPTT
457 imat = elbuf_str%BUFLY(il)%IMAT
458 ilaw = elbuf_str%BUFLY(il)%ILAW
459 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
460 nuparam = mat_param(imat)%NUPARAM
461
462 IF (ilaw == 58) THEN
463 DO it=1,nptt
464 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
465 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
466 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
467 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
469 . irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
470 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
471 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
472 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
473 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
474 ENDDO
475 ELSE IF (ilaw == 158) THEN
476 DO it=1,nptt
477 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
478 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
479 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
480 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
482 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
483 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
484 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
485 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z )
486 ENDDO
487 ENDIF
488
489 ENDDO
490 ENDIF
491 ENDIF
492
493
494
495 IF (isigsh /= 0 .OR. ithkshel == 2) THEN
496
497 IF (mpt>0) THEN
499 . elbuf_str ,lft ,llt ,geo ,igeo ,
500 . mat ,pid ,matly ,posly ,igtyp ,
501 . nlay ,mpt ,isubstack ,stack ,drape ,
502 . nft ,gbuf%THK ,nel ,idrape ,
stdrape ,
503 . indx)
504 CALL corth3(elbuf_str,dir_a ,dir_b ,lft ,llt ,
505 . nlay ,irep ,nel ,
506 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
507 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
508 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
509 . idrape , igtyp)
510 END IF
512 1 lft ,llt ,nft ,mpt ,istrain ,
513 2 gbuf%THK,gbuf%EINT,gbuf%STRA,gbuf%HOURG,gbuf%PLA ,
514 3 gbuf%FOR,gbuf%MOM ,sigsh ,nlay ,gbuf%G_HOURG,
515 4 numeltg ,ixtg ,nixtg ,nsigsh ,numsh3n ,
516 5 ptsh3n ,igeo ,thk ,nel ,e1x ,
517 6 e2x ,e3x ,e1y ,e2y ,e3y ,
518 7 e1z ,e2z ,e3z ,isigsh ,dir_a ,
519 8 dir_b ,posly ,igtyp )
520 ELSEIF ( ithkshel == 1 ) THEN
521 CALL thickini(lft ,llt ,nft ,ptsh3n,numeltg,
522 2 gbuf%THK,thk
523 3 sigsh )
524 ENDIF
525
526
527
528
529 IF (fail_fractal%NFAIL > 0) THEN
530 CALL fractal_dmg_init(elbuf_str,mat_param,fail_fractal,
531 . nummat ,numeltg ,nel ,nft ,ngl ,ity )
532 ENDIF
533
534 IF (ifail > 0 .and. iddlevel == 1) THEN
536 . nel ,nft ,ity ,igrsh4n ,igrsh3n ,
537 . aldt ,thk ,ngl )
538 ENDIF
539
540
541
543 . nptt ,nlay ,sigsh ,nsigsh ,ptsh3n ,
544 . rnoise ,perturb ,aldt ,thk )
545
546
547
548
549 IF (istrain == 1 .AND. nxref > 0) THEN
550 uvar => elbuf_str%BUFLY(1)%MAT(1,1,1)%VAR
551 imat = elbuf_str%BUFLY(1)%IMAT
552
553 CALL c3epsini(elbuf_str,mat_param(imat),
554 . lft ,llt ,ismstr ,mtn ,ithk ,
555 . pm ,geo ,ixtg(1,nft+1),x ,xreftg(1,1,nft+1),
556 . gbuf%FOR,gbuf%THK ,gbuf%EINT ,gbuf%STRA,nlay ,
557 . px1g ,py1g ,py2g ,x2s ,x3s ,
558 . y3s ,uvar ,ipm ,
559 . nel ,dir_a ,dir_b ,gbuf%SIGI,npf ,
560 . tf ,irep ,ifram_old ,imat )
561
562 CALL c3epschk(lft, llt,nft, pm, geo,ixtg(1,nft+1), gbuf%STRA,thk,
563 . nel,cpt_eltens)
564
565 IF (ismstr == 1 .AND. mtn==19) iparg(9) = 11
566
567 ELSEIF (ismstr == 11 .OR. (ismstr==1 .AND. mtn==19)) THEN
568
570 . lft ,llt ,ixtg(1,nft+1),x ,x2s ,
571 . x3s ,y3s )
572 ENDIF
573
574 IF (ismstr == 10) THEN
575 DO i=lft,llt
576 ii = nft + i
577 elbuf_str%GBUF%SMSTR(jj(1)+i) = x(1,ixtg(3,ii))-x(1,ixtg(2,ii))
578 elbuf_str%GBUF%SMSTR(jj(2)+i) = x(2,ixtg(3,ii))-x(2,ixtg(2,ii))
579 elbuf_str%GBUF%SMSTR(jj(3)+i) = x(3,ixtg(3,ii))-x(3,ixtg(2,ii))
580 elbuf_str%GBUF%SMSTR(jj(4)+i) = x(1,ixtg(4,ii))-x(1,ixtg(2,ii))
581 elbuf_str%GBUF%SMSTR(jj(5)+i) = x(2,ixtg(4,ii))-x(2,ixtg(2,ii))
582 elbuf_str%GBUF%SMSTR(jj(6)+i) = x(3,ixtg(4,ii))-x(3,ixtg(2,ii))
583 ENDDO
584 ELSEIF (ismstr == 11 .OR.(ismstr==1 .AND. mtn==19)) THEN
585 DO i=lft,llt
586 elbuf_str%GBUF%SMSTR(jj(1)+i) = x2s(i)
587 elbuf_str%GBUF%SMSTR(jj(2)+i) = x3s(i)
588 elbuf_str%GBUF%SMSTR(jj(3)+i) = y3s(i)
589 ENDDO
590 ENDIF
591
592 IF (iuser == 1 .and. mtn > 28) THEN
593
595 1 lft ,llt ,nft ,nel ,npt ,
596 2 istrain,sigsh ,numeltg ,ixtg ,nixtg ,
597 3 nsigsh ,numsh3n,ptsh3n ,ir ,is ,
598 4 nlay )
599 ENDIF
600
601 IF (iyldini == 1 .AND. (mtn== 36.OR. mtn==87))THEN
603 1 lft ,llt ,nft ,nel ,npt ,
604 2 istrain,sigsh ,numeltg ,ixtg ,nixtg ,
605 3 nsigsh ,numsh3n,ptsh3n ,ir ,is ,
606 4 nlay )
607 ENDIF
608
609
610
611
612 IF (igtyp /= 0 .AND. igtyp /= 1 .AND.
613 . igtyp /= 9 .AND. igtyp /= 10 .AND.
614 . igtyp /= 11 .AND. igtyp /= 16 .AND.
615 . igtyp /= 17 .AND. igtyp /= 51 .AND.
616 . igtyp /= 52 ) THEN
618 . anmode=aninfo,
619 . msgtype=msgerror,
621 . c1=titr,
622 . i2=iprop)
623 ENDIF
624 ndepar=numels+numelc+numelt+numelp+numelr+nft
625 DO i=lft,llt
626 dtelem(ndepar+i) = dt
627 END DO
628
629 IF (ixfem > 0) THEN
630 CALL cbufxfe(elbuf_str,xfem_str,isubstack,stack ,
631 . igeo ,geo ,lft ,llt ,mat,
632 . pid ,npt ,nptt ,nlay,ir ,
633 . is ,ixfem,mtn ,ng)
634 ENDIF
635
636
637 DO i=lft,llt
638 IF (gbuf%G_VOL > 0) gbuf%VOL(i) =
area(i)*gbuf%THK(i)
639 ENDDO
640 IF (ixfem > 0) THEN
641 DO ixel=1,nxel
642 DO i=lft,llt
643 IF (xfem_str(ng,ixel
644 . xfem_str(ng,ixel)%GBUF%VOL(i) =
area(i)*gbuf%THK(i
645 END DO
646 ENDDO
647 ENDIF
648
649 IF (ALLOCATED(dir_b)) DEALLOCATE(dir_b)
650 IF (ALLOCATED(dir_a)) DEALLOCATE(dir_a)
651 IF (ALLOCATED(indx)) DEALLOCATE(indx)
652
653 DEALLOCATE(matly)
654 DEALLOCATE(posly)
655
656 RETURN
subroutine c1buf3(geo, thk, off, thke, kshtree, shtree)
subroutine c3coori(x, xreftg, ixp, ngl, x1, x2, x3, y1, y2, y3, z1, z2, z3, ix1, ix2, ix3)
subroutine c3derii(jft, jlt, pm, geo, px1, py1, py2, stifn, stifr, ixtg, thk, sh3tree, aldt, uparam, ipm, igeo, pm_stack, isubstack, strtg, imat, iprop, area, dt, x31g, y31g, z31g, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, x2, x3, y3, group_param)
subroutine c3epsini(elbuf_str, mat_param, jft, jlt, ismstr, mtn, ithk, pm, geo, ixtg, x, xreftg, for, thk, eint, gstr, nlay, px1g, py1g, py2g, x2s, x3s, y3s, uvar, ipm, nel, dir_a, dir_b, sigi, npf, tf, irep, ish3nfr, imat)
subroutine c3epschk(jft, jlt, nft, pm, geo, ixtg, gstr, thk, nel, cpt_eltens)
subroutine c3eps11_ini(jft, jlt, ixtg, x, x2s, x3s, y3s)
subroutine c3inmas(x, xreftg, ixtg, geo, pm, ms, tiner, thke, partsav, v, ipart, mstg, intg, ptg, igeo, imat, iprop, area, etnod, nshnod, sttg, sh3tree, mcp, mcptg, temp, sh3trim, isubstack, nlay, elbuf_str, stack, thki, rnoise, drape, perturb, ix1, ix2, ix3, nintemp, x2, x3, y3, idrape, indx)
subroutine c3veok3(nvc, ix1, ix2, ix3)
subroutine cbufxfe(elbuf_str, xfem_str, isubstack, stack, igeo, geo, lft, llt, mat, pid, npt, nptt, nlay, ir, is, ixfem, mtn, ng)
subroutine cdkevec3(jft, jlt, area, x1, x2, x3, y1, y2, y3, z1, z2, z3, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine cfailini(elbuf_str, mat_param, nptt, nlay, sigsh, nsigsh, ptsh, rnoise, perturb, aldt, thk)
subroutine cm27in3(elbuf_str, geo, igeo, pm, ipm, ix, nix, nlay, ir, is, imat)
subroutine cm35in3(elbuf_str, thk, area, nel, nlay, nptr, npts, nptt, igtyp)
subroutine cm58in3(irep, dir1, dir2, uparam, uvar, aldt, nel, nuvar, tan_phi, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine cmatini(elbuf_str, jft, jlt, nft, nel, npt, istrain, sigsh, numel, ix, nix, nsigsh, numsh, ptsh, ir, is, nlay)
subroutine corth3(elbuf_str, dir_a, dir_b, jft, jlt, nlay, irep, nel, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, idrape, igtyp)
subroutine corthdir(elbuf_str, igeo, geo, vx, vy, vz, phi1, phi2, coor1, coor2, coor3, coor4, iorthloc, nlay, irep, isubstack, stack, geo_stack, igeo_stack, ir, is, nel, imat, iprop, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, npt_all, idrape)
subroutine corthini(jft, jlt, nft, nlay, numel, nsigsh, nix, ix, igeo, geo, skew, sigsh, ptsh, phi1, phi2, vx, vy, vz, coor1, coor2, coor3, coor4, iorthloc, isubstack, stack, irep, elbuf_str, drape, angle, x, geo_stack, e3x, e3y, e3z, betaorth, x1, x2, y1, y2, z1, z2, nel, g_add_node, add_node, npt_all, idrape, indx)
subroutine csigini(elbuf_str, jft, jlt, nft, npt, istrain, thk, eint, gstr, hh, plas, for, mom, sigsh, nlay, g_hourg, numel, ix, nix, nsigsh, numsh, ptsh, igeo, thke, nel, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, isigsh, dir_a, dir_b, posly, igtyp)
subroutine cuserini(elbuf_str, jft, jlt, nft, nel, npt, istrain, sigsh, numel, ix, nix, nsigsh, numsh, ptsh, ir, is, nlay)
subroutine fail_brokmann(nel, nuparam, nuvar, time, timestep, uparam, ngl, signxx, signyy, signxy, uvar, off, ipt, nindxf, indxf, tdel)
subroutine fail_windshield_init(elbuf_str, mat_param, fail_brokmann, nel, nft, ity, igrsh4n, igrsh3n, aldt, thk, ngl)
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine law158_init(dir1, dir2, uvar, aldt, nel, nuvar, tan_phi, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z)
subroutine layini1(elbuf_str, jft, jlt, geo, igeo, mat, pid, matly, posly, igtyp, nlay, npt, isubstack, stack, drape, nft, thk, nel, idrape, numel_drape, indx)
integer, parameter nchartitle
subroutine c3evec3(jft, jlt, area, x1, x2, x3, y1, y2, y3, z1, z2, z3, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, x31, y31, z31, x2l, x3l, y3l)
subroutine thickini(jft, jlt, nft, ptsh, numel, thk, thke, ix, nix, nsigsh, sigsh)