OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3forc3_crk.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "com04_c.inc"
#include "com_xfem1.inc"
#include "parit_c.inc"
#include "timeri_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine c3forc3_crk (timers, xfem_str, jft, jlt, pm, ixtg, x, f, m, v, r, failwave, nvc, mtn, geo, tf, npf, bufmat, pmsav, dt2t, neltst, ityptst, stifn, stifr, fsky, crksky, iadtg, epsdot, offset, iparttg, thke, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33, kfts, group_param, mat_elem, nel, istrain, ish3n, ithk, iofc, ipla, nft, ismstr, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mstg, dmeltg, jsms, table, iparg, sensors, ptg, ixfem, inod_crk, iel_crk, iadtg_crk, elcutc, ixel, stack, isubstack, uxint_mean, uyint_mean, uzint_mean, nlevxf, nodedge, crkedge, drape_sh3n, ipri, nloc_dmg, indx_drape, igre, dt, ncycle, snpc, stf, glob_therm, idel7nok, userl_avail, maxfunc, sbufmat, ipart, lipart1)

Function/Subroutine Documentation

◆ c3forc3_crk()

subroutine c3forc3_crk ( type(timer_) timers,
type (elbuf_struct_), target xfem_str,
integer jft,
integer jlt,
pm,
integer, dimension(nixtg,*) ixtg,
real(kind=8), dimension(*), intent(in) x,
f,
m,
v,
r,
type (failwave_str_) failwave,
integer nvc,
integer mtn,
geo,
tf,
integer, dimension(*) npf,
bufmat,
pmsav,
dt2t,
integer neltst,
integer ityptst,
stifn,
stifr,
fsky,
type (xfem_sky_), dimension(*) crksky,
integer, dimension(3,*) iadtg,
epsdot,
integer offset,
integer, dimension(*) iparttg,
thke,
f11,
f12,
f13,
f21,
f22,
f23,
f31,
f32,
f33,
m11,
m12,
m13,
m21,
m22,
m23,
m31,
m32,
m33,
integer kfts,
type (group_param_) group_param,
type (mat_elem_), intent(inout) mat_elem,
integer nel,
integer istrain,
integer ish3n,
integer ithk,
integer iofc,
integer ipla,
integer nft,
integer ismstr,
fzero,
integer, dimension(npropgi,*) igeo,
integer, dimension(*) ipm,
integer ifailure,
integer itask,
integer jthe,
temp,
fthe,
fthesky,
integer iexpan,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
mstg,
dmeltg,
integer jsms,
type(ttable), dimension(*) table,
integer, dimension(*) iparg,
type (sensors_), intent(inout) sensors,
ptg,
integer ixfem,
integer, dimension(*) inod_crk,
integer, dimension(*) iel_crk,
integer, dimension(3,*) iadtg_crk,
integer, dimension(2,*) elcutc,
integer ixel,
type (stack_ply) stack,
integer isubstack,
uxint_mean,
uyint_mean,
uzint_mean,
integer nlevxf,
integer, dimension(2,*) nodedge,
type (xfem_edge_), dimension(*) crkedge,
type (drape_), dimension(numeltg_drape) drape_sh3n,
integer ipri,
type (nlocal_str_) nloc_dmg,
integer, dimension(stdrape) indx_drape,
integer, intent(in) igre,
type (dt_), intent(in) dt,
integer, intent(in) ncycle,
integer, intent(in) snpc,
integer, intent(in) stf,
type (glob_therm_), intent(inout) glob_therm,
integer, intent(inout) idel7nok,
integer, intent(in) userl_avail,
integer, intent(in) maxfunc,
integer, intent(in) sbufmat,
integer, dimension(lipart1,npart), intent(in) ipart,
integer, intent(in) lipart1 )

Definition at line 68 of file c3forc3_crk.F.

