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