OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cforc3_crk.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "com_xfem1.inc"
#include "scr02_c.inc"
#include "scr17_c.inc"
#include "scr18_c.inc"
#include "param_c.inc"
#include "parit_c.inc"
#include "timeri_c.inc"
#include "comlock.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine cforc3_crk (timers, xfem_str, jft, jlt, pm, ixc, x, f, m, v, vr, failwave, nvc, mtn, geo, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, stifr, fsky, crksky, iadc, d, dr, tani, offset, eani, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, indxof, ipartc, thke, group_param, mat_elem, nel, istrain, ihbe, kfts, ithk, iofc, ipla, nft, ismstr, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, igrth, msc, dmelc, jsms, table, iparg, ixfem, inod_crk, iel_crk, iadc_crk, elcutc, sensors, ixel, stack, isubstack, uxint_mean, uyint_mean, uzint_mean, nlevxf, nodedge, crkedge, drape_sh4n, ipri, nloc_dmg, indx_drape, igre, dt, snpc, stf, glob_therm, userl_avail, maxfunc, sbufmat)

Function/Subroutine Documentation

◆ cforc3_crk()

subroutine cforc3_crk ( type(timer_), intent(inout) timers,
type (elbuf_struct_), target xfem_str,
integer jft,
integer jlt,
pm,
integer, dimension(nixc,*) ixc,
x,
f,
m,
v,
vr,
type (failwave_str_) failwave,
integer nvc,
integer mtn,
geo,
tf,
integer, dimension(*) npf,
bufmat,
partsav,
dt2t,
integer neltst,
integer ityptst,
stifn,
stifr,
fsky,
type (xfem_sky_), dimension(*) crksky,
integer, dimension(4,*) iadc,
d,
dr,
tani,
integer offset,
eani,
f11,
f12,
f13,
f14,
f21,
f22,
f23,
f24,
f31,
f32,
f33,
f34,
m11,
m12,
m13,
m14,
m21,
m22,
m23,
m24,
m31,
m32,
m33,
m34,
integer, dimension(mvsiz) indxof,
integer, dimension(*) ipartc,
thke,
type (group_param_) group_param,
type (mat_elem_), intent(inout) mat_elem,
integer nel,
integer istrain,
integer ihbe,
integer kfts,
integer ithk,
integer iofc,
integer ipla,
integer nft,
integer ismstr,
fzero,
integer, dimension(npropgi,*) igeo,
integer, dimension(npropmi,*) ipm,
integer ifailure,
integer itask,
integer jthe,
temp,
fthe,
fthesky,
integer iexpan,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
msc,
dmelc,
integer jsms,
type(ttable), dimension(*) table,
integer, dimension(*) iparg,
integer ixfem,
integer, dimension(*) inod_crk,
integer, dimension(*) iel_crk,
integer, dimension(4,*) iadc_crk,
integer, dimension(2,*) elcutc,
type (sensors_), intent(inout) sensors,
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(numelc_drape) drape_sh4n,
integer ipri,
type (nlocal_str_) nloc_dmg,
integer, dimension(scdrape) indx_drape,
integer, intent(in) igre,
type (dt_), intent(in) dt,
integer, intent(in) snpc,
integer, intent(in) stf,
type (glob_therm_), intent(inout) glob_therm,
integer, intent(in) userl_avail,
integer, intent(in) maxfunc,
integer, intent(in) sbufmat )

Definition at line 65 of file cforc3_crk.F.

