112
113
114
115 USE timer_mod
117 USE mat_elem_mod
123 USE sensor_mod
124 USE output_mod
125 USE elbufdef_mod
127 use glob_therm_mod
128 use dttherm_mod
129
130
131
132#include "implicit_f.inc"
133
134
135
136#include "mvsiz_p.inc"
137
138
139
140#include "com01_c.inc"
141#include "com04_c.inc"
142#include "scr02_c.inc"
143#include "scr17_c.inc"
144#include "scr18_c.inc"
145#include "param_c.inc"
146#include "com_xfem1.inc"
147#include "parit_c.inc"
148#include "timeri_c.inc"
149
150
151
152 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
153 INTEGER, INTENT(IN) :: USERL_AVAIL
154 INTEGER,INTENT(IN) :: MAXFUNC
155 INTEGER, INTENT(IN) :: SBUFMAT
156 INTEGER, INTENT(IN) ::
157 INTEGER, INTENT(IN) :: SNPC
158 INTEGER, INTENT(IN) :: JTUR
159 INTEGER, INTENT(IN) :: IGRE
160 INTEGER JFT,JLT,NVC,MTN,NELTST,ITYPTST,OFFSET,
161 . NEL,ISTRAIN,IHBE,ITASK,JTHE,JSMS,
162 . ITHK,IOFC,IPLA,NFT,ISMSTR,NPT,KFTS,IFAILURE,,
163 . ISUBSTACK,IPRI
164 INTEGER NPF(*),IXC(NIXC,*),IADC(4,*),INDXOF(MVSIZ),IPARTC(*),
165 . IGEO(NPROPGI,*),IPM(NPROPMI,*),XEDGE4N(4,*),ITAB(*),
166 . GRTH(*),IGRTH(*),IPARG(*),IXFEM,KNOD2ELC(*),
167 . ELCUTC(2,*),INOD_CRK(*),IEL_CRK(*),IBORDNODE(*),
168 . NODENR(*),IADC_CRK(4,*),NODEDGE(2,*),CRKNODIAD(*),INDX_DRAPE(SCDRAPE)
170 . f11(mvsiz),f12(mvsiz),f13(mvsiz),f14(mvsiz),
171 . f21(mvsiz),f22(mvsiz),f23(mvsiz),f24(mvsiz),
172 . f31(mvsiz),f32(mvsiz),f33(mvsiz),f34(mvsiz),
173 . m11(mvsiz),m12(mvsiz),m13(mvsiz),m14(mvsiz),
174 . m21(mvsiz),m22(mvsiz),m23(mvsiz),m24(mvsiz),
175 . m31(mvsiz),m32(mvsiz),m33(mvsiz),m34(mvsiz),
176 . pm(npropm,*),x(*),f(*),m(*),v(*),vr(*),
177 . geo(npropg,*),tf(*), bufmat(*),partsav(*),stifn(*),stifr(*),
178 . fsky(*),d(*),dr(*),tani(6,*),eani(*), thke(*),dt2t,
179 . fzero(3,4,*),temp(*), fthe(*),fthesky(*),gresav(*),
180 . msc(*), dmelc(*),condn(*),condnsky(*)
181
182 TYPE (TTABLE) TABLE(*)
183 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
184 TYPE (ELBUF_STRUCT_), DIMENSION(NXEL), TARGET :: XFEM_STR
185 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
186 TYPE (FAILWAVE_STR_) :: FAILWAVE
187 TYPE (NLOCAL_STR_), TARGET :: NLOC_DMG
188 TYPE (DRAPE_) , DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
189 TYPE (OUTPUT_) ,INTENT(INOUT) ::
190 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
191 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
192 TYPE (GROUP_PARAM_),INTENT(IN) :: GROUP_PARAM
193 TYPE (DT_), INTENT(IN) :: DT
194 type (glob_therm_) ,intent(inout) :: glob_therm
195
196
197
198 INTEGER MAT(MVSIZ),PID(MVSIZ),NDT(MVSIZ),NGL(MVSIZ),FWAVE_EL(NEL),
199 . I,J,IGTYP,ICSEN,IFLAG,IUN,NPG,ILAY,NLAY,IXEL,IXLAY,NXLAY,N1,N2,N3,N4,
200 . IBID,NG,IR,IS,L_DIRA,L_DIRB,J1,J2,IGMAT,NPTTOT,IREP,IFAILWAVE,IDRAPE,
201 . NPTT,IT,ACTIFXFEM,SEDRAPE,NUMEL_DRAPE
203 . sti(mvsiz),stir(mvsiz),sigy(mvsiz),rho(mvsiz),
204 . x2(mvsiz),x3(mvsiz),x4(mvsiz),y2(mvsiz),y3(mvsiz),
205 . y4(mvsiz),z2(mvsiz),ssp(mvsiz),viscmx(mvsiz),
206 . vx1(mvsiz), vx2(mvsiz), vx3(mvsiz), vx4(mvsiz),
207 . vy1(mvsiz), vy2(mvsiz), vy3(mvsiz), vy4(mvsiz),
208 . vz1(mvsiz), vz2(mvsiz), vz3(mvsiz), vz4(mvsiz),
209 . vx13(mvsiz),vx24(mvsiz),vy13(mvsiz),vy24(mvsiz),
210 . vz13(mvsiz),vz24(mvsiz),thk02(mvsiz),
211 . x1g(mvsiz), x2g(mvsiz), x3g(mvsiz), x4g(mvsiz),
212 . y1g(mvsiz), y2g(mvsiz), y3g(mvsiz), y4g(mvsiz),
213 . z1g(mvsiz), z2g(mvsiz), z3g(mvsiz), z4g(mvsiz),
214 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), e2x(mvsiz),
215 . e2y(mvsiz), e2z(mvsiz), e3x(mvsiz), e3y(mvsiz),e3z(mvsiz)
217 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), exz(mvsiz),eyz(mvsiz),
218 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz), px1(mvsiz),
219 . px2(mvsiz), py1(mvsiz), py2(mvsiz), thk0(mvsiz),
220 . off(mvsiz), nu(mvsiz) , shf(mvsiz),
area(mvsiz),
221 . g(mvsiz) , ym(mvsiz) , a11(mvsiz), a12(mvsiz),
222 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
223 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
224 . dt1c(mvsiz), dt2c(mvsiz),
225 . aldt(mvsiz),alpe(mvsiz),vhx(mvsiz),vhy(mvsiz)
227 . h1(mvsiz), h2(mvsiz), h3(mvsiz), vol0(mvsiz),vol00(mvsiz),
228 . h11(mvsiz), h12(mvsiz), h13(mvsiz), h14(mvsiz),
229 . h21(mvsiz), h22(mvsiz), h23(mvsiz), h24(mvsiz),
230 . h31(mvsiz), h32(mvsiz), h33(mvsiz), h34(mvsiz),
231 . b11(mvsiz), b12(mvsiz), b13(mvsiz), b14(mvsiz),
232 . b21(mvsiz), b22(mvsiz), b23(mvsiz), b24(mvsiz),
233 . rx1(mvsiz), rx2(mvsiz), rx3(mvsiz), rx4(mvsiz),
234 . ry1(mvsiz), ry2(mvsiz), ry3(mvsiz), ry4(mvsiz),
235 . zcfac(mvsiz,2),gs(mvsiz),
236 . srh1(mvsiz),srh2(mvsiz),srh3(mvsiz),a_i(mvsiz),
237 . die(mvsiz),tempel(mvsiz),them(mvsiz,4),bid,
238 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
239 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
240 . dsub(mvsiz,3,4),drsub(mvsiz,3,4),tsub(mvsiz),
241 . dtcsub(mvsiz),areas(mvsiz),conde(mvsiz),a11r(mvsiz)
242
244 . areat(mvsiz),px1t(mvsiz),px2t(mvsiz),py1t(mvsiz),py2t(mvsiz),
245 . f_def(mvsiz,8), u13x(mvsiz),u24x(mvsiz),u13y(mvsiz),u24y(mvsiz),
246 . wxy(mvsiz)
247
248 INTEGER, DIMENSION(NEL) :: OFFLY
249 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
250 my_real,
ALLOCATABLE,
DIMENSION(:) :: dira,dirb,dir1_crk,dir2_crk
251 my_real,
DIMENSION(:) ,
POINTER :: dir_a, dir_b,crkdir,crklen,dadv
252 TARGET :: dira,dirb
253 my_real :: dt1,dtinv,asrate,eps_m2,eps_k2
254 my_real,
dimension(nel) :: epsd_pg
255 my_real,
dimension(mvsiz) :: fheat
256
257
258 INTEGER :: NDDL, K, INOD(4),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
259 . IPOS(4), L_NLOC, INLOC
260 my_real,
DIMENSION(:,:),
ALLOCATABLE :: var_reg
261 my_real,
DIMENSION(:),
POINTER :: dnl
262
263 TYPE(BUF_LAY_) ,POINTER :: BUFLY
264 TYPE(G_BUFEL_) ,POINTER :: GBUF
265 TYPE(L_BUFEL_) ,POINTER :: LBUF
266 TYPE(L_BUFEL_DIR_) ,POINTER :: LBUF_DIR
267 TYPE (STACK_PLY) :: STACK
268 INTEGER SDIR_A
269 INTEGER SDIR_B
270
271 gbuf => elbuf_str%GBUF
272 idrape = elbuf_str%IDRAPE
273
274 iun = 1
275 ibid = 0
276 bid = zero
277 nlay = elbuf_str%NLAY
280 tempel(:) = zero
281 fheat(: ) = zero
282
283
284
285 npg = 1
286 ir = 1
287 is = 1
288 ng = 1
289 ixel = 0
290 ixlay = 0
291 irep = iparg(35)
292 inloc = iparg(78)
293 actifxfem = iparg(70)
294
295 npttot = 0
296 DO ilay=1,nlay
297 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
298 ENDDO
299
300
301 nddl = npttot
302 ALLOCATE(var_reg(nel,nddl))
303
304 IF (npt == 0) npttot = npt
305
306
307
308 ifailwave = iparg(79)
309 IF (ifailwave > 0) THEN
310 fwave_el(:) = zero
311 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
312 DO i=2,nlay
313 DO j=1,nel
314 offly(j) =
max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
315 ENDDO
316 ENDDO
317 dadv => gbuf%DMG
319 . nel ,ixc ,itab ,ngl ,offly )
320 ENDIF
321
322 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
323 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
324 igtyp= igeo(11,ixc(6,1))
325 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52) ) THEN
326 ALLOCATE(dira(npttot*nel*l_dira))
327 ALLOCATE(dirb(npttot*nel*l_dirb))
328 IF (l_dira == 0) THEN
329 CONTINUE
330 ELSEIF (irep == 0) THEN
331 npttot = 0
332 DO ilay=1,nlay
333 nptt = elbuf_str%BUFLY(ilay)%NPTT
334 DO it=1,nptt
335 j = npttot + it
336 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
337 j1 = 1+(j-1)*l_dira*nel
338 j2 = j*l_dira*nel
339 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
340 ENDDO
341 npttot = npttot + nptt
342 ENDDO
343 ENDIF
344 sdir_a=npttot*nel*l_dira
345 sdir_b=npttot*nel*l_dirb
346 dir_a => dira(1:npttot*nel*l_dira)
347 dir_b => dirb(1:npttot*nel*l_dirb)
348 ELSE
349 sdir_a=nlay*nel*l_dira
350 sdir_b=nlay*nel*l_dirb
351 ALLOCATE(dira(nlay*nel*l_dira))
352 ALLOCATE(dirb(nlay*nel*l_dirb))
353 dira=zero
354 dirb=zero
355 IF (l_dira == 0) THEN
356 CONTINUE
357 ELSEIF (irep == 0) THEN
358 DO j=1,nlay
359 j1 = 1+(j-1)*l_dira*nel
360 j2 = j*l_dira*nel
361 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
362 ENDDO
363 ENDIF
364 sdir_a=nlay*nel*l_dira
365 sdir_b=nlay*nel*l_dirb
366 dir_a => dira(1:nlay*nel*l_dira)
367 dir_b => dirb(1:nlay*nel*l_dirb)
368 ENDIF
369
370 nxlay = nlay
371
372 IF (ixfem > 0) THEN
373 ALLOCATE(elcrkini(nxlaymax*nel))
374 ALLOCATE(dir1_crk(nxlaymax*nel))
375 ALLOCATE(dir2_crk(nxlaymax*nel))
376 dir1_crk = zero
377 dir2_crk = zero
378 elcrkini = 0
379 IF (nlevset > 0) THEN
380 CALL precrklay(jft ,jlt ,nft ,nxlay ,elcrkini,
381 . iel_crk,inod_crk,nodenr ,crkedge,xedge4n )
382 ENDIF
383 ELSE
384 ALLOCATE(elcrkini(0))
385 ALLOCATE(dir1_crk(0))
386 ALLOCATE(dir2_crk(0))
387 ENDIF
388
389
390
391
392 CALL ccoor3(jft ,jlt ,x ,ixc ,geo ,gbuf%OFF,
393 2 off ,sigy ,pid ,v ,vr ,vl1,vl2,vl3,vl4,
394 3 vrl1,vrl2,vrl3,vrl4,mat,dt1c,thke ,thk0 ,ngl,
395 4 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
396 5 y3g ,y4g ,z1g ,z2g ,z3g ,z4g )
397
398 icsen= igeo(3,pid(1))
399 igtyp= igeo(11,pid(1))
400
401 igmat= igeo(98,pid(1))
402
403 IF (ishfram == 1) THEN
404
405 CALL cevec3(elbuf_str ,dir_a,dir_b,
406 1 jft ,jlt ,x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,y3g ,y4g ,
407 2 z1g ,z2g ,z3g ,z4g ,e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
408 3 e3x ,e3y ,e3z ,irep,nlay,nel)
409 ELSE
410
411 CALL cnvec3(elbuf_str ,dir_a ,dir_b ,
412 1 jft ,jlt ,irep ,igtyp ,nlay ,
413 2 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
414 3 y3g ,y4g ,z1g ,z2g ,z3g ,z4g ,
415 4 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
416 5 e3x ,e3y ,e3z ,nel )
417 ENDIF
418
419 IF (ismstr /= 3)THEN
421 1 jft, jlt, gbuf%SMSTR,gbuf%OFF,
422 2 sti, stir,
area, px1,
423 3 px2, py1, py2, x2,
424 4 x3, x4, y2, y3,
425 5 y4, z2, x1g, x2g,
426 6 x3g, x4g, y1g, y2g,
427 7 y3g,
428 8 z3g, z4g, e1x, e1y,
429 9 e1z, e2x, e2y, e2z,
430 a e3x, e3y, e3z, vhx,
431 b vhy, a_i, ux1, ux2,
432 c ux3, ux4, uy1, uy2,
433 d uy3, uy4, nel, ismstr)
434 ELSE
435 CALL cpxpy3(jft ,jlt ,pm ,sti ,stir ,
436 2 gbuf%SMSTR,px1 ,px2 ,py1 ,py2 ,
437 3 ixc ,
area ,x2 ,x3 ,x4 ,
438 4 y2 ,y3 ,y4 ,z2 ,thk0 ,
439 5 mat ,nel )
440 ENDIF
441
442 CALL ccoef3(jft ,jlt ,pm ,mat ,geo ,
443 2 pid ,off ,
area ,sti ,stir ,
444 3 shf ,thk0 ,thk02 ,nu ,
445 4 g ,ym ,a11 ,a12 ,gbuf%THK,
446 5 ssp ,rho ,h1 ,h2 ,h3 ,
447 6 vol0 ,vol00 ,alpe ,gs ,mtn ,
448 7 ithk ,ismstr ,npttot ,kfts ,
449 8 srh1 ,srh2 ,srh3 ,igeo ,
450 9 a11r ,isubstack ,stack%PM )
451
452 IF ((ismstr /= 3 .AND. idt1sh == 0) .OR.
453 . idtmin(3) /= 0 .OR. igtyp == 16 .OR. glob_therm%IDT_THERM == 1) THEN
454
456 2 x2 ,x3 ,x4 ,y2 ,y3 ,
457 3 y4 ,aldt ,mat ,geo ,pid ,
458 4 ihbe )
459 ENDIF
460 CALL cdefo3(jft ,jlt,vl1,vl2,vl3,vl4,dt1c,px1 ,px2 ,py1,py2,
area,
461 2 exx ,eyy,exy,exz ,eyz ,x2 ,x3 ,x4 ,y2 ,y3,
462 3 y4 ,z2 ,vx1,vx2 ,vx3 ,vx4 ,vy1,vy2,vy3 ,vy4 ,
463 4 vz1 ,vz2,vz3,vz4 ,e1x ,e1y ,e1z,e2x,e2y ,e2z ,
464 5 e3x ,e3y,e3z,ihbe)
465 CALL ccurv3(jft ,jlt ,vrl1,vrl2,vrl3,vrl4 ,px1
466 1 ,px2 ,py1 ,py2 ,
area,
467 2 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
468 3 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,
469 4 e3z ,kxx ,kyy ,kxy ,exz ,eyz ,
470 5 wxy ,ismstr)
471 IF (ismstr == 10 ) THEN
472 CALL ccoort3(jft ,jlt ,x ,ixc ,gbuf%OFF ,
473 1 dr ,px1t ,px2t ,py1t ,py2t ,
474 2 e1x ,e1y ,e1z ,e2x ,e2y ,
475 3 e2z ,e3x ,e3y ,e3z ,areat ,
476 4 u13x ,u24x ,u13y ,u24y ,gbuf%SMSTR ,
477 5 nel )
478
479 CALL cdefot3(jft ,jlt ,px1t ,px2t ,py1t ,
480 2 py2t ,u13x ,u24x ,u13y ,u24y ,
481 3 f_def )
482 END IF
484 2 exx ,eyy ,exy ,exz ,eyz ,
485 3 kxx ,kyy ,kxy ,dt1c ,tani ,
486 4 gbuf%FOR,gbuf%MOM ,ismstr ,mtn ,
487 6 ihbe ,nft ,istrain ,ux1 ,ux2
488 7 ux3 ,ux4 ,uy1 ,uy2 ,uy3 ,
489 8 uy4 ,px1 ,px2 ,py1 ,py2 ,
490 9 wxy ,gbuf%STRW ,f_def ,nel )
491
492
493 IF (jthe /= 0) THEN
494 CALL tempcg(numnod,nel ,ixc ,temp ,tempel )
495 ENDIF
496
497
498
499 IF (inloc > 0) THEN
500 l_nloc = nloc_dmg%L_NLOC
501 dnl => nloc_dmg%DNL(1:l_nloc)
502 DO i=jft,jlt
503 nc1(i) = ixc(2,i)
504 nc2(i) = ixc(3,i)
505 nc3(i) = ixc(4,i)
506 nc4(i) = ixc(5,i)
507 ENDDO
508 DO k = 1,nddl
509#include "vectorize.inc"
510 DO i=jft,jlt
511 inod(1) = nloc_dmg%IDXI(nc1(i))
512 inod(2) = nloc_dmg%IDXI(nc2(i))
513 inod(3) = nloc_dmg%IDXI(nc3(i))
514 inod(4) = nloc_dmg%IDXI(nc4(i))
515 ipos(1) = nloc_dmg%POSI(inod(1))
516 ipos(2) = nloc_dmg%POSI(inod(2))
517 ipos(3) = nloc_dmg%POSI(inod(3))
518 ipos(4) = nloc_dmg%POSI(inod(4))
519 var_reg(i,k) = fourth*(dnl(ipos(1)+k-1) + dnl(ipos(2)+k-1)
520 . + dnl(ipos(3)+k-1) + dnl(ipos(4)+k-1))
521 ENDDO
522 ENDDO
523 ENDIF
524
525
526
527
528
529
530
531 dt1 = dt1c(1)
532 dtinv = dt1 /
max(dt1**2,em20)
533 asrate = one
534#include "vectorize.inc"
535 do i = 1,nel
536 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
537 . * one_over_9*gbuf%thk(i)**2
538 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
539 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
540 end do
541
542 IF ((imon_mat==1).AND. itask == 0)
CALL startime(timers,35)
543
545 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
546 2 nel ,mtn ,ipla ,ithk ,group_param,
547 3 pm ,geo ,npf ,tf ,bufmat ,
548 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
549 5
area ,exx ,eyy ,exy ,exz ,
550 6 eyz ,kxx ,kyy ,kxy ,nu ,
551 7 off ,thk0 ,mat ,pid ,mat_elem ,
552 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
553 9 gbuf%THK ,gbuf%EINT ,iofc ,
554 a g ,a11 ,a12 ,vol0 ,indxof ,
555 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
556 c kfts ,ihbe ,alpe ,
557 d dir_a ,dir_b ,igeo ,
558 e ipm ,ifailure ,npg ,fheat ,
559 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
560 g ibid ,bid ,
561 h bid ,bid ,bid ,bid ,bid ,
562 i bid ,bid ,bid ,e1x ,e1y ,
563 j e1z ,e2x ,e2y ,e2z ,e3x ,
564 k e3y ,e3z ,ng ,table ,ixfem ,
565 l bid ,sensors ,bid ,elcrkini ,
566 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
567 n ismstr ,ir ,is ,nlay ,npt ,
568 o ixlay ,ixel ,isubstack ,stack ,
569 p f_def ,itask ,drape_sh4n ,var_reg ,nloc_dmg ,
570 r indx_drape ,thke ,sedrape ,numel_drape ,dt ,
571 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
572 s userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,
573 t sdir_b ,gbuf%FOR_G)
574
575 IF ((imon_mat==1).AND. itask == 0)
CALL stoptime(timers,35)
576
577
578
579 DO i=jft,jlt
580 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
581 ENDDO
582 IF (nodadt /= 0 .AND. mtn ==58 )
583 .
CALL cssp2a11(pm,mat(jft),ssp ,a11 ,jlt )
584
585 IF (iabs(npttot) == 1) THEN
586 CALL mhvis3(jft ,jlt ,pm ,gbuf%THK,gbuf%HOURG,
587 2 off ,px1 ,px2 ,py1 ,py2 ,
588 3 ixc ,dt1c ,ssp ,rho ,sti ,
589 4 eani ,geo
590 5 thk0 ,viscmx ,alpe ,ipartc ,partsav ,
591 6 ihbe ,nft ,ismstr ,rx1 ,
592 7 rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,
593 8 ry3 ,ry4 ,vx1 ,vx2 ,vx3 ,
594 9 vx4 ,vy1 ,vy2 ,vy3 ,vy4 ,
595 a vz1 ,vz2 ,vz3 ,vz4 ,b11 ,
596 b b12 ,b13 ,b14 ,b21 ,b22 ,
597 c b23 ,b24 ,
area ,ym ,nu ,
598 d vhx ,vhy ,h11 ,h12 ,h13 ,
599 e h14 ,h21 ,h22 ,h23 ,h24 ,
600 f h31 ,h32 ,h33 ,h34 ,h1 ,
601 g h2 ,igeo ,nel ,mtn ,a11 )
602 ELSEIF(ihbe == 2)THEN
603 CALL chsti3(jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,
604 2 px2 ,py1 ,py2 ,sigy ,ixc ,dt1c,
605 3 ssp ,rho ,sti ,z2 ,eani ,stir,
606 4 shf ,thk0 ,thk02 ,viscmx ,g ,a11 ,
607 5 h1 ,h2 ,h3 ,ym ,nu , alpe ,
608 6 vhx ,vhy ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
609 7 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,
area ,
610 8 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
611 9 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
612 a rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4,
613 b ipartc,partsav,
614 c ihbe ,nft ,ismstr,srh3,igtyp ,
615 d igmat ,a11r ,nel)
616 ELSE
618 2 jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,px2 ,py1 ,py2 ,
619 3 ixc ,dt1c,ssp,rho ,sti ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
620 4 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,
area,thk0,vhx ,
621 5 vhy ,shf ,z2 ,eani ,stir,viscmx,g ,a11 ,
622 6 h1 ,h2 ,h3 ,ym ,nu ,thk02,alpe,h11 ,
623 7 h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
624 8 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
625 9 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
626 a ipartc,partsav,
627 b ihbe ,nft ,ismstr,kfts ,
628 c srh1, srh2, srh3 ,igtyp ,
629 d igmat ,a11r ,nel)
630 ENDIF
631
632
633
634
635 IF (ipri>0) THEN
637 1 jft, jlt, pm, v,
638 2 ixc, gbuf%THK, gbuf%EINT, partsav,
639 3
area, mat, ipartc, x,
640 4 vr, vol0, vol00, thk0,
641 5 thk02, 1, off, nft,
642 6 gresav, grth, igrth, vl1,
643 7 vl2, vl3, vl4, vrl1,
644 8 vrl2, vrl3, vrl4, x1g,
645 9 x2g, x3g, x4g, y1g,
646 a y2g, y3g, y4g, z1g,
647 b z2g, z3g, z4g, ibid,
648 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
649 d actifxfem, igre, sensors, nel,
650 e gbuf%G_WPLA,gbuf%WPLA )
651 ENDIF
652
653
654
655 IF (ismstr /= 3.AND.(nodadt == 0.OR.idtmin(3) /= 0))THEN
656 CALL cdt3(jft ,jlt ,ym ,off ,dt2t ,
657 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
658 3 dtcsub ,ndt ,dt2c ,ixc ,ssp ,
659 4 viscmx ,px1 ,px2 ,py1 ,py2 ,
660 5 vol0 ,vol00 ,rho ,aldt ,alpe ,
661 6 indxof ,ngl ,ismstr ,iofc ,msc ,
662 7 dmelc ,jsms ,gbuf%G_DT ,gbuf%DT)
663 ENDIF
664
665
666
667 CALL cfint3(jft ,jlt ,gbuf%FOR,gbuf%MOM,thk0 ,thk02 ,
668 2 px1 ,px2 ,py1 ,py2 ,
area ,z2 ,
669 3 f11 ,f12 ,f13 ,f14 ,f21 ,f22 ,
670 4 f23 ,f24 ,f31 ,f32 ,f33 ,f34 ,
671 5 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,
672 6 h31 ,h32 ,h33 ,b11 ,b12 ,b13 ,
673 7 b14 ,b21 ,b22 ,b23 ,b24 ,nel ,
674 8 m11 ,m12 ,m13 ,m14 ,m21 ,m22 ,
675 9 m23 ,m24 ,m31 ,m32 ,m33 ,m34 ,
676 a e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
677 b e3x ,e3y ,e3z ,ihbe ,npttot ,fzero )
678
679
680
681
682 IF (jthe /= 0) THEN
683 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1) THEN
684 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
685 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c ,
686 . temp ,tempel,fheat , them ,glob_therm%THEACCFACT)
687 ELSE
688 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
689 . px1 ,px2 ,py1 ,py2 ,
area ,dt1c ,
690 . temp ,tempel,die , them ,glob_therm%THEACCFACT)
691 END IF
692 ENDIF
693
694
695
696 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1) THEN
697 call dttherm(nel ,pm(1,mat(1)) ,npropm ,glob_therm ,
698 . jtur ,tempel ,vol0 ,rho ,
699 . aldt ,off ,conde ,gbuf%re ,gbuf%rk )
700 ENDIF
701
702
703
704 IF (inloc > 0) THEN
705
707 1 nloc_dmg
708 2 off,
area, nc1, nc2,
709 3 nc3, nc4, px1, py1,
710 4 px2, py2, elbuf_str%NLOC(1,1),
711 5 ixc(1,jft), nddl, itask, dt2t,
712 6 aldt, gbuf%THK_I, gbuf%AREA, nft)
713 ENDIF
714
715 IF (iparit == 3) THEN
716 CALL cupdt3f(jft ,jlt ,f ,m ,nvc ,
717 2 gbuf%OFF,off ,sti ,stir ,stifn ,
718 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
719 4 f11 ,f12 ,f13 ,f14 ,f21 ,
720 5 f22 ,f23 ,f24 ,f31 ,f32 ,
721 6 f33 ,f34 ,m11 ,m12 ,m13 ,
722 7 m14 ,m21 ,m22 ,m23 ,m24 ,
723 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
724 9 partsav ,mat ,ipartc ,glob_therm%NODADT_THERM)
725 ELSEIF (iparit == 0) THEN
726 CALL cupdt3(jft ,jlt ,f ,m ,nvc ,
727 2 gbuf%OFF,off ,sti ,stir ,stifn ,
728 3 stifr ,ixc ,pm ,
area ,gbuf%THK ,
729 4 f11 ,f12 ,f13 ,f14 ,f21 ,
730 5 f22 ,f23 ,f24 ,f31 ,f32 ,
731 6 f33 ,f34 ,m11 ,m12 ,m13 ,
732 7 m14 ,m21 ,m22 ,m23 ,m24 ,
733 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
734 9 partsav ,mat ,ipartc,jthe ,them ,
735 a fthe ,condn ,conde ,glob_therm%NODADT_THERM)
736 ELSE
737 CALL cupdt3p(jft ,jlt ,gbuf%OFF,off ,sti ,
738 2 stir ,fsky ,fsky ,iadc ,ixc ,
739 3 f11 ,f12 ,f13 ,f14 ,f21 ,
740 4 f22 ,f23 ,f24 ,f31 ,f32 ,
741 5 f33 ,f34 ,m11 ,m12 ,m13 ,
742 6 m14 ,m21 ,m22 ,m23 ,m24 ,
743 7 m31 ,m32 ,m33 ,m34 ,
744 8 gbuf%EINT,partsav ,mat ,ipartc,pm ,
745 9
area ,gbuf%THK,jthe ,them ,fthesky,
746 a condnsky ,conde ,glob_therm%NODADT_THERM)
747 ENDIF
748
749 IF (icsen > 0)
750 .
CALL csens3(jft ,jlt ,pid ,igeo ,epsd_pg)
751
752
753
754 IF (ixfem > 0) THEN
755 DO ilay=1,nxlay
756
757
758 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
760 . nel ,nft ,ilay ,nlay ,ixc ,
761 . crklen ,elcrkini ,iel_crk ,dir1_crk ,dir2_crk ,
762 . nodedge ,crkedge ,xedge4n ,ngl ,x2 ,
763 . x3 ,x4 ,y2 ,y3 ,y4 ,
764 . aldt )
765
767 . xfem_str ,nel ,nft ,ixc ,elcutc ,
768 . ilay ,nxlay ,iel_crk ,inod_crk ,
769 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
770 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
771 . x2 ,x3 ,x4 ,y2 ,y3 ,
772 . y4 ,xedge4n ,ngl )
773
775 . xfem_str ,nel ,nft ,ixc ,elcutc ,
776 . ilay ,nxlay ,iel_crk ,inod_crk ,
777 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
778 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
779 . x2 ,x3 ,x4 ,y2 ,y3 ,
780 . y4 ,xedge4n ,ngl )
781 ENDDO
782
783 CALL crkoffc(elbuf_str,xfem_str ,
784 . jft ,jlt ,nft ,ir ,is ,
785 . nxlay ,iel_crk ,crkedge,xedge4n )
786 END IF
787
788
789
790 IF (ifailwave > 0) THEN
791 crkdir => elbuf_str%BUFLY(1)%CRKDIR
792
794 . nel ,ixc ,itab ,crkdir ,dir_a ,
795 . l_dira ,x2 ,x3 ,x4 ,y2 ,
796 . y3 ,y4 )
797 ENDIF
798
799 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
800 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
801 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
802 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
803 IF (ALLOCATED(dira)) DEALLOCATE(dira)
804 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
805
806 RETURN
subroutine cbilan(jft, jlt, pm, v, ixc, thk, eint, partsav, area, mat, ipartc, x, vr, vol0, vol00, thk0, thk02, ifla, off, nft1, gresav, grth, igrth, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, ixfem, iexpan, eintth, itask, gvol, actifxfem, igre, sensors, nel, g_wpla, wpla)
subroutine ccoef3(jft, jlt, pm, mat, geo, pid, off, area, sti, stir, shf, thk0, thk02, nu, g, ym, a11, a12, thk, ssp, rho, h1, h2, h3, vol0, vol00, alpe, gs, mtn, ithk, ismstr, npt, kfts, srh1, srh2, srh3, igeo, a11r, isubstack, pm_stack)
subroutine ccoort3(jft, jlt, x, ixc, offg, dr, px1, px2, py1, py2, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, area, v13x, v24x, v13y, v24y, smstr, nel)
subroutine ccoor3(jft, jlt, x, ixc, geo, offg, off, sigy, pid, v, vr, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, mat, dt1c, thke, thk0, ngl, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)
subroutine ccurv3(jft, jlt, vrl1, vrl2, vrl3, vrl4, px1, px2, py1, py2, area, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, kxx, kyy, kxy, exz, eyz, wxy, ismstr)
subroutine cdefo3(jft, jlt, vl1, vl2, vl3, vl4, dt1c, px1, px2, py1, py2, area, exx, eyy, exy, exz, eyz, x2, x3, x4, y2, y3, y4, z2, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ihbe)
subroutine cdefot3(jft, jlt, px1, px2, py1, py2, vx13, vx24, vy13, vy24, f_def)
subroutine cderi3(jft, jlt, smstr, offg, sti, stir, area, px1, px2, py1, py2, x2, x3, x4, y2, y3, y4, z2, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, vhx, vhy, a_i, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, nel, ismstr)
subroutine cdlen3(jft, jlt, pm, off, area, x2, x3, x4, y2, y3, y4, aldt, mat, geo, pid, ihbe)
subroutine cdt3(jft, jlt, ym, off, dt2t, neltst, ityptst, sti, stir, offg, dtc, ndt, dt2c, ixc, ssp, viscmx, px1, px2, py1, py2, vol0, vol00, rho, aldt, alpe, indxof, ngl, ismstr, iofc, msc, dmelc, jsms, g_dt, dtel)
subroutine cevec3(elbuf_str, dir_a, dir_b, jft, jlt, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, irep, nlay, nel)
subroutine cfint3(jft, jlt, for, mom, thk0, thk02, px1, px2, py1, py2, area, z2, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, nel, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ihbe, npt, fzero)
subroutine cfint_reg(nloc_dmg, var_reg, thk, nel, off, area, nc1, nc2, nc3, nc4, px1, py1, px2, py2, bufnl, imat, nddl, itask, dt2t, le, thk0, area0, nft)
subroutine chsti3(jft, jlt, thk, hour, off, px1, px2, py1, py2, sigy, ixc, dt1c, ssp, rho, sti, z2, eani, stir, shf, thk0, thk02, viscmx, g, a11, h1, h2, h3, ym, nu, alpe, vhx, vhy, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, area, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, ipartc, partsav, ihbe, nft, ismstr, srh3, igtyp, igmat, a11r, nel)
subroutine chvis3(jft, jlt, thk, hour, off, px1, px2, py1, py2, ixc, dt1c, ssp, rho, sti, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, area, thk0, vhx, vhy, shf, z2, eani, stir, viscmx, g, a11, h1, h2, h3, ym, nu, thk02, alpe, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, ipartc, partsav, ihbe, nft, ismstr, kfts, srh1, srh2, srh3, igtyp, igmat, a11r, nel)
subroutine cmain3(timers, elbuf_str, jft, jlt, nft, iparg, nel, mtn, ipla, ithk, group_param, pm, geo, npf, tf, bufmat, ssp, rho, viscmx, dt1c, sigy, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, nu, off, thk0, mat, pid, mat_elem, for, mom, gstr, failwave, fwave_el, thk, eint, iofc, g, a11, a12, vol0, indxdel, ngl, zcfac, shf, gs, epsd_pg, kfts, jhbe, alpe, dir_a, dir_b, igeo, ipm, ifailure, npg, fheat, tempel, die, jthe, iexpan, tempel0, ishplyxfem, ply_exx, ply_eyy, ply_exy, ply_exz, ply_eyz, ply_f, del_ply, th_iply, sig_iply, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ng, table, ixfem, offi, sensors, a11_iply, elcrkini, dir1_crk, dir2_crk, aldt, idt_therm, theaccfact, ismstr, ir, is, nlay, npt, ixlay, ixel, isubstack, stack, f_def, itask, drape, varnl, nloc_dmg, indx_drape, thke, sedrape, numel_drape, dt, ncycle, snpc, stf, nxlaymax, idel7nok, userl_avail, maxfunc, varnl_npttot, sbufmat, sdir_a, sdir_b, for_g)
subroutine cnvec3(elbuf_str, dir_a, dir_b, jft, jlt, irep, igtyp, nlay, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nel)
subroutine cpxpy3(jft, jlt, pm, sti, smstr, px1, px2, py1, py2, stir, ixc, area, x2, x3, x4, y2, y3, y4, z2, thk0, mat, nel)
subroutine crklayer4n_adv(xfem_str, nel, nft, ixc, elcutc, ilay, nlay, iel_crk, inod_crk, iadc_crk, nodenr, elcrkini, dir1, dir2, nodedge, crknodiad, knod2elc, crkedge, a_i, xl2, xl3, xl4, yl2, yl3, yl4, xedge4n, ngl)
subroutine crklayer4n_ini(xfem_str, nel, nft, ixc, elcutc, ilay, nlay, iel_crk, inod_crk, iadc_crk, nodenr, elcrkini, dir1, dir2, nodedge, crknodiad, knod2elc, crkedge, a_i, xl2, xl3, xl4, yl2, yl3, yl4, xedge4n, ngl)
subroutine crklen4n_adv(nel, nft, ilay, nlay, ixc, crklen, elcrkini, iel_crk, dir1, dir2, nodedge, crkedge, xedge4n, ngl, xl2, xl3, xl4, yl2, yl3, yl4, aldt)
subroutine csens3(jft, jlt, pid, igeo, epsp)
subroutine cssp2a11(pm, imat, ssp, a11, nel)
subroutine cstra3(jft, jlt, gstr, shf, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, dt1c, epsdot, for, mom, ismstr, mtn, ihbe, nft, istrain, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, px1, px2, py1, py2, wxy, gstrw, f_def, nel)
subroutine cupdt3f(jft, jlt, i8f, i8m, nvc, offg, off, sti, stir, i8stifn, i8stifr, ixc, pm, area, thk, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, nodadt_therm)
subroutine cupdt3p(jft, jlt, offg, off, sti, stir, fsky, fskyv, iadc, ixc, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, pm, area, thk, jthe, them, fthesky, condnsky, conde, nodadt_therm)
subroutine cupdt3(jft, jlt, f, m, nvc, offg, off, sti, stir, stifn, stifr, ixc, pm, area, thk, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, jthe, them, fthe, condn, conde, nodadt_therm)
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine mhvis3(jft, jlt, pm, thk, hour, off, px1, px2, py1, py2, ixc, dt1c, ssp, rho, sti, eani, geo, pid, stir, mat, thk0, viscmx, alpe, ipartc, partsav, ihbe, nft, ismstr, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, b11, b12, b13, b14, b21, b22, b23, b24, area, ym, pr, vhx, vhy, h11, h12, h13, h14, h21, h22, h23, h24, h31, h32, h33, h34, h1, h2, igeo, nel, mtn, a1)
subroutine crkoffc(elbuf_str, xfem_str, jft, jlt, nft, ir, is, nxlay, iel_crk, crkedge, xedge4n)
subroutine precrklay(jft, jlt, nft, nlay, elcrkini, iel_crk, inod_crk, nodenr, crkedge, xedge4n)
subroutine set_failwave_nod4(failwave, fwave_el, ngl, nel, ixc, itab, crkdir, dir_a, nrot, xl2, xl3, xl4, yl2, yl3, yl4)
subroutine startime(event, itask)
subroutine stoptime(event, itask)
subroutine tempcg(numnod, nel, ixc, temp, tempel)
subroutine thermc(jft, jlt, pm, mat, thk, ixc, px1, px2, py1, py2, area, dt1c, tempnc, tempel, die, fphi, theaccfact)
subroutine set_failwave_sh4n(failwave, fwave_el, dadv, nel, ixc, itab, ngl, offly)