81
82
83
84 USE my_alloc_mod
85 USE elbufdef_mod
89 USE group_param_mod
92 USE matparam_def_mod
93 USE random_walk_def_mod
94 USE fractal_dmg_init_mod
96 use brokmann_random_def_mod
97 use glob_therm_mod
98 use initemp_shell_mod
99 use element_mod , only : nixc
100 use law42c_ini_mod
101
102
103
104#include "implicit_f.inc"
105
106
107
108#include "mvsiz_p.inc"
109
110
111
112#include "vect01_c.inc"
113#include "param_c.inc"
114#include "com01_c.inc"
115#include "com04_c.inc"
116#include "scr03_c.inc"
117#include "scr17_c.inc"
118#include "scry_c.inc"
119#include "com_xfem1.inc"
120
121
122
123 INTEGER NVC,NEL,ITHK,IHBE,ISIGSH,IXFEM,NSIGSH,IUSER,IYLDINI
124 INTEGER IXC(NIXC,*),IPART(*),IPARG(*),IGEO(NPROPGI,*), NSHNOD(*),
125 . PTSHEL(*),IPM(NPROPMI,*), SH4TREE(*),ITAGN(*),ITAGE(*),NPF(*),
126 . ISUBSTACK,IGEO_STACK(*),PERTURB(NPERTURB),NG,IDRAPE
127 INTEGER *8 I8MI(6,*)
128 INTEGER ,INTENT(IN) :: IDDLEVEL
130 . pm(npropm,*), x(3,*), geo(npropg,*), xmas(*), in(*),
131 . dtelem(*), xrefc(4,3,*),thk(*), sigsh(nsigsh,*),
132 . stifn(*),stifr(*),partsav(20,*), v(*) ,msc(*) ,inc(*),
133 . skew(lskew,*), etnod(*), stc(*),bufmat(*),mcp(*),mcps(*),
134 . temp(*),part_area(*),tf(*),rnoise(*),
135 . sh4ang(*),geo_stack(*),strc(*),ele_area(*)
136 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
137 TYPE(ELBUF_STRUCT_), TARGET ,DIMENSION(NGROUP,*):: XFEM_STR
138
139 TYPE (STACK_PLY) :: STACK
140 TYPE (GROUP_PARAM_) :: GROUP_PARAM
141 TYPE (NLOCAL_STR_) :: NLOC_DMG
142 TYPE (DRAPE_) :: DRAPE(NUMELC_DRAPE + NUMELTG_DRAPE)
143 TYPE (DRAPEG_) :: DRAPEG
144 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :: MAT_PARAM
145 TYPE (FAIL_FRACTAL_) ,INTENT(IN) :: FAIL_FRACTAL
146 TYPE (FAIL_BROKMANN_) ,INTENT(IN) :: FAIL_BROKMANN
147 TYPE (glob_therm_) ,intent(in) :: glob_therm
148
149 TYPE (GROUP_) , DIMENSION(NGRSHEL) :: IGRSH4N
150 TYPE (GROUP_) , DIMENSION(NGRSH3N) :: IGRSH3N
151
152
153
154 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
155 INTEGER I,J,N,IP,NDEPAR,IGTYP,NUVAR,ID,NLAY,II,IREP,IPROP,NUPARAM,
156 . IL,IR,IS,IT,CPT_ELTENS,IUN,NPTR,NPTS,NPTT,IXEL,ILAW,IMAT,IFAIL,
157 . IGMAT,JJ(9),NPT_ALL,MPT,LAYNPT_MAX,LAY_MAX
158 INTEGER, DIMENSION(MVSIZ) :: IX1,IX2,IX3,IX4,IORTHLOC,MAT,PID,NGL
160 my_real,
DIMENSION(MVSIZ) :: px1g,px2g,py1g,py2g,
area,aldt,
161 . dt,vx,vy,vz,
162 . x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4,
163 . e1x,e2x,e3x,e1y,e2y,e3y,e1z,e2z,e3z,
164 . x2s,y2s,x3s,y3s,x4s,y4s,
165 . x2l,x3l,x4l,y2l,y3l,y4l
166 my_real,
DIMENSION(NEL) :: tempel
167 my_real,
DIMENSION(:) ,
POINTER :: uvar,dir1,dir2
168 my_real,
ALLOCATABLE,
DIMENSION(:) :: dir_a,dir_b
169 my_real,
DIMENSION(:),
ALLOCATABLE :: phi1,phi2,coor1,coor2,coor3,coor4
170 parameter(laynpt_max = 10)
171 parameter(lay_max = 100)
172 INTEGER, DIMENSION(:),ALLOCATABLE :: MATLY
173 my_real,
DIMENSION(:,:),
ALLOCATABLE :: posly
174
175 TYPE(G_BUFEL_) ,POINTER :: GBUF
176 TYPE(L_BUFEL_) ,POINTER :: LBUF
177
178 CALL my_alloc(matly,mvsiz*lay_max)
179 CALL my_alloc(posly,mvsiz,lay_max*laynpt_max)
180 gbuf => elbuf_str%GBUF
181
182 imat = ixc(1,1+nft)
183 iprop = ixc(nixc-1,1+nft)
184 igtyp = igeo(11,iprop)
186 igmat = igeo(98,ixc(6,1+nft))
187 irep = iparg(35)
188 ifail = iparg(43)
189
190 CALL fretitl2(titr,igeo(npropgi-ltitr+1,iprop),ltitr)
191 vx = zero
192 vy = zero
193 vz = zero
194 iorthloc = 0
195 bid = zero
196
197 iun = 1
198 ir = 1
199 is = 1
200 nlay = elbuf_str%NLAY
201 nxel = elbuf_str%NXEL
202 nptt = elbuf_str%NPTT
203 idrape = elbuf_str%IDRAPE
204 npt_all = 0
205 DO il=1,nlay
206 npt_all = npt_all + elbuf_str%BUFLY(il)%NPTT
207 ENDDO
209 IF(npt_all == 0 ) npt_all = nlay
210
211 IF((igtyp == 51 .OR. igtyp == 52) .AND. idrape > 0) THEN
212 ALLOCATE(phi1(mvsiz*npt_all))
213 ALLOCATE(phi2(nvsiz*npt_all))
214 ALLOCATE(dir_a(npt_all*nel*2))
215 ALLOCATE(dir_b(npt_all*nel*2))
216 phi1 = zero
217 phi2 = zero
218 dir_a = zero
219 dir_b = zero
220 ALLOCATE(coor1(npt_all*mvsiz))
221 ALLOCATE(coor2(npt_all*mvsiz))
222 ALLOCATE(coor3(npt_all*mvsiz))
223 ALLOCATE(coor4(npt_all*mvsiz))
224 coor1 = zero
225 coor2 = zero
226 coor3 = zero
227 coor4 = zero
228 ELSE
229 ALLOCATE(phi1(nlay*mvsiz))
230 ALLOCATE(phi2(nlay*mvsiz))
231 ALLOCATE(dir_a(nlay*nel*2))
232 ALLOCATE(dir_b(nlay*nel*2))
233 phi1 = zero
234 phi2 = zero
235 dir_a = zero
236 dir_b = zero
237 ALLOCATE(coor1(nlay*mvsiz))
238 ALLOCATE(coor2(nlay*mvsiz))
239 ALLOCATE(coor3(nlay*mvsiz))
240 ALLOCATE(coor4(nlay*mvsiz))
241 coor1 = zero
242 coor2 = zero
243 coor3 = zero
244 coor4 = zero
245 npt_all = nlay
246 ENDIF
247
248 IF (iparg(6) == 0.OR.npt==0) mpt=0
249
250 DO j=1,9
251 jj(j) = nel*(j-1)
252 ENDDO
253
254 DO i=lft,llt
255 n = i+nft
256 mat(i) = ixc(1,n)
257 pid(i) = ixc(6,n)
258 ENDDO
259
260 IF (ixfem > 0) THEN
261 DO i=lft,llt
262 n = i+nft
263 itagn(ixc(2,n)) =1
264 itagn(ixc(3,n)) =1
265 itagn(ixc(4,n)) =1
266 itagn(ixc(5,n)) =1
267 itage(n) = 1
268 ENDDO
269 ENDIF
270
271 CALL ccoori(x,xrefc(1,1,nft+1),ixc(1,nft+1),
272 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
273 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
274 . ix1 ,ix2 ,ix3 ,ix4 ,ngl )
275
276 CALL cveok3(nvc,4,ix1,ix2,ix3,ix4)
277
279 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
280 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
281 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
282
283
284
285
286 IF ((imasadd > 0).OR.(nloc_dmg%IMOD > 0)) THEN
287 DO i=lft,llt
288 ip = ipart(i+nft)
289
290 ele_area(i+nft) =
area(i)
291 IF (gbuf%G_AREA > 0) gbuf%AREA(i) =
area(i)
292 ENDDO
293 ENDIF
294
295
296
297 IF (jthe == 0 .and. glob_therm%NINTEMP > 0) THEN
298 CALL initemp_shell(elbuf_str,temp,nel,numnod,numelc,4,nixc,ixc)
299 END IF
300
301 CALL cinmas(x ,xrefc(1,1,nft+1),ixc ,geo ,pm,
302 . xmas ,in ,thk ,ihbe ,partsav,
303 . v ,ipart(nft+1) ,msc(nft+1),inc(nft+1) ,
area ,
304 . i8mi ,igeo ,etnod ,imat ,iprop ,
305 . nshnod ,stc(nft+1) ,sh4tree ,mcp ,mcps(nft+1),
306 . temp ,bid ,bid ,bid ,bid,
307 . bid ,bid ,isubstack ,nlay ,elbuf_str,
308 . stack ,gbuf%THK_I ,rnoise ,drape ,glob_therm%NINTEMP,
309 . perturb,ix1 ,ix2 ,ix3 ,ix4 ,
310 . idrape ,drapeg%INDX)
311
312 CALL cderii(px1g,px2g,py1g,py2g,
313 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
314 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
315 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
316 . x2l ,x3l ,x4l ,y2l ,y3l ,y4l )
317 CALL cdleni(pm ,geo ,stifn ,stifr ,ixc(1,nft+1),
318 . px1g ,px2g ,py1g ,py2g ,thk ,
319 . igeo ,dt ,sh4tree ,aldt ,bufmat ,
320 . ipm ,nlay ,stack%PM,isubstack,strc(nft+1),
321 .
area ,imat ,iprop ,
322 . x2l ,x3l ,x4l ,y2l ,y3l ,y4l ,
323 . stack%IGEO,group_param)
324 CALL c1buf3(geo,gbuf%THK,gbuf%OFF,thk,ksh4tree,sh4tree)
325
326 IF (ixfem > 0) THEN
327 DO ixel=1,nxel
328 DO i=lft,llt
329 xfem_str(ng,ixel)%GBUF%THK(i) = thk(i)
330 xfem_str(ng,ixel)%GBUF%OFF(i) = -one
331 END DO
332 ENDDO
333 ENDIF
334
335
337 . lft ,llt ,nft ,nlay ,numelc ,
338 . nsigsh ,nixc ,ixc(1,nft+1),igeo ,geo ,
339 . skew ,sigsh ,ptshel ,phi1 ,phi2 ,
340 . vx ,vy ,vz ,coor1 ,coor2 ,
341 . coor3 ,coor4 ,iorthloc ,isubstack ,stack ,
342 . irep ,elbuf_str ,drape ,sh4ang(nft+1),x ,
343 . geo_stack ,e3x ,e3y ,e3z ,
344 . gbuf%BETAORTH,x1 ,x2 ,y1 ,y2 ,
345 . z1 ,z2 ,nel ,gbuf%G_ADD_NODE,gbuf%ADD_NODE,
346 . npt_all ,idrape ,drapeg%INDX)
347
348
349 IF(igtyp == 51 .OR. igtyp == 52 .AND. igmat > 0) THEN
350
352 . igeo ,geo ,vx ,vy ,vz ,
353 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
354 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
355 . stack ,geo_stack ,igeo_stack ,ir ,is ,
356 . nel ,imat ,iprop ,
357 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
358 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
359 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
360 . npt_all ,idrape)
361
362 ELSEIF (mtn == 27) THEN
364 . geo ,igeo ,pm ,ipm ,ixc(1,1+nft) ,nixc,
365 . nlay,ir ,is ,imat )
366 ELSEIF (mtn == 35) THEN
367 nptr = elbuf_str%NPTR
368 npts = elbuf_str%NPTS
369 nptt = elbuf_str%NPTT
371 . nptr,npts,nptt,igtyp)
372 ELSEIF (mtn==15 .or. mtn==19 .or. mtn==25 .or. mtn>=28) THEN
373 IF (mtn == 19 .AND. igtyp /= 9) THEN
375 . anmode=aninfo,
376 . msgtype=msgerror,
377 . i1=igeo(1,ixc(nixc-1,nft+1)))
378 ENDIF
379
381 . igeo ,geo ,vx ,vy ,vz ,
382 . phi1 ,phi2 ,coor1 ,coor2 ,coor3 ,
383 . coor4 ,iorthloc ,nlay ,irep ,isubstack,
384 . stack ,geo_stack ,igeo_stack ,ir ,is ,
385 . nel ,imat ,iprop ,
386 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
387 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
388 . e1x, e2x, e3x, e1y, e2y, e3y ,e1z, e2z, e3z ,
389 . npt_all ,idrape)
390 ENDIF
391
392 IF ((mtn == 58 .or. mtn == 158) .AND.
393 . igtyp /= 16 .AND. igtyp /= 51 .AND. igtyp /THEN
395 . msgtype=msgerror,
396 . anmode=aninfo_blind_1,
398 . c1=titr,
399 . i2=mtn,
400 . i3=igtyp)
401 ELSEIF (mtn == 58 .or. mtn == 158 .OR. igtyp == 51 .OR. igtyp == 52) THEN
402
403 IF (idrape == 0) THEN
404 DO il = 1,nlay
405 nptt = elbuf_str%BUFLY(il)%NPTT
406 imat = elbuf_str%BUFLY(il)%IMAT
407 ilaw = elbuf_str%BUFLY(il)%ILAW
408 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
409 dir1 => elbuf_str%BUFLY(il)%DIRA
410 dir2 => elbuf_str%BUFLY(il)%DIRB
411 nuparam = mat_param(imat)%NUPARAM
412
413 IF (ilaw == 58) THEN
414 DO it=1,nptt
415 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
416 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
418 . irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
419 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
420 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
421 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
422 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
423 ENDDO
424 ELSE IF (ilaw == 158) THEN
425 DO it=1,nptt
426 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
427 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
429 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
430 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
431 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
432 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
433 ENDDO
434 ENDIF
435 ENDDO
436 ELSE
437 DO il = 1,nlay
438 nptt = elbuf_str%BUFLY(il)%NPTT
439 imat = elbuf_str%BUFLY(il)%IMAT
440 ilaw = elbuf_str%BUFLY(il)%ILAW
441 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
442 nuparam = mat_param(imat)%NUPARAM
443
444 IF (ilaw == 58) THEN
445 DO it=1,nptt
446 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
447 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
448 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
449 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
451 . irep ,dir1 ,dir2 ,mat_param(imat)%UPARAM,
452 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
453 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
454 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
455 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
456 ENDDO
457 ELSE IF (ilaw == 158) THEN
458 DO it=1,nptt
459 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
460 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
461 dir1 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRA
462 dir2 => elbuf_str%BUFLY(il)%LBUF_DIR(it)%DIRB
464 . uvar ,aldt ,nel ,nuvar ,lbuf%ANG ,
465 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
466 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
467 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z )
468 ENDDO
469 ENDIF
470 ENDDO
471 ENDIF
472 END IF
473 IF (mtn == 42 .OR. mtn == 69 .OR. igtyp == 51 .OR. igtyp == 52) THEN
474 DO il = 1,nlay
475 nptt = elbuf_str%BUFLY(il)%NPTT
476 ilaw = elbuf_str%BUFLY(il)%ILAW
477 nuvar = elbuf_str%BUFLY(il)%NVAR_MAT
478
479 IF (ilaw == 42 .OR. mtn == 69) THEN
480 DO it=1,nptt
481 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
482 uvar => elbuf_str%BUFLY(il)%MAT(ir,is,it)%VAR
483 CALL law42c_ini(nuvar,uvar,llt)
484 ENDDO
485 ENDIF
486 ENDDO
487 ENDIF
488
489
490
491 IF (isigsh/=0 .OR. ithkshel == 2) THEN
492
493 IF (mpt > 0) THEN
495 . elbuf_str ,lft ,llt ,geo ,igeo ,
496 . mat ,pid ,matly ,posly ,igtyp ,
497 . nlay ,mpt ,isubstack ,stack ,drape ,
498 . nft ,gbuf%THK ,nel ,idrape ,
scdrape ,
499 . drapeg%INDX)
500 CALL corth3(elbuf_str,dir_a ,dir_b ,lft ,llt ,
501 . nlay ,irep ,nel ,
502 . x1 ,x2 ,x3 ,x4 ,y1 ,y2 ,
503 . y3 ,y4 ,z1 ,z2 ,z3 ,z4 ,
504 . e1x ,e2x ,e3x ,e1y ,e2y ,e3y ,e1z ,e2z ,e3z ,
505 . idrape, igtyp )
506 END IF
507
509 1 lft ,llt ,nft ,mpt ,istrain ,
510 2 gbuf%THK,gbuf%EINT,gbuf%STRA,gbuf%HOURG,gbuf%PLA ,
511 3 gbuf%FOR,gbuf%MOM ,sigsh ,nlay ,gbuf%G_HOURG,
512 4 numelc ,ixc ,nixc ,nsigsh ,numshel ,
513 5 ptshel ,igeo ,thk ,nel ,e1x ,
514 6 e2x ,e3x ,e1y ,e2y ,e3y ,
515 7 e1z ,e2z ,e3z ,isigsh ,dir_a ,
516 8 dir_b ,posly ,igtyp )
517 IF (mpt == 0) THEN
518 DO i=lft,llt
519 gbuf%FOR_G(i+jj(1:5))=gbuf%FOR(i+jj(1:5))
520 END DO
521 END IF
522 ELSEIF ( ithkshel == 1 ) THEN
523 CALL thickini(lft ,llt ,nft ,ptshel,numelc,
524 2 gbuf%THK,thk ,ixc ,nixc ,nsigsh,
525 3 sigsh )
526 ENDIF
527
528
529
530 IF (istrain == 1 .AND. nxref > 0) THEN
531 uvar => elbuf_str%BUFLY(1)%MAT(1,1,1)%VAR
532 imat = elbuf_str%BUFLY(1)%IMAT
533 CALL cepsini(elbuf_str ,mat_param(imat),
534 . lft ,llt ,ismstr ,mtn ,ithk ,
535 . pm ,geo ,ixc(1,nft+1),x ,xrefc(1,1,nft+1),
536 . gbuf%FOR ,gbuf%THK ,gbuf%EINT ,gbuf%STRA ,nlay ,
537 . px1g ,px2g ,py1g ,py2g ,x2s ,
538 . y2s ,x3s ,y3s ,x4s ,y4s ,
539 . uvar ,ipm ,igeo ,imat ,
540 . skew ,nel ,dir_a ,dir_b ,gbuf%SIGI,
541 . npf ,tf ,irep )
542
543 CALL cepschk(lft, llt,nft, pm, geo,ixc(1,nft+1),gbuf%STRA,thk,
544 . nel,cpt_eltens)
545 IF (ismstr == 1 .AND. mtn==19) iparg(9)=11
546
547 ELSEIF (ismstr == 11 .OR.(ismstr==1 .AND. mtn==19)) THEN
548
550 . x2s ,y2s ,x3s ,y3s ,x4s ,y4s )
551 ENDIF
552
553 IF (ismstr == 10 ) THEN
554 DO i=lft,llt
555 ii = nft + i
556 elbuf_str%GBUF%SMSTR(jj(1)+i) = x(1,ixc(3,ii
557 elbuf_str%GBUF%SMSTR(jj(2)+i) = x(2,ixc(3,ii))-x(2,ixc(2,ii))
558 elbuf_str%GBUF%SMSTR(jj(3)+i) = x(3,ixc(3,ii))-x(3,ixc(2,ii))
559 elbuf_str%GBUF%SMSTR(jj(4)+i) = x(1,ixc(4,ii))-x(1,ixc(2,ii))
560 elbuf_str%GBUF%SMSTR(jj(5)+i) = x(2,ixc(4,ii))-x(2,ixc(2,ii))
561 elbuf_str%GBUF%SMSTR(jj(6)+i) =
562 elbuf_str%GBUF%SMSTR(jj(7)+i) = x(1,ixc(5,ii))-x(1,ixc(2,ii))
563 elbuf_str%GBUF%SMSTR(jj(8)+i) = x(2,ixc(5,ii))-x(2,ixc(2,ii))
564 elbuf_str%GBUF%SMSTR(jj(9)+i) = x(3,ixc(5,ii))-x(3,ixc(2,ii))
565 ENDDO
566 ELSEIF (ismstr == 11 .OR.(ismstr==1 .AND. mtn==19)) THEN
567 DO i=lft,llt
568 elbuf_str%GBUF%SMSTR(jj(1)+i) = x2s(i)
569 elbuf_str%GBUF%SMSTR(jj(2)+i) = y2s(i)
570 elbuf_str%GBUF%SMSTR(jj(3)+i) = x3s(i)
571 elbuf_str%GBUF%SMSTR(jj(4)+i) = y3s(i)
572 elbuf_str%GBUF%SMSTR(jj(5)+i) = x4s(i)
573 elbuf_str%GBUF%SMSTR(jj(6)+i) = y4s(i)
574 ENDDO
575 ENDIF
576
577 IF (iuser == 1 .AND. mtn > 28) THEN
578
580 1 lft ,llt ,nft ,nel ,npt ,
581 2 istrain,sigsh ,numelc ,ixc ,nixc ,
582 3 nsigsh ,numshel,ptshel ,iun ,iun ,
583 4 nlay )
584 ENDIF
585
586 IF (iyldini == 1 .AND. (mtn== 36.OR. mtn==87))THEN
588 1 lft ,llt ,nft ,nel ,npt ,
589 2 istrain,sigsh ,numelc ,ixc ,nixc ,
590 3 nsigsh ,numshel,ptshel ,iun ,iun ,
591 4 nlay )
592 ENDIF
593
594
595
596
597
598 IF (fail_fractal%NFAIL > 0) THEN
599 CALL fractal_dmg_init(elbuf_str,mat_param,fail_fractal,
600 . nummat ,numelc ,nel ,nft ,ngl ,ity )
601 ENDIF
602
603 IF (ifail > 0 .and. iddlevel == 1) THEN
605 . nel ,nft ,ity ,igrsh4n ,igrsh3n ,
606 . aldt ,thk ,ngl )
607 ENDIF
608
610 . nptt ,nlay ,sigsh ,nsigsh ,ptshel ,
611 . rnoise ,perturb ,aldt ,thk )
612
613
614
615
616 IF (igtyp /= 0 .AND. igtyp /= 1 .AND.
617 . igtyp /= 9 .AND. igtyp /= 10 .AND.
618 . igtyp /= 11 .AND. igtyp /= 16 .AND.
619 . igtyp /= 17 .AND. igtyp /= 51 .AND.
620 . igtyp /= 52) THEN
622 . anmode=aninfo,
623 . msgtype=msgerror,
625 . c1=titr,
626 . i2=iprop)
627 ENDIF
628 ndepar=numels+nft
629 DO i=lft,llt
630 dtelem(ndepar+i)=dt(i)
631 ENDDO
632
633 IF (ixfem > 0) THEN
634 CALL cbufxfe(elbuf_str,xfem_str,isubstack,stack ,
635 . igeo ,geo ,lft ,llt ,mat,
636 . pid ,npt ,nptt ,nlay,ir ,
637 . is ,ixfem,mtn ,ng)
638 ENDIF
639
640
641 DO i=lft,llt
642 IF (gbuf%G_VOL > 0) gbuf%VOL(i) =
area(i)*gbuf%THK(i)
643 ENDDO
644 IF (ixfem > 0) THEN
645 DO ixel=1,nxel
646 DO i=lft,llt
647 IF (xfem_str(ng,ixel)%GBUF%G_VOL > 0)
648 . xfem_str(ng,ixel)%GBUF%VOL(i) =
area(i)*gbuf%THK(i)
649 END DO
650 ENDDO
651 ENDIF
652
653 IF (ALLOCATED(dir_b)) DEALLOCATE(dir_b)
654 IF (ALLOCATED(dir_a)) DEALLOCATE(dir_a)
655 DEALLOCATE(phi1,phi2,coor1,coor2,coor3,coor4)
656 DEALLOCATE(matly)
657 DEALLOCATE(posly)
658
659 RETURN
subroutine c1buf3(geo, thk, off, thke, kshtree, shtree)
subroutine cbufxfe(elbuf_str, xfem_str, isubstack, stack, igeo, geo, lft, llt, mat, pid, npt, nptt, nlay, ir, is, ixfem, mtn, ng)
subroutine ccoori(x, xrefc, ixc, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, ix1, ix2, ix3, ix4, ngl)
subroutine cderii(px1, px2, py1, py2, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, x2l, x3l, x4l, y2l, y3l, y4l)
subroutine cdleni(pm, geo, stifn, stifr, ixc, px1, px2, py1, py2, thk, igeo, dt, sh4tree, aldt, uparam, ipm, nlay, pm_stack, isubstack, strc, area, imat, iprop, x2l, x3l, x4l, y2l, y3l, y4l, igeo_stack, group_param)
subroutine cepsini(elbuf_str, mat_param, jft, jlt, ismstr, ilaw, ithk, pm, geo, ixc, x, xrefc, for, thk, eint, gstr, nlay, px1g, px2g, py1g, py2g, x2s, y2s, x3s, y3s, x4s, y4s, uvar, ipm, igeo, imat, skew, nel, dir_a, dir_b, sigi, npf, tf, irep)
subroutine cepschk(jft, jlt, nft, pm, geo, ixc, gstr, thk, nel, cpt_eltens)
subroutine ceveci(jft, jlt, area, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, 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 csms11_ini(jft, jlt, ixc, x, x2s, y2s, x3s, y3s, x4s, y4s)
subroutine cinmas(x, xrefc, ix, geo, pm, ms, tiner, thke, ihbe, partsav, v, ipart, msc, inc, area, i8mi, igeo, etnod, imid, iprop, nshnod, stc, sh4tree, mcp, mcps, temp, ms_layer, zi_layer, ms_layerc, zi_layerc, msz2c, zply, isubstack, nlay, elbuf_str, stack, thki, rnoise, drape, nintemp, perturb, ix1, ix2, ix3, ix4, idrape, indx)
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 cveok3(nvc, nod, ix1, ix2, ix3, ix4)
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 ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine thickini(jft, jlt, nft, ptsh, numel, thk, thke, ix, nix, nsigsh, sigsh)