90C-----------------------------------------------
91C M o d u l e s
92C-----------------------------------------------
93 USE timer_mod
94 USE table_mod
96 USE mat_elem_mod
97 USE stack_mod
98 USE failwave_mod
99 USE drape_mod
100 USE nlocal_reg_mod
101 USE sensor_mod
102 USE elbufdef_mod
103 USE dt_mod
104 use glob_therm_mod
105C-----------------------------------------------
106C I m p l i c i t T y p e s
107C-----------------------------------------------
108#include "implicit_f.inc"
109C-----------------------------------------------
110C G l o b a l P a r a m e t e r s
111C-----------------------------------------------
112#include "mvsiz_p.inc"
113C-----------------------------------------------
114C C o m m o n B l o c k s
115C-----------------------------------------------
116#include "com01_c.inc"
117#include "com04_c.inc"
118#include "com_xfem1.inc"
119#include "scr02_c.inc"
120#include "scr17_c.inc"
121#include "scr18_c.inc"
122#include "param_c.inc"
123#include "parit_c.inc"
124#include "timeri_c.inc"
125#include "comlock.inc"
126C-----------------------------------------------
127C D u m m y A r g u m e n t s
128C-----------------------------------------------
129 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
130 INTEGER,INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
131 INTEGER,INTENT(IN) :: MAXFUNC ! Maximum number of functions
132 INTEGER,INTENT(IN) :: SBUFMAT ! Size of BUFMAT
133 INTEGER,INTENT(IN) :: STF ! Size of TF
134 INTEGER,INTENT(IN) :: SNPC ! Size of NPC
135 INTEGER, INTENT(IN) :: IGRE
136 INTEGER JFT,JLT,NVC,MTN,NELTST,ITYPTST,OFFSET,
137 . NEL,ISTRAIN,IHBE,ITHK,IOFC,IPLA,NFT,
138 . ISMSTR,KFTS,IFAILURE,IEXPAN,IXEL,NLEVXF,IPRI
139 INTEGER NPF(*),IXC(NIXC,*),IADC(4,*),INDXOF(MVSIZ),IPARTC(*),
140 . IGEO(NPROPGI,*),IPM(NPROPMI,*),ITASK,JTHE, JSMS,
141 . GRTH(*),IGRTH(*),IPARG(*),IXFEM,INOD_CRK(*),IEL_CRK(*),
142 . IADC_CRK(4,*),ELCUTC(2,*),ISUBSTACK,NODEDGE(2,*),INDX_DRAPE(SCDRAPE)
143C REAL
144 my_real
145 . f11(mvsiz), f12(mvsiz), f13(mvsiz), f14(mvsiz),
146 . f21(mvsiz), f22(mvsiz), f23(mvsiz), f24(mvsiz),
147 . f31(mvsiz), f32(mvsiz), f33(mvsiz), f34(mvsiz),
148 . m11(mvsiz), m12(mvsiz), m13(mvsiz), m14(mvsiz),
149 . m21(mvsiz), m22(mvsiz), m23(mvsiz), m24(mvsiz),
150 . m31(mvsiz), m32(mvsiz), m33(mvsiz), m34(mvsiz),
151 . pm(*), x(3,*), f(*), m(*), v(*), vr(*),
152 . geo(npropg,*),tf(*), bufmat(*),partsav(*),stifn(*),stifr(*),
153 . fsky(8,*),d(*),dr(*),tani(6,*),eani(*), thke(*),dt2t,
154 . fzero(3,4,*),temp(*), fthe(*),fthesky(*),gresav(*),
155 . msc(*), dmelc(*),uxint_mean(nlevxf,mvsiz),
156 . uyint_mean(nlevxf,mvsiz),uzint_mean(nlevxf,mvsiz)
157 TYPE(TTABLE) TABLE(*)
158 TYPE (ELBUF_STRUCT_), TARGET :: XFEM_STR
159 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
160 TYPE (XFEM_SKY_) , DIMENSION(*) :: CRKSKY
161 TYPE (STACK_PLY) :: STACK
162 TYPE (FAILWAVE_STR_) :: FAILWAVE
163 TYPE (group_param_) :: group_param
164 TYPE (DRAPE_) , DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
165 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
166 TYPE (NLOCAL_STR_) :: NLOC_DMG
167 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
168 TYPE (DT_), INTENT(IN) :: DT
169 type (glob_therm_) ,intent(inout) :: glob_therm
170C-----------------------------------------------
171C L o c a l V a r i a b l e s
172C-----------------------------------------------
173 INTEGER I,IGTYP,ICSEN,IXLAY,NXLAY,NLAYER,IFLAG,IUN,NPG,NPTT,IBID,
174 . IR,IS,IT,IPT,NG,L_DIRA,L_DIRB,J1,J2,ILEV,IGMAT,IPTHK,IREP,
175 . ACTIFXFEM,SEDRAPE,NUMEL_DRAPE
176 INTEGER MAT(MVSIZ),PID(MVSIZ),NDT(MVSIZ),NGL(MVSIZ),FWAVE(MVSIZ)
177C
178 my_real
179 . sti(mvsiz),stir(mvsiz),sigy(mvsiz),rho(mvsiz),
180 . x2(mvsiz),x3(mvsiz),x4(mvsiz),y2(mvsiz),y3(mvsiz),
181 . y4(mvsiz),z2(mvsiz),ssp(mvsiz),viscmx(mvsiz),
182 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
183 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
184 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
185 . vx13(mvsiz),vx24(mvsiz),vy13(mvsiz),vy24(mvsiz),
186 . vz13(mvsiz),vz24(mvsiz),thk02(mvsiz),
187 . x1g(mvsiz),x2g(mvsiz),x3g(mvsiz),x4g(mvsiz),
188 . y1g(mvsiz),y2g(mvsiz),y3g(mvsiz),y4g(mvsiz),
189 . z1g(mvsiz),z2g(mvsiz),z3g(mvsiz),z4g(mvsiz),
190 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
191 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz)
192 my_real
193 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),exz(mvsiz),eyz(mvsiz),
194 . kxx(mvsiz),kyy(mvsiz),kxy(mvsiz),px1(mvsiz),
195 . px2(mvsiz),py1(mvsiz),py2(mvsiz),thk0(mvsiz),
196 . off(mvsiz),nu(mvsiz),shf(mvsiz),area(mvsiz),
197 . g(mvsiz),ym(mvsiz),a11(mvsiz),a12(mvsiz),
198 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
199 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
200 . dt1c(mvsiz),dt2c(mvsiz),aldt(mvsiz),alpe(mvsiz),vhx(mvsiz),
201 . vhy(mvsiz),dsub(mvsiz,3,4),drsub(mvsiz,3,4),tsub(mvsiz),
202 . dtcsub(mvsiz),areas(mvsiz),a_i(mvsiz)
203 my_real
204 . h1(mvsiz),h2(mvsiz),h3(mvsiz),vol0(mvsiz),vol00(mvsiz),
205 . h11(mvsiz),h12(mvsiz),h13(mvsiz),h14(mvsiz),
206 . h21(mvsiz),h22(mvsiz),h23(mvsiz),h24(mvsiz),
207 . h31(mvsiz),h32(mvsiz),h33(mvsiz),h34(mvsiz),
208 . b11(mvsiz),b12(mvsiz),b13(mvsiz),b14(mvsiz),
209 . b21(mvsiz),b22(mvsiz),b23(mvsiz),b24(mvsiz),
210 . rx1(mvsiz),rx2(mvsiz),rx3(mvsiz),rx4(mvsiz),
211 . ry1(mvsiz),ry2(mvsiz),ry3(mvsiz),ry4(mvsiz),
212 . zcfac(mvsiz,2),gs(mvsiz),srh1(mvsiz),srh2(mvsiz),srh3(mvsiz),
213 . die(mvsiz),tempel(mvsiz),them(mvsiz,4),
214 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
215 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),a11r(mvsiz),
216 . thke0(mvsiz)
217 my_real
218 . bid,thkr
219C---
220 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
221 my_real,
222 . ALLOCATABLE, DIMENSION(:) :: dira,dirb,dir1_crk,dir2_crk
223 my_real,
224 . DIMENSION(:) ,POINTER :: dir_a,dir_b
225 TARGET :: dira,dirb
226! variables for heat transfer
227 my_real, dimension(mvsiz) :: fheat
228!
229C---
230 TYPE(BUF_LAY_) ,POINTER :: BUFLY
231 TYPE(G_BUFEL_) ,POINTER :: GBUF
232 TYPE(L_BUFEL_) ,POINTER :: LBUF
233 my_real,
234 . DIMENSION(:) ,POINTER :: offg,thkg,strag,forg,momg,
235 . eintg,epsdg,tempg,eintth,hourgg
236 DOUBLE PRECISION,
237 . DIMENSION(:) ,POINTER :: SMSTRG
238 my_real,
239 . DIMENSION(:,:), ALLOCATABLE :: varnl
240 INTEGER NPTTOT
241 INTEGER SDIR_A ! Size of DIR_A
242 INTEGER SDIR_B ! Size of DIR_B
243C=======================================================================
244 ibid = 0
245 iun = 1
246 bid = zero
247 npg = 0
248 ng = 1
249 ir = 1
250 is = 1
251 it = 1
252 sedrape = scdrape
253 numel_drape = numelc_drape
254 npttot = 1
255 ALLOCATE(varnl(nel,1))
256 varnl = zero
257C -----will put it in starter
258 IF (ismstr>=10) ismstr=4
259C
260 DO i=jft,jlt
261 mat(i) = ixc(1,i)
262 pid(i) = ixc(6,i)
263 ngl(i) = ixc(7,i)
264 ENDDO
265C
266 icsen = igeo(3,pid(1))
267 igtyp = igeo(11,pid(1))
268 igmat = igeo(98,pid(1))
269 irep = iparg(35)
270 actifxfem = iparg(70)
271C-----------------------------------------
272 gbuf => xfem_str%GBUF
273 nxlay = xfem_str%NLAY
274 nlayer = 1 ! only one current xfem layer passes to the cmain3 & mulawc
275C-----------------------------------------
276 ALLOCATE(elcrkini(nxlay*nel))
277 ALLOCATE(dir1_crk(nxlay*nel))
278 ALLOCATE(dir2_crk(nxlay*nel))
279 elcrkini = 0
280 dir1_crk = zero
281 dir2_crk = zero
282C
283 l_dira = xfem_str%BUFLY(1)%LY_DIRA
284 l_dirb = xfem_str%BUFLY(1)%LY_DIRB
285C
286 ALLOCATE (dira(nxlay*nel*l_dira))
287 ALLOCATE (dirb(nxlay*nel*l_dirb))
288 dira=zero
289 dirb=zero
290 sdir_a=nxlay*nel*l_dira
291 sdir_b=nxlay*nel*l_dirb
292 dir_a => dira(1:nxlay*nel*l_dira)
293 dir_b => dirb(1:nxlay*nel*l_dirb)
294C
295 DO ixlay=1,nxlay
296 nptt = xfem_str%BUFLY(ixlay)%NPTT
297 IF (l_dira == 0) THEN
298 dira = zero
299 ELSEIF (irep == 0) THEN
300 j1 = 1+(ixlay-1)*l_dira*nel
301 j2 = ixlay*l_dira*nel
302 dira(j1:j2) = xfem_str%BUFLY(ixlay)%DIRA(1:nel*l_dira)
303 ENDIF
304C
305 DO i=jft,jlt
306 sigy(i) = ep30
307 zcfac(i,1) = one
308 zcfac(i,2) = one
309 alpe(i) = one
310 tempel(i) = zero
311 ENDDO
312C---
313 ilev = nxel*(ixlay-1) + ixel
314C---
315 IF (igtyp == 1 .or. igtyp == 9) THEN
316 DO i=jft,jlt
317 thke0(i) = thke(i)
318 ENDDO
319 ELSEIF (igtyp == 51 .OR. igtyp == 52) THEN
320 ipthk = 1 + nxlay
321 thkr = stack%GEO(ipthk+ixlay,isubstack)
322 DO i=jft,jlt
323 thke0(i) = thke(i) * thkr ! layer thickness (real)
324 ENDDO
325 ELSE ! IGTYP == 11...
326 ipthk = 300
327 DO i=jft,jlt
328 thke0(i) = thke(i) * geo(ipthk+ixlay,pid(i))
329 ENDDO
330 ENDIF
331c
332 IF (nxlay > 1) THEN
333 lbuf => xfem_str%BUFLY(ixlay)%LBUF(ir,is,1)
334 bufly => xfem_str%BUFLY(ixlay)
335 offg => lbuf%OFF
336 smstrg => lbuf%SMSTR
337 thkg => lbuf%THK
338 strag => lbuf%STRA
339 forg => lbuf%FOR
340 momg => lbuf%MOM
341 eintg => lbuf%EINT
342 epsdg => lbuf%EPSD
343 tempg => lbuf%TEMP
344 eintth => lbuf%EINTTH
345 hourgg => bufly%HOURG
346 ELSEIF (nxlay == 1) THEN
347 offg => gbuf%OFF
348 smstrg => gbuf%SMSTR
349 thkg => gbuf%THK
350 strag => gbuf%STRA
351 forg => gbuf%FOR
352 momg => gbuf%MOM
353 eintg => gbuf%EINT
354 epsdg => gbuf%EPSD
355 tempg => gbuf%TEMP
356 eintth => gbuf%EINTTH
357 hourgg => gbuf%HOURG
358 ENDIF
359C
360 CALL ccoor3_crk(jft ,jlt ,nft ,ixc ,ngl ,
361 2 pid ,mat ,ilev ,iel_crk,iadc_crk,
362 3 offg ,off ,sigy ,thke0 ,thk0 ,
363 4 dt1c ,vl1 ,vl2 ,vl3 ,vl4 ,
364 5 vrl1 ,vrl2 ,vrl3 ,vrl4 ,x1g ,
365 6 x2g ,x3g ,x4g ,y1g ,y2g ,
366 7 y3g ,y4g ,z1g ,z2g ,z3g ,
367 8 z4g )
368c
369 CALL cnvec3(xfem_str,dir_a ,dir_b ,
370 1 jft ,jlt ,irep ,igtyp ,nxlay ,
371 2 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
372 3 y3g ,y4g ,z1g ,z2g ,z3g ,z4g ,
373 4 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
374 5 e3x ,e3y ,e3z ,nel )
375C
376 IF (ismstr /= 3) THEN
377 CALL cderi3(
378 1 jft, jlt, smstrg, offg,
379 2 sti, stir, area, px1,
380 3 px2, py1, py2, x2,
381 4 x3, x4, y2, y3,
382 5 y4, z2, x1g, x2g,
383 6 x3g, x4g, y1g, y2g,
384 7 y3g, y4g, z1g, z2g,
385 8 z3g, z4g, e1x, e1y,
386 9 e1z, e2x, e2y, e2z,
387 a e3x, e3y, e3z, vhx,
388 b vhy, a_i, ux1, ux2,
389 c ux3, ux4, uy1, uy2,
390 d uy3, uy4, nel, ismstr)
391 ELSE
392 CALL cpxpy3(jft ,jlt ,pm ,sti ,stir,
393 2 smstrg ,px1 ,px2 ,py1 ,py2 ,
394 3 ixc ,area ,x2 ,x3 ,x4 ,
395 4 y2 ,y3 ,y4 ,z2 ,thk0,
396 5 mat ,nel )
397 ENDIF
398C
399 CALL ccoef3(jft ,jlt ,pm ,mat ,geo ,
400 2 pid ,off ,area ,sti ,stir ,
401 3 shf ,thk0 ,thk02 ,nu ,
402 4 g ,ym ,a11 ,a12 ,thkg ,
403 5 ssp ,rho ,h1 ,h2 ,h3 ,
404 6 vol0 ,vol00 ,alpe ,gs ,mtn ,
405 7 ithk ,ismstr ,nptt ,kfts ,
406 8 srh1 ,srh2 ,srh3 ,igeo ,
407 9 a11r ,isubstack ,stack%PM)
408C
409 IF ((nodadt == 0 .AND. ismstr /= 3 .AND. idt1sh == 0) .OR.
410 . idtmin(3) /= 0 .OR. igtyp == 16)
411c CDLEN3 must be always called for tissue property/law for time step correction
412 . CALL cdlen3(jft ,jlt ,pm ,off ,area,
413 . x2 ,x3 ,x4 ,y2 ,y3 ,
414 . y4 ,aldt ,mat ,geo ,pid ,
415 . ihbe )
416 CALL cdefo3(jft,jlt,vl1,vl2,vl3,vl4,dt1c,px1,px2,py1,py2,area,
417 2 exx,eyy,exy,exz ,eyz ,x2 ,x3 ,x4 ,y2 ,y3,
418 3 y4 ,z2 ,vx1,vx2 ,vx3 ,vx4 ,vy1,vy2,vy3 ,vy4 ,
419 4 vz1,vz2,vz3,vz4 ,e1x ,e1y ,e1z,e2x,e2y ,e2z ,
420 5 e3x,e3y,e3z,ihbe)
421 CALL ccurv3(jft ,jlt ,vrl1,vrl2,vrl3,vrl4 ,px1,
422 1 px2 ,py1 ,py2 ,area,
423 2 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
424 3 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,
425 4 e3z ,kxx ,kyy ,kxy ,exz ,eyz ,
426 5 bid ,ismstr )
427 CALL cstra3(jft ,jlt ,strag ,shf ,area,
428 2 exx ,eyy ,exy ,exz ,eyz ,
429 3 kxx ,kyy ,kxy ,dt1c ,tani,
430 4 forg ,momg ,ismstr ,mtn ,
431 6 ihbe ,nft ,istrain ,ux1 ,ux2 ,
432 7 ux3 ,ux4 ,uy1 ,uy2 ,uy3 ,
433 8 uy4 ,px1 ,px2 ,py1 ,py2 ,
434 9 bid ,bid ,bid ,nel )
435C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
436 DO i = jlt,jft
437 tempel(i) = zero
438 ENDDO
439C
440 IF (jthe > 0) CALL tempcg(numnod, nel ,ixc ,temp ,tempel)
441C-----------------------------
442 IF ((itask==0).AND.(imon_mat==1)) CALL startime(timers,35)
443C-----------------------------
444 CALL cmain3(timers,
445 1 xfem_str ,jft ,jlt ,nft ,iparg ,
446 2 nel ,mtn ,ipla ,ithk ,group_param,
447 3 pm ,geo ,npf ,tf ,bufmat ,
448 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
449 5 area ,exx ,eyy ,exy ,exz ,
450 6 eyz ,kxx ,kyy ,kxy ,nu ,
451 7 off ,thk0 ,mat ,pid ,mat_elem ,
452 8 forg ,momg ,strag ,failwave ,fwave ,
453 9 thkg ,eintg ,iofc ,
454 a g ,a11 ,a12 ,vol0 ,indxof ,
455 b ngl ,zcfac ,shf ,gs ,epsdg ,
456 c kfts ,ihbe ,alpe ,
457 d dir_a ,dir_b ,igeo ,
458 e ipm ,ifailure ,npg ,fheat ,
459 f tempel ,die ,jthe ,iexpan ,tempg ,
460 g ibid ,bid ,
461 h bid ,bid ,bid ,bid ,bid ,
462 i bid ,bid ,bid ,e1x ,e1y ,
463 j e1z ,e2x ,e2y ,e2z ,e3x ,
464 k e3y ,e3z ,ibid ,table ,ixfem ,
465 l bid ,sensors ,bid ,elcrkini ,
466 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
467 n ismstr ,ir ,is ,nlayer ,nptt ,
468 o ixlay ,ixel ,isubstack ,stack ,
469 p bid ,itask ,drape_sh4n ,varnl ,nloc_dmg ,
470 r indx_drape ,thke, sedrape ,numel_drape,dt ,
471 q ncycle ,snpc , stf,nxlaymax ,
472 s idel7nok ,userl_avail ,maxfunc ,npttot ,sbufmat,
473 t sdir_a ,sdir_b ,gbuf%FOR_G)
474C-----------------------------
475 IF ((itask==0).AND.(imon_mat==1)) CALL stoptime(timers,35)
476C-----------------------------
477C FORCES ANTI-SABLIER
478C-----------------------------
479 DO i=jft,jlt
480 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
481 ENDDO
482 IF (nodadt /= 0 .AND. mtn ==58 )
483 . CALL cssp2a11(pm,mat(jft),ssp ,a11 ,jlt )
484c---------------------------------------------------
485 IF (nptt == 1) THEN
486 CALL mhvis3(jft ,jlt ,pm ,thkg ,hourgg ,
487 2 off ,px1 ,px2 ,py1 ,py2 ,
488 3 ixc ,dt1c ,ssp ,rho ,sti ,
489 4 eani ,geo ,pid ,stir ,mat ,
490 5 thk0 ,viscmx ,alpe ,ipartc ,partsav ,
491 6 ihbe ,nft ,ismstr ,rx1 ,
492 7 rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,
493 8 ry3 ,ry4 ,vx1 ,vx2 ,vx3 ,
494 9 vx4 ,vy1 ,vy2 ,vy3 ,vy4 ,
495 a vz1 ,vz2 ,vz3 ,vz4 ,b11 ,
496 b b12 ,b13 ,b14 ,b21 ,b22 ,
497 c b23 ,b24 ,area ,ym ,nu ,
498 d vhx ,vhy ,h11 ,h12 ,h13 ,
499 e h14 ,h21 ,h22 ,h23 ,h24 ,
500 f h31 ,h32 ,h33 ,h34 ,h1 ,
501 g h2 ,igeo ,nel ,mtn ,a11 )
502 ELSEIF (ihbe == 2) THEN
503 CALL chsti3(
504 1 jft ,jlt ,thkg ,hourgg ,off ,px1 ,
505 2 px2 ,py1 ,py2 ,sigy ,ixc ,dt1c ,
506 3 ssp ,rho ,sti ,z2 ,eani ,stir ,
507 4 shf ,thk0 ,thk02 ,viscmx ,g ,a11 ,
508 5 h1 ,h2 ,h3 ,ym ,nu ,alpe ,
509 6 vhx ,vhy ,vx1 ,vx2 ,vx3 ,vx4 ,vy1,
510 7 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,area ,
511 8 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
512 9 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
513 a rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4,
514 b ipartc,partsav,
515 c ihbe ,nft ,ismstr ,srh3, igtyp ,
516 d igmat ,a11r, nel)
517 ELSE
518 CALL chvis3(
519 2 jft ,jlt ,thkg,hourgg,off,px1 ,px2 ,py1 ,py2 ,
520 3 ixc ,dt1c,ssp,rho ,sti ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
521 4 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,area,thk0,vhx ,
522 5 vhy ,shf ,z2 ,eani ,stir,viscmx,g ,a11 ,
523 6 h1 ,h2 ,h3 ,ym ,nu ,thk02,alpe,h11 ,
524 7 h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
525 8 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
526 9 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
527 a ipartc,partsav,
528 b ihbe ,nft ,ismstr,kfts ,
529 c srh1, srh2, srh3 , igtyp ,
530 d igmat ,a11r ,nel)
531 ENDIF
532C--------------------------
533C BILANS PAR MATERIAU
534C--------------------------
535c IFLAG = MOD(NCYCLE,NCPRI)
536 IF (ipri>0) THEN
537 CALL cbilan(
538 1 jft, jlt, pm, v,
539 2 ixc, thkg, eintg, partsav,
540 3 area, mat, ipartc, x,
541 4 vr, vol0, vol00, thk0,
542 5 thk02, iun, off, nft,
543 6 gresav, grth, igrth, vl1,
544 7 vl2, vl3, vl4, vrl1,
545 8 vrl2, vrl3, vrl4, x1g,
546 9 x2g, x3g, x4g, y1g,
547 a y2g, y3g, y4g, z1g,
548 b z2g, z3g, z4g, ixfem,
549 c iexpan, eintth, itask, gbuf%VOL,
550 d actifxfem,igre,sensors,nel,gbuf%G_WPLA,
551 e gbuf%WPLA )
552 ENDIF
553C--------------------------
554C PAS DE TEMPS
555C--------------------------
556 IF (ismstr /= 3 .AND.(nodadt == 0 .OR. idtmin(3) /= 0)) THEN
557 CALL cdt3(jft ,jlt ,ym ,off ,dt2t ,
558 2 neltst ,ityptst,sti ,stir ,offg ,
559 3 dtcsub ,ndt ,dt2c ,ixc ,ssp ,
560 4 viscmx ,px1 ,px2 ,py1 ,py2 ,
561 5 vol0 ,vol00 ,rho ,aldt ,alpe ,
562 6 indxof ,ngl ,ismstr ,iofc ,msc ,
563 7 dmelc ,jsms ,gbuf%G_DT ,gbuf%DT)
564 ENDIF
565C----------------------------
566C FORCES INTERNES + ASSEMBLE
567C----------------------------
568 CALL cfint3(jft ,jlt ,forg ,momg ,thk0 ,thk02 ,
569 2 px1 ,px2 ,py1 ,py2 ,area ,z2 ,
570 3 f11 ,f12 ,f13 ,f14 ,f21 ,f22 ,
571 4 f23 ,f24 ,f31 ,f32 ,f33 ,f34 ,
572 5 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,
573 6 h31 ,h32 ,h33 ,b11 ,b12 ,b13 ,
574 7 b14 ,b21 ,b22 ,b23 ,b24 ,nel ,
575 8 m11 ,m12 ,m13 ,m14 ,m21 ,m22 ,
576 9 m23 ,m24 ,m31 ,m32 ,m33 ,m34 ,
577 a e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
578 b e3x ,e3y ,e3z ,ihbe ,nptt ,fzero )
579C-------------------------
580c Thermique des coques
581C--------------------------
582 IF (jthe /= 0) THEN
583 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1) THEN
584 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
585 . px1 ,px2 ,py1 ,py2 ,area ,dt1c ,
586 . temp ,tempel,fheat ,them ,glob_therm%THEACCFACT)
587 ELSE
588 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
589 . px1 ,px2 ,py1 ,py2 ,area ,dt1c ,
590 . temp ,tempel,die ,them ,glob_therm%THEACCFACT)
591 END IF
592 ENDIF
593C--------------------------
594C THERMAL TIME STEP --- to be added --- (see cforc3.F)
595C--------------------------
596C
597C a faire:
598cc IF(ISUB /= 0)THEN
599cc CALL CSUBF3(JFT ,JLT ,NDT ,AREAS,AREA,
600cc 4 F11 ,F12 ,F13 ,F14 ,F21 ,
601cc 5 F22 ,F23 ,F24 ,F31 ,F32 ,
602cc 6 F33 ,F34 ,M11 ,M12 ,M13 ,
603cc 7 M14 ,M21 ,M22 ,M23 ,M24 ,
604cc 8 M31 ,M32 ,M33 ,M34 )
605cc ENDIF
606C
607 IF (icsen > 0)
608 . CALL csens3(jft ,jlt ,pid ,igeo ,epsdg)
609C--------------------------
610C ASSEMBLE
611C--------------------------
612 IF (iparit == 1)
613 . CALL cupdt3_crk(
614 . jft ,jlt ,nft ,ixc ,off ,iadc ,
615 . f11 ,f21 ,f31 ,f12 ,f22 ,f32 ,
616 . f13 ,f23 ,f33 ,f14 ,f24 ,f34 ,
617 . m11 ,m21 ,m31 ,m12 ,m22 ,m32 ,
618 . m13 ,m23 ,m33 ,m14 ,m24 ,m34 ,
619 . sti ,stir ,fsky ,elcutc,iadc_crk,iel_crk,
620 . ilev ,inod_crk,offg,eintg,partsav,ipartc,
621 . ixlay,crksky)
622C-------------------------
623 ENDDO ! DO IXLAY=1,NXLAY
624C-------------------------
625 IF (ALLOCATED(dira)) DEALLOCATE(dira)
626 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
627 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
628 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
629 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
630 IF (ALLOCATED(varnl)) DEALLOCATE(varnl)
631C-------------------------
632 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)
Definition cbilan.F:52
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)
Definition ccoef3.F:39
subroutine ccoor3_crk(jft, jlt, nft, ixc, ngl, pid, mat, ilev, iel_crk, iadc_crk, offg, off, sigy, thke, thk0, dt1c, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)
Definition ccoor3_crk.F:38
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)
Definition ccurv3.F:35
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)
Definition cdefo3.F:35
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)
Definition cderi3.F:43
subroutine cdlen3(jft, jlt, pm, off, area, x2, x3, x4, y2, y3, y4, aldt, mat, geo, pid, ihbe)
Definition cdlen3.F:33
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)
Definition cdt3.F:36
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)
Definition cfint3.F:40
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)
Definition chsti3.F:42
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)
Definition chvis3.F:42
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)
Definition cmain3.F:87
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)
Definition cnvec3.F:40
#define my_real
Definition cppsort.cpp:32
subroutine cpxpy3(jft, jlt, pm, sti, smstr, px1, px2, py1, py2, stir, ixc, area, x2, x3, x4, y2, y3, y4, z2, thk0, mat, nel)
Definition cpxpy3.F:34
subroutine csens3(jft, jlt, pid, igeo, epsp)
Definition csens3.F:38
subroutine cssp2a11(pm, imat, ssp, a11, nel)
Definition cssp2a11.F:32
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)
Definition cstra3.F:37
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)
Definition mhvis3.F:45
integer scdrape
Definition drape_mod.F:92
integer numelc_drape
Definition drape_mod.F:92
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135
subroutine tempcg(numnod, nel, ixc, temp, tempel)
Definition tempcg.F:32
subroutine thermc(jft, jlt, pm, mat, thk, ixc, px1, px2, py1, py2, area, dt1c, tempnc, tempel, die, fphi, theaccfact)
Definition thermc.F:34
subroutine cupdt3_crk(jft, jlt, nft, ixc, off, iadc, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, m11, m21, m31, m12, m22, m32, m13, m23, m33, m14, m24, m34, sti, stir, fsky, elcutc, iadc_crk, iel_crk, ilev, inod_crk, offg, eint, partsav, ipartc, ilay, crksky)
Definition xfemfsky.F:39