OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
czforc3.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!|| czforc3 ../engine/source/elements/shell/coquez/czforc3.F
25!||--- called by ------------------------------------------------------
26!|| forintc ../engine/source/elements/forintc.F
27!||--- calls -----------------------------------------------------
28!|| cbilan ../engine/source/elements/shell/coque/cbilan.F
29!|| cfint_reg ../engine/source/elements/shell/coque/cfint_reg.F
30!|| cmain3 ../engine/source/materials/mat_share/cmain3.F
31!|| cncoef3b ../engine/source/elements/sh3n/coquedk/cncoef3.F
32!|| cncoefort ../engine/source/elements/sh3n/coquedk/cncoef3.F
33!|| cndt3 ../engine/source/elements/sh3n/coquedk/cndt3.F
34!|| crklayer4n_adv ../engine/source/elements/xfem/crklayer4n_adv.F
35!|| crklayer4n_ini ../engine/source/elements/xfem/crklayer4n_ini.F
36!|| crklen4n_adv ../engine/source/elements/xfem/crklen4n_adv.F
37!|| crkoffc ../engine/source/elements/xfem/precrklay.F
38!|| cupdt3f ../engine/source/elements/shell/coque/cupdt3.F
39!|| cupdtn3 ../engine/source/elements/shell/coque/cupdtn3.F
40!|| cupdtn3p ../engine/source/elements/shell/coque/cupdtn3.F
41!|| czcorc1 ../engine/source/elements/shell/coquez/czcorc.F
42!|| czcorcht ../engine/source/elements/shell/coquez/czcorc.F
43!|| czcorct ../engine/source/elements/shell/coquez/czcorc.F
44!|| czdef ../engine/source/elements/shell/coquez/czdef.F
45!|| czdefrz ../engine/source/elements/shell/coquez/czdef.F
46!|| czdefrzt ../engine/source/elements/shell/coquez/czdef.F
47!|| czdeft ../engine/source/elements/shell/coquez/czdef.F
48!|| czdeftw ../engine/source/elements/shell/coquez/czdef.F
49!|| czfintce ../engine/source/elements/shell/coquez/czfintce.F
50!|| czfintcrz ../engine/source/elements/shell/coquez/czfintce.F
51!|| czfintn1 ../engine/source/elements/shell/coquez/czfintn.F
52!|| czfintn_or ../engine/source/elements/shell/coquez/czfintn.F
53!|| czfintnm ../engine/source/elements/shell/coquez/czfintn.F
54!|| czfintnm1 ../engine/source/elements/shell/coquez/czfintn.F
55!|| czfintnrz ../engine/source/elements/shell/coquez/czfintn.F
56!|| czfintnrz_or ../engine/source/elements/shell/coquez/czfintn.F
57!|| czproj1 ../engine/source/elements/shell/coquez/czproj.F
58!|| czstra3 ../engine/source/elements/shell/coquez/czstra3.F
59!|| czstrah3 ../engine/source/elements/shell/coquez/czstrah3.F
60!|| dttherm ../engine/source/time_step/dttherm.F90
61!|| precrklay ../engine/source/elements/xfem/precrklay.F
62!|| set_failwave_nod4 ../engine/source/materials/fail/failwave/set_failwave_nod4.F
63!|| set_failwave_sh4n ../engine/source/materials/fail/failwave/upd_failwave_sh4n.F
64!|| startime ../engine/source/system/timer_mod.F90
65!|| stoptime ../engine/source/system/timer_mod.F90
66!|| tempcg ../engine/source/materials/mat_share/tempcg.F
67!|| thermc ../engine/source/materials/mat_share/thermc.F
68!||--- uses -----------------------------------------------------
69!|| crackxfem_mod ../engine/share/modules/crackxfem_mod.F
70!|| drape_mod ../engine/share/modules/drape_mod.F
71!|| dt_mod ../engine/source/modules/dt_mod.F
72!|| dttherm_mod ../engine/source/time_step/dttherm.F90
73!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
74!|| failwave_mod ../common_source/modules/failwave_mod.F
75!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
76!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
77!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
78!|| sensor_mod ../common_source/modules/sensor_mod.F90
79!|| stack_mod ../engine/share/modules/stack_mod.F
80!|| table_mod ../engine/share/modules/table_mod.F
81!|| timer_mod ../engine/source/system/timer_mod.F90
82!||====================================================================
83 SUBROUTINE czforc3(TIMERS,
84 1 ELBUF_STR, JFT, JLT, NFT,
85 2 NPT, ITAB, MTN,
86 3 IPRI, ITHK, NELTST, ISTRAIN,
87 4 IPLA, DT1, DT2T,
88 5 PM, GEO, PARTSAV, IXC,
89 6 ITYPTST, BUFMAT, TF, NPF,
90 7 IADC, FAILWAVE, X,
91 8 DR, V, VR, F,
92 9 M, STIFN, STIFR, FSKY,
93 A TANI, INDXOF, ISMSTR,
94 B GROUP_PARAM, IPARTC, THKE, NVC,
95 C IOFC, IHBE, F11, F12,
96 D F13, F14, F21, F22,
97 E F23, F24, F31, F32,
98 F F33, F34, M11, M12,
99 G M13, M14, M21, M22,
100 H M23, M24, M31, M32,
101 I M33, M34, KFTS, FZERO,
102 J IGEO, IPM, IFAILURE, ITASK,
103 K JTHE, TEMP, FTHE, FTHESKY,
104 L IEXPAN, GRESAV, GRTH, IGRTH,
105 M XEDGE4N, MSC, DMELC, JSMS,
106 N TABLE, IPARG, MAT_ELEM, IXFEM,
107 O KNOD2ELC, SENSORS, ELCUTC, INOD_CRK,
108 P IEL_CRK, NODENR, IADC_CRK,
109 Q NODEDGE, CRKNODIAD, CONDN, CONDNSKY,
110 R STACK, ISUBSTACK, XFEM_STR, CRKEDGE,
111 S DRAPE_SH4N, NEL, NLOC_DMG, INDX_DRAPE,
112 T IGRE, JTUR, DT, NCYCLE,
113 U SNPC, STF, GLOB_THERM, IDEL7NOK,
114 U USERL_AVAIL, MAXFUNC, SBUFMAT)
115C-----------------------------------------------
116C M o d u l e s
117C-----------------------------------------------
118 USE timer_mod
119 USE table_mod
120 USE mat_elem_mod
121 USE crackxfem_mod
122 USE stack_mod
123 USE failwave_mod
124 USE nlocal_reg_mod
125 USE drape_mod
126 USE sensor_mod
127 USE elbufdef_mod
128 USE dt_mod
129 use glob_therm_mod
130 use dttherm_mod
131C-----------------------------------------------
132C I M P L I C I T T Y P E S
133C-----------------------------------------------
134#include "implicit_f.inc"
135C-----------------------------------------------
136C G L O B A L P A R A M E T E R S
137C-----------------------------------------------
138#include "param_c.inc"
139#include "mvsiz_p.inc"
140C-----------------------------------------------
141C C O M M O N B L O C K S
142C-----------------------------------------------
143#include "com_xfem1.inc"
144#include "scr14_c.inc"
145#include "scr18_c.inc"
146#include "parit_c.inc"
147#include "timeri_c.inc"
148#include "impl1_c.inc"
149#include "com04_c.inc"
150C-----------------------------------------------
151C D U M M Y A R G U M E N T S
152C-----------------------------------------------
153 TYPE(timer_), INTENT(INOUT) :: TIMERS
154 INTEGER , INTENT(IN) :: NCYCLE ! Current cycles number
155 INTEGER,INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
156 INTEGER,INTENT(IN) :: MAXFUNC ! Maximum number of functions
157 INTEGER,INTENT(INOUT) :: IDEL7NOK ! Element deletion flag for IDEL flag in contact interfaces
158 INTEGER,INTENT(IN) :: SBUFMAT ! Size of BUFMAT
159 INTEGER,INTENT(IN) :: STF ! Size of TF
160 INTEGER,INTENT(IN) :: SNPC ! Size of NPC
161 INTEGER JFT,JLT,NFT,NPT,MTN,IPRI,ITHK,NELTST,
162 . ITYPTST ,ISTRAIN ,IPLA,NVC,JSMS,ITASK,IEXPAN,IXFEM,
163 . IOFC,IHBE,KFTS,ISMSTR,IFAILURE,JTHE,ISUBSTACK,NEL,N1,N2,N3,N4
164 INTEGER IXC(NIXC,*),IADC(4,*),IPARTC(*),NPF(*),IGEO(NPROPGI,*),
165 . IPM(NPROPMI,*),INDXOF(MVSIZ),GRTH(*),IGRTH(*),IPARG(*),ITAB(*),
166 . KNOD2ELC(*),XEDGE4N(4,*),
167 . ELCUTC(2,*),INOD_CRK(*),IEL_CRK(*),
168 . NODENR(*),IADC_CRK(4,*),NODEDGE(2,*),CRKNODIAD(*),INDX_DRAPE(SCDRAPE)
169 INTEGER :: IGRE,JTUR
170C REAL OU REAL*8
171 my_real
172 . F11(MVSIZ), F12(MVSIZ), F13(MVSIZ), F14(MVSIZ),
173 . F21(MVSIZ), F22(MVSIZ), F23(MVSIZ), F24(MVSIZ),
174 . F31(MVSIZ), F32(MVSIZ), F33(MVSIZ), F34(MVSIZ),
175 . M11(MVSIZ), M12(MVSIZ), M13(MVSIZ), M14(MVSIZ),
176 . M21(MVSIZ), M22(MVSIZ), M23(MVSIZ), M24(MVSIZ),
177 . M31(MVSIZ), M32(MVSIZ), M33(MVSIZ), M34(MVSIZ),
178 . TF(*), PM(NPROPM,*),GEO(NPROPG,*),PARTSAV(*),
179 . BUFMAT(*), X(3,*),DR(*),V(3,*),VR(3,*),F(3,*),M(3,*),
180 . STIFN(*), STIFR(*),FSKY(*),TANI(6,*),THKE(*),
181 . FZERO(3,4,*),TEMP(*),FTHE(*),FTHESKY(*),GRESAV(*),
182 . MSC(*), DMELC(*),CONDN(*),CONDNSKY(*)
183 my_real DT1, DT2T
184 TYPE(TTABLE) TABLE(*)
185 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
186 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
187 TYPE (ELBUF_STRUCT_), DIMENSION(NXEL) :: XFEM_STR
188 TYPE (XFEM_EDGE_) , DIMENSION(NXLAYMAX) :: CRKEDGE
189 TYPE (STACK_PLY) :: STACK
190 TYPE (FAILWAVE_STR_) :: FAILWAVE
191 TYPE (GROUP_PARAM_) :: GROUP_PARAM
192 TYPE (DRAPE_) , DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
193 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
194 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
195 TYPE (DT_) ,INTENT(IN) :: DT
196 type (glob_therm_) ,intent(inout) :: glob_therm
197C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
198C L O C A L V A R I A B L E S
199C--------------------------------
200 LOGICAL PLAT(MVSIZ)
201 INTEGER
202 . i,j,ir,is,mx,nnod,nupar,nlay,nxlay,ilay,npg,ixel,ifailwave,
203 . ibid,isrot,ng,ixfem2,l_dira,l_dirb,j1,j2,iorth,igtyp,igmat,ixlay,
204 . npttot,irep,ipout,idrape,nptt,it,actifxfem,sedrape,numel_drape
205 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),FWAVE_EL(NEL)
206 PARAMETER (NNOD = 4)
207 my_real
208 . rh0(mvsiz),ll(mvsiz),
209 . vl13(mvsiz,3), vl24(mvsiz,3), vlhi(mvsiz,3), rlxyz(mvsiz,8),
210 . x13(mvsiz), x24(mvsiz), y13(mvsiz), y24(mvsiz),
211 . mx13(mvsiz), mx23(mvsiz), mx34(mvsiz),
212 . my13(mvsiz), my23(mvsiz), my34(mvsiz), z1(mvsiz),z2(mvsiz),
213 . vq(mvsiz,9), vdef(mvsiz,8), off(mvsiz), dhg(mvsiz,6),
214 . area(mvsiz), vqn(mvsiz,12), l13(mvsiz), l24(mvsiz),
215 . zcfac(mvsiz,2), a_i(mvsiz), thk02(mvsiz),
216 . exx(mvsiz) ,eyy(mvsiz) ,exy(mvsiz) ,exz(mvsiz) ,eyz(mvsiz),
217 . kxx(mvsiz) ,kyy(mvsiz) ,kxy(mvsiz) ,sigy(mvsiz),
218 . dt1c(mvsiz),ssp(mvsiz) ,viscmx(mvsiz),rho(mvsiz) ,
219 . nu(mvsiz) ,g(mvsiz) ,a11(mvsiz) ,a12(mvsiz) ,vol0(mvsiz),
220 . thk0(mvsiz),sti(mvsiz) ,stir(mvsiz) ,shf(mvsiz) ,
221 . vf(mvsiz,12),vm(mvsiz,8),gs(mvsiz) ,fac1(mvsiz),
222 . alpe(mvsiz),ym(mvsiz) ,bid,facn(mvsiz,2),
223 . lxyz(mvsiz,8),dd(mvsiz,6),db(mvsiz,12),amu(mvsiz),
224 . gsr(mvsiz), a11sr(mvsiz), a12sr(mvsiz), nusr(mvsiz),
225 . shfsr(mvsiz),px2(mvsiz),py1(mvsiz),py2(mvsiz),px1(mvsiz),
226 . die(mvsiz), tempel(mvsiz),them(mvsiz,4),
227 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
228 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
229 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
230 . rlz(mvsiz,4),vhgzk(mvsiz,5),vhgze(mvsiz,5),vrlz(mvsiz),
231 . bm0rz(mvsiz,4,4),bmkrz(mvsiz,4,4),bmerz(mvsiz,4,4),
232 . vmz(mvsiz,4),krz(mvsiz),diz(mvsiz,3),
233 . x1g(mvsiz), x2g(mvsiz), x3g(mvsiz), x4g(mvsiz),
234 . y1g(mvsiz), y2g(mvsiz), y3g(mvsiz), y4g(mvsiz),
235 . z1g(mvsiz), z2g(mvsiz), z3g(mvsiz), z4g(mvsiz),
236 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
237 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
238 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
239 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
240 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
241 . vrx1(mvsiz),vrx2(mvsiz),vrx3(mvsiz),vrx4(mvsiz),
242 . vry1(mvsiz),vry2(mvsiz),vry3(mvsiz),vry4(mvsiz),
243 . vrz1(mvsiz),vrz2(mvsiz),vrz3(mvsiz),vrz4(mvsiz),
244 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
245 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
246 . hm(mvsiz,6), hf(mvsiz,6), hc(mvsiz,2),hmfor(mvsiz,6),
247 . conde(mvsiz),a11r(mvsiz),xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),
248 . yl2(mvsiz),yl3(mvsiz),yl4(mvsiz)
249 my_real
250 . areat(mvsiz),x13t(mvsiz) ,y13t(mvsiz), x24t(mvsiz),y24t(mvsiz),
251 . mx13t(mvsiz), mx23t(mvsiz), mx34t(mvsiz),
252 . my13t(mvsiz), my23t(mvsiz), my34t(mvsiz), z1t(mvsiz),
253 . a_it(mvsiz),f_def(mvsiz,8), u13(mvsiz,2),u24(mvsiz,2),
254 . axyz(mvsiz,4),wxy(mvsiz),fac58(mvsiz,2)
255 my_real , DIMENSION (NEL) :: zoffset
256 my_real :: dtinv,asrate,eps_m2,eps_k2
257 my_real, dimension(nel) :: epsd_pg
258 my_real, dimension(mvsiz) :: fheat ! variable for heat transfer
259!
260C--- Variables pour le non-local
261 INTEGER :: NDDL, K, INOD(4),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
262 . IPOS(4), L_NLOC, IMAT, INLOC,IINT
263 my_real, DIMENSION(:,:), ALLOCATABLE :: VAR_REG
264 my_real, DIMENSION(:), POINTER :: BPRELD,DNL,UVAR
265C---
266 INTEGER, DIMENSION(NEL) :: OFFLY
267 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
268 my_real, ALLOCATABLE, DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
269 my_real, DIMENSION(:) ,POINTER :: DIR_A,DIR_B,CRKDIR,CRKLEN,DADV
270 TARGET :: DIRA,DIRB
271C-----
272 TYPE(BUF_LAY_) ,POINTER :: BUFLY
273 TYPE(G_BUFEL_) ,POINTER :: GBUF
274 TYPE(L_BUFEL_) ,POINTER :: LBUF
275 TYPE(L_BUFEL_DIR_) ,POINTER :: LBUF_DIR
276 INTEGER SDIR_A ! Size of DIR_A
277 INTEGER SDIR_B ! Size of DIR_B
278C------------|---------|------------------------------------------------------
279C ZCFAC(1) AVERAGE ETAN/E
280C ZCFAC(2) MIN(ETAN/E)
281C DEFAULT VALUES SET TO 1.
282C=======================================================================
283 gbuf => elbuf_str%GBUF
284 idrape = elbuf_str%IDRAPE
285C-----
286 ibid = 0
287 bid = zero
288 isrot = iparg(41)
289 irep = iparg(35)
290 inloc = iparg(78)
291 iint = iparg(36)
292 actifxfem = iparg(70)
293 nlay = elbuf_str%NLAY
294 sedrape = scdrape
295 numel_drape = numelc_drape
296 tempel(:) = zero
297 fheat(:) = zero
298c
299c NPT = MAX(NLAY,NPTT) --> set to = IPARG(6) , keeping it original
300c to allow for NPT = 0 (global LAW_3
301 ixel = 0
302 ixlay = 0
303 npg = 0
304 ir = 1
305 is = 1
306 ng = 1
307C
308 npttot = 0
309 DO ilay=1,nlay
310 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
311 ENDDO
312 uvar => elbuf_str%BUFLY(1)%MAT(ir,is,1)%VAR
313!-------------------------------------------
314! Tableau pour la variable non-locale
315 nddl = npttot
316 ALLOCATE(var_reg(nel,nddl))
317!-------------------------------------------
318 IF (npt == 0) npttot = npt ! compatibility with global integration
319c-------------------------------------
320 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
321 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
322 igtyp = igeo(11,ixc(6,1))
323 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52)) THEN
324 ALLOCATE(dira(npttot*nel*l_dira))
325 ALLOCATE(dirb(npttot*nel*l_dirb))
326 IF (l_dira == 0) THEN
327 CONTINUE
328 ELSEIF (irep == 0) THEN
329 npttot = 0
330 DO ilay=1,nlay
331 nptt = elbuf_str%BUFLY(ilay)%NPTT
332 DO it=1,nptt
333 j = npttot + it
334 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
335 j1 = 1+(j-1)*l_dira*nel
336 j2 = j*l_dira*nel
337 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
338 ENDDO
339 npttot = npttot + nptt
340 ENDDO
341 ENDIF
342 sdir_a=npttot*nel*l_dira
343 sdir_b=npttot*nel*l_dirb
344 dir_a => dira(1:npttot*nel*l_dira)
345 dir_b => dirb(1:npttot*nel*l_dirb)
346 ELSE ! idrape
347 sdir_a=nlay*nel*l_dira
348 sdir_b=nlay*nel*l_dirb
349 ALLOCATE(dira(nlay*nel*l_dira))
350 ALLOCATE(dirb(nlay*nel*l_dirb))
351 dira=zero
352 dirb=zero
353 IF (l_dira == 0) THEN
354 CONTINUE
355 ELSEIF (irep == 0) THEN
356 DO j=1,nlay
357 j1 = 1+(j-1)*l_dira*nel
358 j2 = j*l_dira*nel
359 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
360 ENDDO
361 ENDIF
362 sdir_a=nlay*nel*l_dira
363 sdir_b=nlay*nel*l_dirb
364 dir_a => dira(1:nlay*nel*l_dira)
365 dir_b => dirb(1:nlay*nel*l_dirb)
366 ENDIF ! IDRAPE
367c-------------------------------------
368 DO i=jft,jlt
369 mat(i) = ixc(1,i)
370 pid(i) = ixc(6,i)
371 ngl(i) = ixc(7,i)
372 ENDDO
373 DO i=jft,jlt
374 sigy(i) = ep30
375 zcfac(i,1) = one
376 zcfac(i,2) = one
377 alpe(i) = one
378 ENDDO
379C
380 DO i=jft,jlt
381 fac1(i) = geo(17,pid(i))
382 vf(i,1:12) =zero
383 vm(i,1:8) =zero
384 ENDDO
385C
386 imat = ixc(1,jft)
387 igtyp = igeo(11,pid(1))
388 igmat = igeo(98,pid(1))
389c--------------------------------------------
390c Front wave
391c--------------------------------------------
392 ifailwave = iparg(79)
393 IF (ifailwave > 0) THEN
394 fwave_el(:) = zero
395 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
396 DO i=2,nlay
397 DO j=1,nel
398 offly(j) = max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
399 ENDDO
400 ENDDO
401 dadv => gbuf%DMG
402 CALL set_failwave_sh4n(failwave ,fwave_el ,dadv ,
403 . nel ,ixc ,itab ,ngl ,offly )
404 ENDIF
405c-------------------------------------
406C CALCULS PRELIMINAIRES GLOBAL-->LOCAL
407C-----------------------------------------
408C crack xfem
409c-------------------------------------
410 ixfem2 = 0
411 nxlay = nlay
412 IF (ixfem > 0) THEN
413 ALLOCATE(elcrkini(nxlaymax*mvsiz))
414 ALLOCATE(dir1_crk(nxlaymax*mvsiz))
415 ALLOCATE(dir2_crk(nxlaymax*mvsiz))
416 dir1_crk = zero
417 dir2_crk = zero
418 elcrkini = 0
419 IF (nlevset > 0) THEN
420 CALL precrklay(jft ,jlt ,nft ,nxlay ,elcrkini,
421 . iel_crk,inod_crk,nodenr ,crkedge,xedge4n )
422 ENDIF
423 ELSE
424 ALLOCATE(elcrkini(0))
425 ALLOCATE(dir1_crk(0))
426 ALLOCATE(dir2_crk(0))
427 ENDIF ! IXFEM
428C--------------------
429 CALL czcorc1(numnod,numelc ,elbuf_str,
430 1 jft ,jlt ,x ,v ,vr ,
431 2 ixc ,pm ,plat ,area ,
432 3 a_i ,vl13 ,vl24 ,vlhi ,rlxyz ,
433 4 vqn ,vq ,ll ,l13 ,l24 ,
434 5 x13 ,x24 ,y13 ,y24 ,mx13 ,
435 6 mx23 ,mx34 ,my13 ,my23 ,my34 ,
436 7 z1 ,lxyz ,dd ,db ,gbuf%SMSTR,
437 9 irep ,npt ,nlay ,ismstr ,
438 a dir_a ,dir_b ,gbuf%OFF,rlxyz ,lxyz ,
439 b facn ,py1 ,px2 ,py2 ,r11 ,
440 c r12 ,r13 ,r21 ,r22 ,r23 ,
441 d r31 ,r32 ,r33 ,rlz ,isrot ,
442 e ixfem2 ,vx1 ,vx2 ,vx3 ,vx4 ,
443 f vy1 ,vy2 ,vy3 ,vy4 ,vz1 ,
444 g vz2 ,vz3 ,vz4 ,vrx1 ,vrx2 ,
445 h vrx3 ,vrx4 ,vry1 ,vry2 ,vry3 ,
446 i vry4 ,vrz1 ,vrz2 ,vrz3 ,vrz4 ,
447 j x1g ,x2g ,x3g ,x4g ,y1g ,
448 k y2g ,y3g ,y4g ,z1g ,z2g ,
449 l z3g ,z4g ,thke ,diz ,ux1 ,
450 m ux2 ,ux3 ,ux4 ,uy1 ,uy2 ,
451 n uy3 ,uy4 ,xl2 ,xl3 ,xl4 ,
452 o yl2 ,yl3 ,yl4 ,vl1 ,vl2 ,
453 p vl3 ,vl4 ,nel ,z2 )
454C
455 CALL cncoef3b(jft ,jlt ,pm ,mat ,geo ,
456 2 pid ,area ,shf ,thk0 ,
457 3 thk02 ,nu ,g ,ym ,
458 4 a11 ,a12 ,gbuf%THK,thke ,ssp ,
459 5 rho ,vol0 ,gs ,mtn ,ithk ,
460 6 npttot ,dt1c ,dt1 ,ihbe ,amu ,
461 7 gsr ,a11sr ,a12sr ,nusr ,shfsr ,
462 8 krz ,igeo ,a11r , isubstack , stack%PM,
463 9 mat_elem%MAT_PARAM(imat)%UPARAM ,dira ,dirb ,
464 a uvar ,fac58 ,nel ,zoffset )
465C
466 CALL cncoefort(jft ,jlt ,pm ,mat ,geo ,
467 1 pid ,mtn ,npttot ,hm ,hf ,
468 2 hc ,hmfor ,iorth ,dir_a ,igeo ,
469 3 isubstack,stack,elbuf_str ,nlay ,gbuf%THK,
470 4 drape_sh4n ,nft ,nel ,indx_drape , thke,
471 5 sedrape,numel_drape ,mat_elem )
472C----------------------------------
473C CALCUL VITESSE DE DEFORMATION
474C----------------------------------
475 CALL czdef(jft ,jlt ,area ,a_i ,vl13 ,vl24 ,
476 2 vlhi ,rlxyz ,vdef ,dhg ,x13 ,
477 3 x24 ,y13 ,y24 ,mx13 ,mx23 ,mx34 ,
478 4 my13 ,my23 ,my34 ,z1 ,dt1 ,off ,
479 5 gbuf%OFF,rlxyz )
480 IF (isrot > 0) THEN
481 CALL czdefrz(jft ,jlt ,area ,a_i ,rlz ,
482 1 vdef ,vhgzk ,vhgze ,x13 ,x24 ,
483 2 y13 ,y24 ,mx13 ,mx23 ,mx34 ,
484 3 my13 ,my23 ,my34 ,z1 ,dhg ,
485 4 bm0rz ,bmkrz ,bmerz ,vl13 ,vl24 ,
486 5 vrlz )
487 ENDIF
488 IF (ismstr == 10 ) THEN
489 CALL czcorct(elbuf_str,
490 1 jft ,jlt ,x ,v ,vr ,
491 2 ixc ,pm ,gbuf%OFF,areat ,a_it ,
492 3 u13 ,u24 ,dr ,axyz ,vq ,
493 4 x13t ,x24t ,y13t ,y24t ,mx13t ,
494 5 mx23t ,mx34t ,my13t ,my23t ,my34t ,
495 6 z1t ,gbuf%SMSTR,thke,npttot ,ismstr ,
496 7 isrot ,lxyz ,z1 ,vqn ,nel )
497C
498 CALL czdeft(jft ,jlt ,u13 ,u24 ,axyz ,
499 2 f_def,x13t ,x24t,y13t ,y24t ,
500 3 z1t ,a_it )
501 IF (isrot > 0) THEN
502 CALL czdefrzt(jft ,jlt ,areat,a_it ,axyz ,
503 1 f_def,x13t,x24t ,y13t ,y24t ,
504 2 mx13t,mx23t,mx34t ,my13t,my23t,
505 3 my34t,z1t )
506 END IF
507 CALL czdeftw(jft ,jlt ,a_i ,vl13 ,vl24,
508 2 rlxyz,x13 ,x24 ,y13 ,y24 ,
509 3 z1 ,wxy)
510 END IF !(ISMSTR == 10 ) THEN
511C----------------------------------
512C CALCUL DES DEFORMATIONS
513C----------------------------------
514 CALL czstra3(jft ,jlt ,nft ,vdef ,gbuf%STRA,
515 2 exx ,eyy ,exy ,exz ,eyz ,
516 3 kxx ,kyy ,kxy ,dt1c ,tani ,
517 4 iepsdot,istrain,ux1 ,ux2 ,ux3 ,
518 5 ux4 ,uy1 ,uy2 ,uy3 ,uy4 ,
519 6 y24 ,px2 ,py1 ,py2 ,area ,
520 7 ismstr ,mtn ,wxy ,f_def,gbuf%STRW,
521 8 nel )
522 IF (gbuf%G_STRPG > gbuf%G_STRA) THEN
523 CALL czstrah3(jft ,jlt ,gbuf%STRPG,dhg ,a_i ,
524 3 mx23 ,mx34 ,my23 ,my34 ,dt1c ,
525 4 exx ,eyy ,exy ,exz ,eyz ,
526 3 kxx ,kyy ,kxy ,nel )
527 END IF
528 IF (npttot == 1 .AND. mtn==58) THEN
529 CALL czcorcht(elbuf_str,
530 1 jft ,jlt ,x ,v ,vr ,
531 2 ixc ,pm ,gbuf%OFF,
532 3 vq ,gbuf%HOURG,thke ,npttot ,ismstr ,
533 7 lxyz ,z2 ,iint ,nel )
534 END IF
535c-------------------------------------------
536c COMPUTE Regularized non local variable in Gauss point
537c-------------------------------------------
538 IF (inloc > 0) THEN
539 l_nloc = nloc_dmg%L_NLOC
540 dnl => nloc_dmg%DNL(1:l_nloc) ! DNL = non local variable increment
541 DO i=jft,jlt
542 nc1(i) = ixc(2,i)
543 nc2(i) = ixc(3,i)
544 nc3(i) = ixc(4,i)
545 nc4(i) = ixc(5,i)
546 ENDDO
547 DO k = 1,nddl
548#include "vectorize.inc"
549 DO i=jft,jlt
550 inod(1) = nloc_dmg%IDXI(nc1(i))
551 inod(2) = nloc_dmg%IDXI(nc2(i))
552 inod(3) = nloc_dmg%IDXI(nc3(i))
553 inod(4) = nloc_dmg%IDXI(nc4(i))
554 ipos(1) = nloc_dmg%POSI(inod(1))
555 ipos(2) = nloc_dmg%POSI(inod(2))
556 ipos(3) = nloc_dmg%POSI(inod(3))
557 ipos(4) = nloc_dmg%POSI(inod(4))
558 var_reg(i,k) = fourth*(dnl(ipos(1)+k-1) + dnl(ipos(2)+k-1)
559 . + dnl(ipos(3)+k-1) + dnl(ipos(4)+k-1))
560 ENDDO
561 ENDDO
562 ENDIF
563!-------------------------------------------------------------------------------
564! global element strain rate (shell energy equivalent)
565!-----------------------------------------------------------
566! e = 1/t integ[1/2 e (eps_m + k z)^2 dz ]
567! e = 1/2 e eps_eq^2
568! eps_eq = sqrt[ eps_m^2 + 1/12 k^2t^2 ]
569!-------------------------------------------------------------------------------
570 dtinv = dt1 / max(dt1**2,em20) ! inverse of dt
571 asrate = one ! to be changed for default value
572#include "vectorize.inc"
573 do i = 1,nel
574 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
575 . * one_over_9*gbuf%thk(i)**2
576 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
577 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
578 end do
579!-------------------------------------------------------------------------------
580 ! transfer nodal temperature to gauss points (/heat/mat)
581 IF (jthe /= 0) THEN
582 CALL tempcg(numnod,nel ,ixc ,temp ,tempel )
583 ENDIF
584C-----------------------------------------------
585 IF ((itask==0).AND.(imon_mat==1)) CALL startime(timers,35)
586C-----------------------------------------------
587 CALL cmain3(timers,
588 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
589 2 nel ,mtn ,ipla ,ithk ,group_param,
590 3 pm ,geo ,npf ,tf ,bufmat ,
591 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
592 5 area ,exx ,eyy ,exy ,exz ,
593 6 eyz ,kxx ,kyy ,kxy ,nu ,
594 7 off ,thk0 ,mat ,pid ,mat_elem ,
595 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
596 9 gbuf%THK ,gbuf%EINT ,iofc ,
597 a g ,a11 ,a12 ,vol0 ,indxof ,
598 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
599 c kfts ,ihbe ,alpe ,
600 d dir_a ,dir_b ,igeo ,
601 e ipm ,ifailure ,npg ,fheat ,
602 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
603 g ibid ,bid ,
604 h bid ,bid ,bid ,bid ,bid ,
605 i bid ,bid ,bid ,r11 ,r12 ,
606 j r13 ,r21 ,r22 ,r23 ,r31 ,
607 k r32 ,r33 ,ng ,table ,ixfem ,
608 l bid ,sensors ,bid ,elcrkini ,
609 m dir1_crk ,dir2_crk ,ll ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
610 n ismstr ,ir ,is ,nlay ,npt ,
611 o ixlay ,ixel ,isubstack ,stack ,
612 p f_def ,itask ,drape_sh4n ,var_reg ,nloc_dmg ,
613 r indx_drape,thke ,sedrape ,numel_drape,dt ,
614 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
615 s userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,
616 t sdir_b ,gbuf%FOR_G )
617
618C-----------------------------------------------
619c
620 IF ((itask==0).AND.(imon_mat==1)) CALL stoptime(timers,35)
621C--------------------------
622C BILANS PAR MATERIAU
623C--------------------------
624 ipout=2
625 IF (ipri == 1)
626 1 CALL cbilan(
627 1 jft, jlt, pm, v,
628 2 ixc, gbuf%THK, gbuf%EINT, partsav,
629 3 area, mat, ipartc, x,
630 4 vr, bid, bid, bid,
631 5 thk02, ipout, off, nft,
632 6 gresav, grth, igrth, vl1,
633 7 vl2, vl3, vl4, vrl1,
634 8 vrl2, vrl3, vrl4, x1g,
635 9 x2g, x3g, x4g, y1g,
636 a y2g, y3g, y4g, z1g,
637 b z2g, z3g, z4g, ibid,
638 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
639 d actifxfem, igre, sensors, nel,
640 e gbuf%G_WPLA,gbuf%WPLA )
641C
642 CALL cndt3(
643 1 jft ,jlt ,off ,dt2t ,amu ,
644 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
645 3 ssp ,viscmx ,rho ,vol0 ,thk0,thk02,
646 4 a11 ,ll ,alpe,ngl,ismstr,
647 5 iofc ,nnod ,area,g ,shf ,
648 6 msc ,dmelc,jsms,bid , igtyp ,
649 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT,mtn ,
650 8 pm ,mat(jft),nel, zoffset)
651c-------------------------------
652 CALL czfintce(jft ,jlt ,thk0 ,thk02,a_i ,x13 ,
653 2 x24 ,y13 ,y24 ,z1 ,mx23 ,mx13 ,
654 3 mx34 ,my13 ,my23 ,my34 ,gbuf%FOR,gbuf%MOM,
655 4 vf ,vm ,nel )
656c
657 IF (isrot > 0) THEN
658 CALL czfintcrz(
659 1 jft ,jlt ,thk0 ,vol0 ,area ,x13 ,
660 2 x24 ,y13 ,y24 ,z1 ,mx23 ,mx13 ,
661 3 mx34 ,my13 ,my23 ,my34 ,gbuf%FOR,gbuf%HOURG,
662 4 vf ,vmz ,bm0rz,krz ,vrlz ,dt1c ,
663 5 gbuf%EINT,off ,nel )
664 IF (impl_s > 0 .OR. iorth == 0) THEN
665 CALL czfintnrz(
666 1 jft ,jlt ,thk0 ,thk02 ,a_i ,dhg ,
667 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
668 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
669 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
670 5 a12 ,g ,shf ,sigy ,off ,fac1 ,
671 6 rho ,area ,dt1 ,gbuf%EINT,amu ,vlhi ,
672 7 npttot ,ipartc ,partsav,kfts ,gsr ,
673 8 a11sr ,a12sr ,nusr ,shfsr ,bmkrz ,bmerz ,
674 9 vhgzk ,vhgze ,krz ,vmz ,nel )
675 ELSE
676 CALL czfintnrz_or(jft ,jlt ,thk0 ,thk02,a_i ,dhg ,
677 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
678 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
679 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
680 5 a12 ,g ,gs ,sigy ,off ,fac1 ,
681 6 rho ,area , dt1,gbuf%EINT,amu ,vlhi ,
682 7 npttot,ipartc,partsav,kfts ,gsr ,
683 8 a11sr,a12sr ,nusr,shfsr,bmkrz,bmerz ,
684 9 vhgzk,vhgze ,krz ,vmz ,iorth ,hm ,
685 a hf ,hc ,hmfor, mtn ,nel)
686 ENDIF ! IF (IMPL_S > 0 .OR. IORTH == 0)
687c
688 ELSE ! ISROT == 0
689c
690 IF (impl_s > 0 .OR. iorth == 0) THEN
691 CALL czfintn1(
692 1 jft ,jlt ,thk0 ,thk02 ,a_i ,dhg ,
693 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
694 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
695 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
696 5 a12 ,g ,shf ,sigy ,off ,fac1 ,
697 6 rho ,area ,dt1 ,gbuf%EINT,amu ,vlhi ,
698 7 npttot ,ipartc ,partsav,kfts ,gsr ,nel ,
699 8 a11sr ,a12sr ,nusr ,shfsr ,mtn ,fac58 )
700 ELSE
701 CALL czfintn_or(jft ,jlt ,thk0 ,thk02,a_i ,dhg ,
702 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
703 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,gbuf%HOURG,
704 4 gbuf%FOR,gbuf%MOM,vf ,vm ,zcfac ,a11 ,
705 5 a12 ,g ,gs ,sigy ,off ,fac1 ,
706 6 rho ,area , dt1,gbuf%EINT,amu ,vlhi ,
707 7 npttot,ipartc,partsav,kfts ,gsr ,
708 8 a11sr,a12sr ,nusr,shfsr ,iorth ,hm ,
709 9 hf ,hc ,hmfor,mtn ,nel)
710 END IF ! (IMPL_S > 0 .OR. IORTH == 0) THEN
711 ENDIF ! ISROT
712c-------------------------
713c Virtual internal forces of regularized non local ddl
714c--------------------------
715 IF (inloc > 0) THEN
716 ! Warning : Y24 = PX1
717 CALL cfint_reg(
718 1 nloc_dmg, var_reg, gbuf%THK, nel,
719 2 off, area, nc1, nc2,
720 3 nc3, nc4, y24, py1,
721 4 px2, py2, elbuf_str%NLOC(1,1), imat,
722 5 nddl, itask, dt2t, ll,
723 7 gbuf%THK_I, gbuf%AREA, nft)
724 ENDIF
725c-------------------------------
726 IF (npttot == 1) THEN
727 IF (mtn==58.OR.mtn==19.OR.mtn==119) THEN
728 CALL czfintnm1(jft ,jlt ,thk0 ,a_i ,dhg ,
729 2 x13 ,x24 ,y13 ,y24 ,vf ,
730 4 mx13 ,mx23 ,my13 ,my23 ,
731 3 g ,rho ,area ,amu ,dt1 ,
732 4 vl13 ,vl24 ,vlhi ,gbuf%HOURG,
733 4 off ,ipartc,partsav,kfts ,nel )
734 ELSE
735 CALL czfintnm(jft ,jlt ,thk0 ,a_i ,dhg ,
736 2 x13 ,x24 ,y13 ,y24 ,vf ,
737 3 g ,rho ,area ,amu ,dt1 ,
738 4 off ,ipartc,partsav,kfts )
739 END IF
740 END IF
741 CALL czproj1(
742 1 jft ,jlt ,vqn ,vq ,vf ,
743 2 vm ,plat ,
744 3 f11 ,f12 ,f13 ,f14 ,f21,
745 4 f22 ,f23 ,f24 ,f31 ,f32,
746 5 f33 ,f34 ,m11 ,m12 ,m13,
747 6 m14 ,m21 ,m22 ,m23 ,m24,
748 7 m31 ,m32 ,m33 ,m34 ,fzero,
749 8 z1 ,lxyz ,dd ,db ,lxyz,
750 9 isrot ,diz ,vmz )
751C-------------------------
752c Thermique des coques
753C--------------------------
754 IF (jthe /= 0) THEN
755 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
756 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
757 . y24 ,px2 ,py1 ,py2 ,area ,dt1c ,
758 . temp ,tempel ,fheat ,them ,glob_therm%THEACCFACT)
759 ELSE
760 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
761 . y24 ,px2 ,py1 ,py2 ,area ,dt1c ,
762 . temp ,tempel ,die ,them ,glob_therm%THEACCFACT)
763 END IF
764 ENDIF
765c--------------------------
766c THERMAL TIME STEP
767c--------------------------
768 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1) THEN
769 call dttherm(nel ,pm(1,mat(1)) ,npropm ,glob_therm ,
770 . jtur ,tempel ,vol0 ,rho ,
771 . ll ,off ,conde ,gbuf%re ,gbuf%rk )
772 ENDIF
773C
774C--------------------------
775C ASSEMBLE
776C--------------------------
777 IF (iparit == 3) THEN
778 CALL cupdt3f(jft ,jlt ,f ,m ,nvc ,
779 2 gbuf%OFF,off ,sti ,stir ,stifn ,
780 3 stifr ,ixc ,pm ,area ,gbuf%THK ,
781 4 f11 ,f12 ,f13 ,f14 ,f21 ,
782 5 f22 ,f23 ,f24 ,f31 ,f32 ,
783 6 f33 ,f34 ,m11 ,m12 ,m13 ,
784 7 m14 ,m21 ,m22 ,m23 ,m24 ,
785 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
786 9 partsav ,mat ,ipartc,glob_therm%NODADT_THERM)
787 ELSEIF (iparit == 0) THEN
788 CALL cupdtn3(jft ,jlt ,f ,m ,nvc ,
789 2 gbuf%OFF,off ,sti ,stir ,stifn ,
790 3 stifr ,ixc ,pm ,area ,gbuf%THK ,
791 4 f11 ,f12 ,f13 ,f14 ,f21 ,
792 5 f22 ,f23 ,f24 ,f31 ,f32 ,
793 6 f33 ,f34 ,m11 ,m12 ,m13 ,
794 7 m14 ,m21 ,m22 ,m23 ,m24 ,
795 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
796 a partsav ,mat ,ipartc,facn ,jthe ,
797 b them ,fthe ,condn ,conde,glob_therm%NODADT_THERM)
798 ELSE
799 CALL cupdtn3p(jft ,jlt ,gbuf%OFF,off ,sti ,
800 2 stir ,fsky ,fsky ,iadc ,
801 4 f11 ,f12 ,f13 ,f14 ,f21 ,
802 5 f22 ,f23 ,f24 ,f31 ,f32 ,
803 6 f33 ,f34 ,m11 ,m12 ,m13 ,
804 7 m14 ,m21 ,m22 ,m23 ,m24 ,
805 8 m31 ,m32 ,m33 ,m34 ,ixc ,
806 a gbuf%EINT,partsav ,mat ,ipartc,pm ,
807 b area ,gbuf%THK,facn ,jthe ,them ,
808 c fthesky ,condnsky,conde ,glob_therm%NODADT_THERM)
809 ENDIF
810C-------------------------
811c Fissure des coques
812C--------------------------
813 IF (ixfem > 0) THEN
814 DO ilay=1,nxlay
815 ! crack length calculation for advancing crack
816 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
817 CALL crklen4n_adv(
818 . nel ,nft ,ilay ,nlay ,ixc ,
819 . crklen ,elcrkini ,iel_crk ,dir1_crk ,dir2_crk ,
820 . nodedge ,crkedge ,xedge4n ,ngl ,xl2 ,
821 . xl3 ,xl4 ,yl2 ,yl3 ,yl4 ,
822 . ll )
823c
824 ! crack advancement
825 CALL crklayer4n_adv(
826 . xfem_str ,nel ,nft ,ixc ,elcutc ,
827 . ilay ,nxlay ,iel_crk ,inod_crk ,
828 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
829 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
830 . xl2 ,xl3 ,xl4 ,yl2 ,yl3 ,
831 . yl4 ,xedge4n ,ngl )
832c
833 ! crack initialization
834 CALL crklayer4n_ini(
835 . xfem_str ,nel ,nft ,ixc ,elcutc ,
836 . ilay ,nxlay ,iel_crk ,inod_crk ,
837 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
838 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
839 . xl2 ,xl3 ,xl4 ,yl2 ,yl3 ,
840 . yl4 ,xedge4n ,ngl )
841 ENDDO
842C
843 CALL crkoffc(elbuf_str,xfem_str ,
844 . jft ,jlt ,nft ,ir ,is ,
845 . nxlay ,iel_crk ,crkedge,xedge4n )
846 ENDIF
847
848c--------------------------------------------
849c Front wave
850c--------------------------------------------
851 IF (ifailwave > 0) THEN
852 crkdir => elbuf_str%BUFLY(1)%CRKDIR
853c
854 CALL set_failwave_nod4(failwave ,fwave_el ,ngl ,
855 . nel ,ixc ,itab ,crkdir ,dir_a ,
856 . l_dira ,xl2 ,xl3 ,xl4 ,yl2 ,
857 . yl3 ,yl4 )
858 ENDIF
859C-----------
860 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
861 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
862 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
863 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
864 IF (ALLOCATED(dira)) DEALLOCATE(dira)
865 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
866C-----------
867 RETURN
868 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:52
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)
Definition cfint_reg.F:39
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 cncoef3b(jft, jlt, pm, mat, geo, pid, area, shf, thk0, thk02, nu, g, ym, a11, a12, thk, thke, ssp, rho, volg, gs, mtn, ithk, npt, dt1c, dt1, ihbe, amu, gsr, a11sr, a12sr, nusr, shfsr, krz, igeo, a11r, isubstack, pm_stack, uparam, dira, dirb, uvar, fac58, nel, zoffset)
Definition cncoef3.F:39
subroutine cncoefort(jft, jlt, pm, mat, geo, pid, mtn, npt, hm, hf, hc, hmfor, iorth, dir, igeo, isubstack, stack, elbuf_str, nlay, thk, drape, nft, nel, indx_drape, thke, sedrape, numel_drape, mat_elem)
Definition cncoef3.F:522
subroutine cndt3(jft, jlt, off, dt2t, amu, neltst, ityptst, sti, stir, offg, ssp, viscmx, rho, vol0, thk0, thk02, a1, aldt, alpe, ngl, ismstr, iofc, nne, area, g, shf, msc, dmelc, jsms, ptg, igtyp, igmat, a11r, g_dt, dtel, mtn, pm, imat, nel, zoffset)
Definition cndt3.F:42
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 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)
Definition cupdt3.F:41
subroutine cupdtn3p(jft, jlt, offg, off, sti, stir, fsky, fskyv, iadc, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, ixc, eint, partsav, mat, ipartc, pm, area, thk, fac, jthe, them, fthesky, condnsky, conde, nodadt_therm)
Definition cupdtn3.F:493
subroutine cupdtn3(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, fac, jthe, them, fthe, condn, conde, nodadt_therm)
Definition cupdtn3.F:39
subroutine czcorc1(numnod, numelc, elbuf_str, jft, jlt, x, v, vr, ixc, pm, plat, area, area_i, v13, v24, vhi, rlxyz, vqn, vq, ll, l13, l24, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, corel, di, db, smstr, irep, npt, nlay, ismstr, dir_a, dir_b, offg, rlxyzv, corelv, facn, py1, px2, py2, r11, r12, r13, r21, r22, r23, r31, r32, r33, rlz, idril, ixfem, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, vrx1, vrx2, vrx3, vrx4, vry1, vry2, vry3, vry4, vrz1, vrz2, vrz3, vrz4, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, thk, diz, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, xl2, xl3, xl4, yl2, yl3, yl4, vl1, vl2, vl3, vl4, nel, z2)
Definition czcorc.F:61
subroutine czcorcht(elbuf_str, jft, jlt, x, v, vr, ixc, pm, offg, vq, hourg, thk, npt, ismstr, xlcor, zl2, iint, nel)
Definition czcorc.F:2265
subroutine czcorct(elbuf_str, jft, jlt, x, v, vr, ixc, pm, offg, area, area_i, v13, v24, dr, rlxyz, vq, x13_t, x24_t, y13_t, y24_t, mx13, mx23, mx34, my13, my23, my34, z1, smstr, thk, npt, ismstr, idril, xlcor, zl, vqn, nel)
Definition czcorc.F:1935
subroutine czdef(jft, jlt, area, aa, v13, v24, vhi, rlxyz, vdef, vhg, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, dt1, off, offg, rlxyzv)
Definition czdef.F:34
subroutine czdeftw(jft, jlt, aa, v13, v24, rlxyz, x13, x24, y13, y24, z1, wxy)
Definition czdef.F:673
subroutine czdeft(jft, jlt, v13, v24, rlxyz, vdef, x13, x24, y13, y24, z1, aa)
Definition czdef.F:450
subroutine czdefrzt(jft, jlt, area, aa, rlxyz, vdef, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1)
Definition czdef.F:495
subroutine czdefrz(jft, jlt, area, aa, rlz, vdef, vhgzk, vhgze, x13, x24, y13, y24, mx13, mx23, mx34, my13, my23, my34, z1, vhg, bm0rz, bmkrz, bmerz, v13, v24, vrlz)
Definition czdef.F:217
subroutine czfintce(jft, jlt, thk, c1, a_i, x13, x24, y13, y24, z1, mx23, mx13, mx34, my13, my23, my34, vstre, mstre, vf, vm, nel)
Definition czfintce.F:33
subroutine czfintcrz(jft, jlt, thk, vol, area, x13, x24, y13, y24, z1, mx23, mx13, mx34, my13, my23, my34, vstre, vsrz, vf, vmz, bm0rz, krz, vrlz, dt1c, eint, off, nel)
Definition czfintce.F:115
subroutine czfintn1(jft, jlt, thk, c1, aa, vhg, x13, x24, y13, y24, z1, mx23, mx13, mx34, my13, my23, my34, vglas, vstre, mstre, vf, vm, fac, a11, a12, g, shf, sigy, off, fac1, rho, area, dt1, eint, amu, vhi, npt, ipartc, evis, kfts, gsr, nel, a11sr, a12sr, nusr, shfsr, mtn, fac58)
Definition czfintn.F:37
subroutine czfintn_or(jft, jlt, thk, c1, aa, vhg, x13, x24, y13, y24, z1, mx23, mx13, mx34, my13, my23, my34, vglas, vstre, mstre, vf, vm, fac, a11, a12, g, gs, sigy, off, fac1, rho, area, dt1, eint, amu, vhi, npt, ipartc, evis, kfts, gsr, a11sr, a12sr, nusr, shfsr, iorth, hm, hf, hc, hmfor, mtn, nel)
Definition czfintn.F:1023
subroutine czfintnm1(jft, jlt, thk, aa, vhg, x13, x24, y13, y24, vf, mx13, mx23, my13, my23, g, rho, area, amu, dt1, v13, v24, vhi, vglas, off, ipartc, evis, kfts, nel)
Definition czfintn.F:2184
subroutine czfintnm(jft, jlt, thk, aa, vhg, x13, x24, y13, y24, vf, g, rho, area, amu, dt1, off, ipartc, evis, kfts)
Definition czfintn.F:506
subroutine czfintnrz(jft, jlt, thk, c1, aa, vhg, x13, x24, y13, y24, z1, mx23, mx13, mx34, my13, my23, my34, vglas, vstre, mstre, vf, vm, fac, a11, a12, g, shf, sigy, off, fac1, rho, area, dt1, eint, amu, vhi, npt, ipartc, evis, kfts, gsr, a11sr, a12sr, nusr, shfsr, bmkrz, bmerz, vhgzk, vhgze, krz, vmz, nel)
Definition czfintn.F:573
subroutine czfintnrz_or(jft, jlt, thk, c1, aa, vhg, x13, x24, y13, y24, z1, mx23, mx13, mx34, my13, my23, my34, vglas, vstre, mstre, vf, vm, fac, a11, a12, g, gs, sigy, off, fac1, rho, area, dt1, eint, amu, vhi, npt, ipartc, evis, kfts, gsr, a11sr, a12sr, nusr, shfsr, bmkrz, bmerz, vhgzk, vhgze, krz, vmz, iorth, hm, hf, hc, hmfor, mtn, nel)
Definition czfintn.F:1462
subroutine czforc3(timers, elbuf_str, jft, jlt, nft, npt, itab, mtn, ipri, ithk, neltst, istrain, ipla, dt1, dt2t, pm, geo, partsav, ixc, ityptst, bufmat, tf, npf, iadc, failwave, x, dr, v, vr, f, m, stifn, stifr, fsky, tani, indxof, ismstr, group_param, ipartc, thke, nvc, iofc, ihbe, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, kfts, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, igrth, xedge4n, msc, dmelc, jsms, table, iparg, mat_elem, ixfem, knod2elc, sensors, elcutc, inod_crk, iel_crk, nodenr, iadc_crk, nodedge, crknodiad, condn, condnsky, stack, isubstack, xfem_str, crkedge, drape_sh4n, nel, nloc_dmg, indx_drape, igre, jtur, dt, ncycle, snpc, stf, glob_therm, idel7nok, userl_avail, maxfunc, sbufmat)
Definition czforc3.F:115
subroutine czproj1(jft, jlt, vqn, vq, vf, vm, plat, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, fzero, z1, corel, di, db, corelv, idril, diz, vmz)
Definition czproj.F:42
subroutine czstra3(jft, jlt, nft, vdef, gstr, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, dt1c, epsdot, iepsdot, istrain, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, px1, px2, py1, py2, area, ismstr, mtn, wxy, f_def, gstrw, nel)
Definition czstra3.F:37
subroutine czstrah3(jft, jlt, stra_h, vhg, a_i, mx23, mx34, my23, my34, dt1c, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, nel)
Definition czstrah3.F:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21
for(i8=*sizetab-1;i8 >=0;i8--)
integer numelc_drape
Definition drape_mod.F:92
subroutine crkoffc(elbuf_str, xfem_str, jft, jlt, nft, ir, is, nxlay, iel_crk, crkedge, xedge4n)
Definition precrklay.F:145
subroutine precrklay(jft, jlt, nft, nlay, elcrkini, iel_crk, inod_crk, nodenr, crkedge, xedge4n)
Definition precrklay.F:33
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)
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 set_failwave_sh4n(failwave, fwave_el, dadv, nel, ixc, itab, ngl, offly)