96C-----------------------------------------------
97 USE timer_mod
98 USE table_mod
100 USE stack_mod
101 USE failwave_mod
102 USE mat_elem_mod
103 USE drape_mod
104 USE nlocal_reg_mod
105 USE sensor_mod
106 USE elbufdef_mod
107 USE dt_mod
108 use glob_therm_mod
109 use element_mod , only : nixtg
110C-----------------------------------------------
111C I m p l i c i t T y p e s
112C-----------------------------------------------
113#include "implicit_f.inc"
114C-----------------------------------------------
115C G l o b a l P a r a m e t e r s
116C-----------------------------------------------
117#include "mvsiz_p.inc"
118C-----------------------------------------------
119C C o m m o n B l o c k s
120C-----------------------------------------------
121#include "param_c.inc"
122#include "com04_c.inc"
123#include "com_xfem1.inc"
124#include "parit_c.inc"
125#include "timeri_c.inc"
126C-----------------------------------------------
127C D u m m y A r g u m e n t s
128C-----------------------------------------------
129 TYPE(TIMER_) :: TIMERS
130 INTEGER,INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
131 INTEGER,INTENT(IN) :: MAXFUNC ! Maximum number of functions
132 INTEGER,INTENT(INOUT) :: IDEL7NOK ! Element deletion flag for IDEL flag in contact interfaces
133 INTEGER,INTENT(IN) :: SBUFMAT ! size of bufmat
134 INTEGER,INTENT(IN) :: STF ! size of TF
135 INTEGER,INTENT(IN) :: SNPC ! size of NPC
136 INTEGER, INTENT(IN) :: IGRE, NCYCLE
137 INTEGER JFT,JLT,NVC,MTN,NELTST,ITYPTST,OFFSET,
138 . NEL,ISTRAIN,ISH3N,ICSEN,
139 . ITHK,IOFC,IPLA,NFT,ISMSTR,KFTS,IFAILURE,
140 . JSMS,IXEL,ISUBSTACK,NLEVXF,IPRI
141 INTEGER NPF(*),IXTG(NIXTG,*),IADTG(3,*),IGEO(NPROPGI,*),IPM(*),
142 . IPARTTG(*),ITASK,JTHE,IEXPAN,GRTH(*),IGRTH(*),IPARG(*),
143 . IXFEM,INOD_CRK(*),IEL_CRK(*),IADTG_CRK(3,*),
144 . ELCUTC(2,*),NODEDGE(2,*),INDX_DRAPE(STDRAPE)
145 my_real
146 . pm(npropm,*),f(*),m(*),v(*),r(*),
147 . geo(npropg,*),tf(*),bufmat(*),pmsav(*),stifn(*),
148 . stifr(*),fsky(*),epsdot(6,*),thke(*),dt2t,
149 . f11(mvsiz),f12(mvsiz),f13(mvsiz),
150 . f21(mvsiz),f22(mvsiz),f23(mvsiz),
151 . f31(mvsiz),f32(mvsiz),f33(mvsiz),
152 . m11(mvsiz),m12(mvsiz),m13(mvsiz),
153 . m21(mvsiz),m22(mvsiz),m23(mvsiz),
154 . m31(mvsiz),m32(mvsiz),m33(mvsiz),
155 . fzero(3,3,*),temp(*),fthe(*),fthesky(*),gresav(*),
156 . mstg(*), dmeltg(*),ptg(3,*),
157 . uxint_mean(nlevxf,mvsiz),uyint_mean(nlevxf,mvsiz),
158 . uzint_mean(nlevxf,mvsiz)
159! SP issue :
160 REAL(kind=8), dimension(*), INTENT(in) :: x
161 TYPE(TTABLE) TABLE(*)
162 TYPE (ELBUF_STRUCT_), TARGET :: XFEM_STR
163 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
164 TYPE (XFEM_SKY_) , DIMENSION(*) :: CRKSKY
165 TYPE (STACK_PLY) :: STACK
166 TYPE (FAILWAVE_STR_) :: FAILWAVE
167 TYPE (GROUP_PARAM_) :: GROUP_PARAM
168 TYPE (DRAPE_) :: DRAPE_SH3N(NUMELTG_DRAPE)
169 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
170 TYPE (NLOCAL_STR_) :: NLOC_DMG
171 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
172 TYPE (DT_), INTENT(IN) :: DT
173 type (glob_therm_) ,intent(inout) :: glob_therm
174 integer, intent(in) :: LIPART1
175 INTEGER, DIMENSION(LIPART1,NPART), INTENT(IN) :: IPART
176
177C-----------------------------------------------
178C L o c a l V a r i a b l e s
179C-----------------------------------------------
180c Indx uses locally unlike 4N shells
181 INTEGER
182 . I,J1,J2,IR,IS,IT,IGTYP,IXFEM2,IREP,IMAT,
183 . IUN,NPG,IBID,IDRIL,NG,IXLAY,NXLAY,NLAYER,NPTT,
184 . L_DIRA,L_DIRB,ILEV,IGMAT,IPTHK,ISH3NFR,ACTIFXFEM,
185 . SEDRAPE, NUMEL_DRAPE
186 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),INDX(MVSIZ),FWAVE(MVSIZ)
187 my_real sti(mvsiz),stir(mvsiz),rho(mvsiz),
188 . ssp(mvsiz),viscmx(mvsiz),area(mvsiz),
189 .
190 .
191 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
192 . kxx(mvsiz),kyy(mvsiz),kxy(mvsiz),
193 . px1(mvsiz),py1(mvsiz),py2(mvsiz),
194 . x2(mvsiz), x3(mvsiz), y2(mvsiz), y3(mvsiz),
195 . x21g(mvsiz), y21g(mvsiz), z21g(mvsiz),
196 . x31g(mvsiz), y31g(mvsiz), z31g(mvsiz),
197 . off(mvsiz),sigy(mvsiz),thk0(mvsiz),
198 . nu(mvsiz),shf(mvsiz),dt1c(mvsiz),
199 . g(mvsiz),ym(mvsiz),a11(mvsiz),a12(mvsiz),
200 . vol0(mvsiz),thk02(mvsiz),zcfac(mvsiz,2),gs(mvsiz),
201 . vol00(mvsiz),alpe(mvsiz),die(mvsiz),tempel(mvsiz),
202 . e1x0(mvsiz), e1y0(mvsiz), e1z0(mvsiz), e2x0(mvsiz),
203 . e2y0(mvsiz), e2z0(mvsiz), e3x0(mvsiz), e3y0(mvsiz), e3z0(mvsiz),
204 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
205 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
206 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),
207 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),them(mvsiz,3),
208 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),
209 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),
210 . vx13(mvsiz), vx23(mvsiz),vy12(mvsiz),
211 . rlz(mvsiz,3),wxy(mvsiz),mlz(mvsiz,3),krz(mvsiz),
212 . b0rz(mvsiz,3),bkrz(mvsiz,2),berz(mvsiz,2),bm0rz(mvsiz,3,2),
213 . ecos(mvsiz),esin(mvsiz),a11r(mvsiz),thke0(mvsiz),aldt(mvsiz)
214 my_real :: dtime
215 my_real , DIMENSIOn(NEL) :: zoffset
216 my_real
217 . bid,thkr,f_def(mvsiz,8),wkxy(mvsiz)
218! SP issue :
219 REAL(kind=8), dimension(mvsiz) ::x1g,x2g,x3g
220 REAL(kind=8), dimension(mvsiz) ::y1g,y2g,y3g
221 REAL(kind=8), dimension(mvsiz) ::z1g,z2g,z3g
222C---
223 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
224 my_real,
225 . ALLOCATABLE, DIMENSION(:) :: dira,dirb,dir1_crk,dir2_crk
226 my_real,
227 . DIMENSION(:) ,POINTER :: dir_a,dir_b
228 TARGET :: dira,dirb
229C---
230 TYPE(BUF_LAY_) ,POINTER :: BUFLY
231 TYPE(G_BUFEL_) ,POINTER :: GBUF
232 TYPE(L_BUFEL_) ,POINTER :: LBUF
233C
234! variables for heat transfer
235 my_real, dimension(mvsiz) :: fheat
236 my_real, dimension(mvsiz) :: ssp_eq
237!
238 my_real,
239 . DIMENSION(:) ,POINTER :: offg,thkg,strag,forg,momg,
240 . eintg,epsdg,tempg,eintth,hourgg
241 DOUBLE PRECISION,
242 . DIMENSION(:) ,POINTER :: SMSTRG
243 my_real,
244 . DIMENSION(:,:), ALLOCATABLE :: varnl
245 INTEGER NPTTOT
246 INTEGER SDIR_A ! Size of DIR_A
247 INTEGER SDIR_B ! Size of DIR_B
248C---------------------------
249c CAUTION: shell3N + ISMSTR = 10 Pas compatible with XFEM !!!
250C=======================================================================
251 bid = zero
252 iun = 1
253 ibid = 0
254 npg = 0
255 ir = 1
256 is = 1
257 it = 1
258 ng = 1
259 sedrape = stdrape
260 numel_drape = numeltg_drape
261 npttot = 1
262 ALLOCATE(varnl(nel,1))
263 varnl = zero
264 dtime = dt1c(1)
265C -----will put it in starter
266 IF (ismstr>=10) ismstr=4
267c
268 DO i=jft,jlt
269 mat(i) = ixtg(1,i)
270 pid(i) = ixtg(5,i)
271 ngl(i) = ixtg(6,i)
272 thk0(i) = thke(i)
273 ENDDO
274 imat = ixtg(1,jft)
275 icsen = igeo(3,pid(1))
276 igtyp = igeo(11,pid(1))
277 irep = iparg(35)
278 idril = iparg(41)
279 actifxfem = iparg(70)
280C-----------------------------------------
281 gbuf => xfem_str%GBUF
282 nxlay = xfem_str%NLAY
283 nlayer = 1
284C-----------------------------------------
285 IF (ixfem == 2) THEN
286 ixfem2 = 1 ! monolayer xfem
287 ELSE
288 ixfem2 = ixfem ! multinayer xfem
289 ENDIF
290c
291 ALLOCATE(elcrkini(nxlaymax*nel))
292 ALLOCATE(dir1_crk(nxlaymax*nel))
293 ALLOCATE(dir2_crk(nxlaymax*nel))
294 elcrkini = 0
295 dir1_crk = zero
296 dir2_crk = zero
297C
298 l_dira = xfem_str%BUFLY(1)%LY_DIRA
299 l_dirb = xfem_str%BUFLY(1)%LY_DIRB
300C
301 ALLOCATE(dira(nxlay*nel*l_dira))
302 ALLOCATE(dirb(nxlay*nel*l_dirb))
303 dira=zero
304 dirb=zero
305 sdir_a=nxlay*nel*l_dira
306 sdir_b=nxlay*nel*l_dirb
307 dir_a => dira(1:nxlay*nel*l_dira)
308 dir_b => dirb(1:nxlay*nel*l_dirb)
309C
310 DO ixlay=1,nxlay
311 nptt = xfem_str%BUFLY(ixlay)%NPTT
312 IF (l_dira == 0) THEN
313 dira = zero
314 ELSEIF (irep == 0) THEN
315 j1 = 1+(ixlay-1)*l_dira*nel
316 j2 = ixlay*l_dira*nel
317 dira(j1:j2) = xfem_str%BUFLY(ixlay)%DIRA(1:nel*l_dira)
318 ENDIF
319C
320 DO i=jft,jlt
321 sigy(i) = ep30
322 zcfac(i,1) = one
323 zcfac(i,2) = one
324 alpe(i) = one
325 tempel(i) = zero
326 ENDDO
327C---
328 ilev = nxel*(ixlay-1) + ixel
329C---
330 IF (igtyp == 1 .or. igtyp == 9) THEN
331 DO i=jft,jlt
332 thke0(i) = thke(i)
333 END DO
334 ELSEIF (igtyp == 51 .OR. igtyp == 52) THEN
335 ipthk = 1 + nxlay
336 thkr = stack%GEO(ipthk+ixlay,isubstack)
337 DO i=jft,jlt
338 thke0(i) = thke(i) * thkr ! layer thickness (real)
339 ENDDO
340 ELSE ! IGTYP == 11...
341 ipthk = 300
342 DO i=jft,jlt
343 thke0(i) = thke(i) * geo(ipthk+ixlay,ixtg(5,1))
344 END DO
345 ENDIF
346c
347 IF (nxlay > 1) THEN
348 lbuf => xfem_str%BUFLY(ixlay)%LBUF(ir,is,1)
349 bufly => xfem_str%BUFLY(ixlay)
350 offg => lbuf%OFF
351 smstrg => lbuf%SMSTR
352 thkg => lbuf%THK
353 strag => lbuf%STRA
354 forg => lbuf%FOR
355 momg => lbuf%MOM
356 eintg => lbuf%EINT
357 epsdg => lbuf%EPSD
358 tempg => lbuf%TEMP
359 eintth => lbuf%EINTTH
360 hourgg => bufly%HOURG
361 ELSEIF (nxlay == 1) THEN
362 offg => gbuf%OFF
363 smstrg => gbuf%SMSTR
364 thkg => gbuf%THK
365 strag => gbuf%STRA
366 forg => gbuf%FOR
367 momg => gbuf%MOM
368 eintg => gbuf%EINT
369 epsdg => gbuf%EPSD
370 tempg => gbuf%TEMP
371 eintth => gbuf%EINTTH
372 hourgg => gbuf%HOURG
373 ENDIF
374C
375 CALL c3coor3_crk(jft ,jlt ,offg ,off ,sigy ,
376 . dt1c ,thke0 ,vl1 ,vl2 ,vl3 ,
377 . vrl1 ,vrl2 ,vrl3 ,x1g ,x2g ,
378 . x3g ,y1g ,y2g ,y3g ,z1g ,
379 . z2g ,z3g ,ilev ,iel_crk ,iadtg_crk,
380 . nft )
381C----------use always old local sys
382 ish3nfr = 1
383 CALL c3evec3(xfem_str ,dir_a ,dir_b ,jft ,jlt ,
384 . irep ,e1x0 ,e1y0 ,e1z0 ,e2x0 ,
385 . e2y0 ,e2z0 ,e3x0 ,e3y0 ,e3z0 ,
386 . e1x ,e1y ,e1z ,e2x ,
387 . e2y ,e2z ,e3x ,e3y ,e3z ,
388 . nxlay ,gbuf%OFF,ecos ,esin ,ish3nfr ,
389 . nel ,area ,x21g ,y21g ,z21g ,
390 . x31g ,y31g ,z31g ,
391 . x1g ,x2g ,x3g ,y1g ,y2g ,
392 . y3g ,z1g ,z2g ,z3g )
393 IF (ismstr /= 3) THEN
394 CALL c3deri3(jft ,jlt ,px1 ,py1 ,py2 ,
395 . smstrg ,offg ,ismstr ,alpe ,aldt ,
396 . ux1 ,ux2 ,ux3 ,uy1 ,uy2 ,
397 . uy3 ,nel ,area ,x21g ,y21g ,
398 . z21g ,x31g ,y31g ,z31g ,x2 ,
399 . y2 ,x3 ,y3 ,
400 . e1x ,e1y ,e1z ,e2x ,
401 . e2y ,e2z ,e3x ,e3y ,e3z )
402 ELSE
403C Bug: ISMSTR = 3 not supported for 3n shells
404 CALL c3pxpy3(jft ,jlt ,pm ,sti ,stir,
405 2 smstrg ,px1 ,py1 ,py2 ,mat ,
406 3 ssp ,nel )
407 ENDIF
408C
409 IF (idril > 0) CALL c3brz3(jft ,jlt ,area ,x2 ,x3 ,
410 . y3 ,bm0rz,b0rz ,bkrz ,berz )
411c
412 CALL c3coef3(jft ,jlt ,pm ,mat ,geo ,
413 2 pid ,off ,area ,sti ,stir ,
414 3 shf ,thk0 ,thk02 ,nu ,
415 4 g ,ym ,a11 ,a12 ,thkg ,
416 5 ssp ,rho ,vol0 ,gs ,mtn ,
417 6 ithk ,nptt ,ismstr ,vol00 ,igeo ,
418 7 a11r , isubstack, stack%PM, nel ,zoffset)
419c
420 CALL c3defo3(jft ,jlt ,vl1 ,vl2 ,vl3 ,
421 . ixtg ,ish3n,px1 ,py1 ,py2 ,
422 . exx ,eyy ,exy ,eyz ,ezx ,
423 . vx13 ,vx23 ,vy12 ,
424 . e1x ,e1y ,e1z ,e2x ,
425 . e2y ,e2z ,e3x ,e3y ,e3z )
426
427 IF (idril > 0) THEN
428 CALL c3defrz(jft ,jlt ,rlz ,bm0rz ,b0rz,
429 1 bkrz ,berz ,e3x0 ,e3y0 ,e3z0 ,
430 2 vrl1 ,vrl2 ,vrl3 ,exx ,eyy ,
431 3 exy ,px1 ,py1 ,py2 ,wxy ,
432 4 area ,vx13 ,vx23 ,vy12 )
433 CALL c3coefrz3(jft ,jlt ,g, krz ,area ,thke0)
434 ENDIF
435
436 CALL c3curv3(jft,jlt,vrl1,vrl2,vrl3,
437 . ixtg,wkxy ,ismstr,kxx,kyy,
438 . kxy ,px1 ,py1 ,py2 ,eyz ,ezx ,
439 . e1x ,e1y ,e1z ,e2x ,e2y ,
440 . e2z ,e3x ,e3y ,e3z )
441
442 CALL c3stra3(jft ,jlt ,pm ,
443 2 mat ,area ,exx ,eyy ,exy ,
444 3 ezx ,eyz ,kxx ,kyy ,kxy ,
445 4 geo ,pid ,nu ,shf ,strag ,
446 5 ssp ,rho ,epsdot ,
447 6 nft ,istrain ,ismstr ,
448 7 ux1 ,ux2 ,ux3 ,uy1 ,uy2 ,
449 8 uy3 ,px1 ,py1 ,py2 ,mtn ,
450 9 f_def ,wkxy ,gbuf%STRW,nel )
451C
452C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
453 IF (jthe > 0 ) CALL temp3cg(jft ,jlt ,pm ,mat ,ixtg,
454 . temp ,tempel)
455C--------------------------
456 IF ((itask==0).AND.(imon_mat==1)) CALL startime(timers,35)
457C--------------------------
458 CALL cmain3(timers,
459 1 xfem_str ,jft ,jlt ,nft ,iparg ,
460 2 nel ,mtn ,ipla ,ithk ,group_param,
461 3 pm ,geo ,npf ,tf ,bufmat ,
462 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
463 5 area ,exx ,eyy ,exy ,ezx ,
464 6 eyz ,kxx ,kyy ,kxy ,nu ,
465 7 off ,thk0 ,mat ,pid ,mat_elem ,
466 8 forg ,momg ,strag ,failwave ,fwave ,
467 9 thkg ,eintg ,iofc ,
468 a g ,a11 ,a12 ,vol0 ,indx ,
469 b ngl ,zcfac ,shf ,gs ,epsdg ,
470 c kfts ,ish3n ,alpe ,
471 d dir_a ,dir_b ,igeo ,
472 e ipm ,ifailure ,npg ,fheat ,
473 f tempel ,die ,jthe ,iexpan ,tempg ,
474 g ibid ,bid ,
475 h bid ,bid ,bid ,bid ,bid ,
476 i bid ,bid ,bid ,e1x ,e1y ,
477 j e1z ,e2x ,e2y ,e2z ,e3x ,
478 k e3y ,e3z ,ng ,table ,ixfem ,
479 l bid ,sensors ,bid ,elcrkini ,
480 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
481 p ismstr ,ir ,is ,nlayer ,nptt ,
482 q ixlay ,ixel ,isubstack ,stack ,
483 p bid ,itask ,drape_sh3n ,varnl ,nloc_dmg ,
484 r indx_drape , thke ,sedrape ,numel_drape, dt ,
485 q ncycle ,snpc , stf ,nxlaymax ,idel7nok ,
486 s userl_avail, maxfunc, npttot,bufmat ,sdir_a ,
487 t sdir_b ,gbuf%FOR_G,ssp_eq,
488 x ipart ,lipart1 ,iparttg )
489
490C--------------------------
491 IF ((itask==0).AND.(imon_mat==1)) CALL stoptime(timers,35)
492C--------------------------
493C TIME STEP
494C--------------------------
495 IF (ismstr /= 3) CALL c3dt3(
496 1 jft ,jlt ,pm ,off ,dt2t ,
497 2 neltst ,ityptst ,sti ,stir ,offg ,
498 3 ssp ,viscmx ,ismstr ,nft ,iofc ,
499 4 alpe ,mstg ,dmeltg ,jsms ,ptg ,
500 5 shf ,igtyp ,igmat ,g ,a11 ,
501 6 a11r ,gbuf%G_DT ,gbuf%DT ,aldt ,thk0 ,
502 7 area ,ngl ,imat ,mtn ,nel ,
503 8 zoffset ,ssp_eq )
504
505C--------------------------
506C BALANCES BY MATERIAL
507C--------------------------
508c IFLAG = MOD(NCYCLE,NCPRI)
509 IF (ipri>0)
510 + CALL c3bilan(
511 1 jft, jlt, pm, v,
512 2 thkg, eintg, pmsav, iparttg,
513 3 rho, vol00, ixtg, x,
514 4 r, thk02, area, gresav,
515 5 grth, igrth, off, ixfem2,
516 6 ilev, iel_crk, iadtg_crk,nft,
517 7 iexpan, eintth, itask, mat,
518 8 gbuf%VOL, actifxfem,igre,sensors,
519 9 nel, gbuf%G_WPLA,gbuf%WPLA)
520C----------------------------
521C FORCES INTERNES
522C----------------------------
523 CALL c3fint3(jft ,jlt ,forg ,momg ,thk0,
524 2 px1 ,py1 ,py2 ,f11 ,f12 ,
525 3 f13 ,f21 ,f22 ,f23 ,f31 ,
526 4 f32 ,f33 ,m11 ,m12 ,m13 ,
527 5 m21 ,m22 ,m23 ,nel )
528
529 IF (idril > 0) THEN
530 CALL c3fintrz(jft ,jlt ,thk0 ,area ,px1 ,
531 2 py1 ,py2 ,f11 ,f12 ,f13 ,
532 3 f21 ,f22 ,f23 ,wxy ,forg ,
533 4 hourgg ,mlz ,bm0rz,b0rz ,bkrz ,
534 5 berz ,krz ,rlz ,dt1c ,eintg ,
535 6 off ,vol0 ,nel )
536 ENDIF
537C-------------------------
538c Shell thermal
539C--------------------------
540 IF (jthe > 0) THEN
541 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
542 CALL therm3c(nel ,pm(1,imat) ,thk0 ,ixtg,
543 . px1 ,py1 ,py2 ,area ,dtime ,
544 . temp ,tempel,fheat ,them ,glob_therm%THEACCFACT)
545 ELSE
546 CALL therm3c(nel ,pm(1,imat) ,thk0 ,ixtg,
547 . px1 ,py1 ,py2 ,area ,dtime ,
548 . temp ,tempel,die ,them ,glob_therm%THEACCFACT)
549 END IF
550 ENDIF
551C--------------------------
552C THERMAL TIME STEP --- to be added --- (see c3forc3.F)
553C--------------------------
554C-------------------------
555C ASSEMBLE
556C-------------------------
557 CALL c3fcum3(jft,jlt,f,
558 . f11,f12,f13,f21,f22,f23,
559 . f31,f32,f33,fzero,
560 . e1x ,e1y ,e1z ,e2x ,e2y ,
561 . e2z ,e3x ,e3y ,e3z )
562
563 CALL c3mcum3(jft,jlt,m,m11,m12,
564 . m13,m21,m22,m23,m31,m32,m33,
565 . e1x ,e1y ,e1z ,e2x ,e2y ,
566 . e2z ,e3x ,e3y ,e3z )
567 IF (idril > 0) THEN
568 CALL c3mzcum3(jft ,jlt ,mlz ,e3x ,e3y,
569 . e3z ,m11 ,m12 ,m13 ,m21,
570 . m22 ,m23 ,m31 ,m32 ,m33)
571 ENDIF
572
573C
574 IF (iparit == 1)
575 . CALL c3updt3_crk(
576 . jft ,jlt ,nft ,ixtg ,off ,iadtg ,
577 . f11 ,f21 ,f31 ,f12 ,f22 ,f32 ,
578 . f13 ,f23 ,f33 ,
579 . m11 ,m21 ,m31 ,m12 ,m22 ,m32 ,
580 . m13 ,m23 ,m33 ,
581 . sti ,stir ,fsky ,elcutc,iadtg_crk,iel_crk,
582 . ilev ,ixlay ,offg ,crksky)
583C
584 IF (icsen > 0) CALL csens3(jft ,jlt ,pid ,igeo ,epsdg)
585C-------------------------
586 ENDDO ! DO IXLAY=1,NXLAY
587C-------------------------
588 IF (ALLOCATED(dira)) DEALLOCATE(dira)
589 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
590 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
591 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
592 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
593 IF (ALLOCATED(varnl)) DEALLOCATE(varnl)
594C-------------------------
595 RETURN
subroutine c3bilan(jft, jlt, pm, v, thk, eint, partsav, iparttg, rho, vol00, ixtg, x, vr, thk02, area, gresav, grth, igrth, off, ixfem, ilev, iel_crk, iadtg_crk, nft1, iexpan, eintth, itask, mat, gvol, actifxfem, igre, sensors, nel, g_wpla, wpla)
Definition c3bilan.F:48
subroutine c3coef3(jft, jlt, pm, mat, geo, pid, off, area, sti, stir, shf, thk0, thk02, nu, g, ym, a11, a12, thk, ssp, rho, vol0, gs, mtn, ithk, npt, ismstr, vol00, igeo, a11r, isubstack, pm_stack, nel, zoffset)
Definition c3coef3.F:37
subroutine c3coor3_crk(jft, jlt, offg, off, sigy, dt1c, thke, vl1, vl2, vl3, vrl1, vrl2, vrl3, x1, x2, x3, y1, y2, y3, z1, z2, z3, ilev, iel_crk, iadc_crk, nft)
Definition c3coor3_crk.F:36
subroutine c3curv3(jft, jlt, vrl1, vrl2, vrl3, ixtg, wxy, ismstr, kxx, kyy, kxy, px1, py1, py2, eyz, ezx, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3curv3.F:36
subroutine c3defo3(jft, jlt, vl1, vl2, vl3, ixtg, ish3n, px1, py1, py2, exx, eyy, exy, eyz, ezx, vx13, vx23, vy12, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3defo3.F:37
subroutine c3defrz(jft, jlt, rlz, bm0rz, b0rz, bkrz, berz, e3x, e3y, e3z, vrl1, vrl2, vrl3, exx, eyy, exy, px1, py1, py2, wxy, area, vx13, vx23, vy12)
Definition c3defo3.F:192
subroutine c3brz3(jft, jlt, area, x2, x3, y3, bm0rz, b0rz, bkrz, berz)
Definition c3defo3.F:143
subroutine c3deri3(jft, jlt, px1, py1, py2, smstr, offg, ismstr, alpe, aldt, ux1, ux2, ux3, uy1, uy2, uy3, nel, area, x21g, y21g, z21g, x31g, y31g, z31g, x2, y2, x3, y3, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3deri3.F:37
subroutine c3dt3(jft, jlt, pm, off, dt2t, neltst, ityptst, sti, stir, offg, ssp, viscmx, ismstr, nft, iofc, alpe, mstg, dmeltg, jsms, ptg, shf, igtyp, igmat, g, a1, a11r, g_dt, dtel, aldt, thk0, area, ngl, imat, mtn, nel, zoffset, ssp_eq)
Definition c3dt3.F:39
subroutine c3fcum3(jft, jlt, f, f11, f12, f13, f21, f22, f23, f31, f32, f33, fzero, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3fcum3.F:34
subroutine c3fint3(jft, jlt, for, mom, thk, px1, py1, py2, fx1, fx2, fx3, fy1, fy2, fy3, fz1, fz2, fz3, mx1, mx2, mx3, my1, my2, my3, nel)
Definition c3fint3.F:34
subroutine c3fintrz(jft, jlt, thk, area, px1, py1, py2, f11, f12, f13, f21, f22, f23, wxy, vstre, vsrz, vmz, bm0rz, b0rz, bkrz, berz, krz, rlz, dt1c, eint, off, vol, nel)
Definition c3fint3.F:129
subroutine c3mcum3(jft, jlt, m, m11, m12, m13, m21, m22, m23, m31, m32, m33, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3mcum3.F:33
subroutine c3mzcum3(jft, jlt, mlz, e3x, e3y, e3z, m11, m12, m13, m21, m22, m23, m31, m32, m33)
Definition c3mcum3.F:88
subroutine c3pxpy3(jft, jlt, pm, sti, stir, smstr, px1, py1, py2, mat, ssp, nel)
Definition c3pxpy3.F:32
subroutine c3stra3(jft, jlt, pm, mat, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, geo, pid, nu, shf, gstr, ssp, rho, epsdot, nft, istrain, ismstr, ux1, ux2, ux3, uy1, uy2, uy3, px1, py1, py2, mtn, f_def, wxy, gstrw, nel)
Definition c3stra3.F:38
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, ssp_eq, ipart, lipart1, ipartc)
Definition cmain3.F:88
subroutine c3coefrz3(jft, jlt, g, krz, area, thk)
Definition cncoef3.F:468
#define my_real
Definition cppsort.cpp:32
subroutine csens3(jft, jlt, pid, igeo, epsp)
Definition csens3.F:38
subroutine area(d1, x, x2, y, y2, eint, stif0)
integer numeltg_drape
Definition drape_mod.F:92
integer stdrape
Definition drape_mod.F:92
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)
Definition c3evec3.F:39
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135
subroutine temp3cg(jft, jlt, pm, mat, ixtg, temp, tempel)
Definition temp3cg.F:33
subroutine therm3c(nel, pm, thk, ixtg, px1, py1, py2, area, dt, tempnc, tempel, dheat, fphi, theaccfact)
Definition therm3c.F:34
subroutine c3updt3_crk(jft, jlt, nft, ixtg, off, iadc, f11, f21, f31, f12, f22, f32, f13, f23, f33, m11, m21, m31, m12, m22, m32, m13, m23, m33, sti, stir, fsky, elcutc, iad_crktg, iel_crktg, ilev, ilay, offg, crksky)
Definition xfemfsky.F:521