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