OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
czforc3_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!|| czforc3_crk ../engine/source/elements/xfem/czforc3_crk.F
25!||--- called by ------------------------------------------------------
26!|| forintc ../engine/source/elements/forintc.F
27!||--- calls -----------------------------------------------------
28!|| cbilan ../engine/source/elements/shell/coque/cbilan.F
29!|| ccoor3z_crk ../engine/source/elements/xfem/ccoor3z_crk.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!|| cupdtn3_crk ../engine/source/elements/xfem/xfemfsky.F
35!|| czcorc1 ../engine/source/elements/shell/coquez/czcorc.F
36!|| czdef ../engine/source/elements/shell/coquez/czdef.F
37!|| czdefrz ../engine/source/elements/shell/coquez/czdef.F
38!|| czfintce ../engine/source/elements/shell/coquez/czfintce.F
39!|| czfintcrz ../engine/source/elements/shell/coquez/czfintce.F
40!|| czfintn1 ../engine/source/elements/shell/coquez/czfintn.F
41!|| czfintn_or ../engine/source/elements/shell/coquez/czfintn.F
42!|| czfintnm ../engine/source/elements/shell/coquez/czfintn.F
43!|| czfintnrz_or ../engine/source/elements/shell/coquez/czfintn.F
44!|| czproj1 ../engine/source/elements/shell/coquez/czproj.F
45!|| czstra3 ../engine/source/elements/shell/coquez/czstra3.F
46!|| startime ../engine/source/system/timer_mod.F90
47!|| stoptime ../engine/source/system/timer_mod.F90
48!|| tempcg ../engine/source/materials/mat_share/tempcg.F
49!|| thermc ../engine/source/materials/mat_share/thermc.F
50!||--- uses -----------------------------------------------------
51!|| crackxfem_mod ../engine/share/modules/crackxfem_mod.F
52!|| drape_mod ../engine/share/modules/drape_mod.F
53!|| dt_mod ../engine/source/modules/dt_mod.F
54!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
55!|| element_mod ../common_source/modules/elements/element_mod.F90
56!|| failwave_mod ../common_source/modules/failwave_mod.F
57!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
58!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
59!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
60!|| sensor_mod ../common_source/modules/sensor_mod.F90
61!|| stack_mod ../engine/share/modules/stack_mod.F
62!|| table_mod ../engine/share/modules/table_mod.F
63!|| timer_mod ../engine/source/system/timer_mod.F90
64!||====================================================================
65 SUBROUTINE czforc3_crk(TIMERS, XFEM_STR ,
66 1 JFT ,JLT ,NFT ,ITYPTST,
67 2 IPARI ,MTN ,IPRI ,ITHK ,NELTST ,
68 3 ISTRAIN,IPLA ,TT ,DT1 ,DT2T ,
69 4 PM ,GEO ,PARTSAV,IXC ,GROUP_PARAM,
70 5 BUFMAT ,TF ,NPF ,IADC ,FAILWAVE,
71 6 X ,D ,DR ,V ,VR ,
72 7 F ,M ,STIFN ,STIFR ,FSKY ,
73 8 TANI ,OFFSET ,EANI ,INDXOF ,
74 9 IPARTC ,THKE ,NVC ,IOFC ,IHBE ,
75 A F11 ,F12 ,F13 ,F14 ,F21 ,
76 B F22 ,F23 ,F24 ,F31 ,F32 ,
77 C F33 ,F34 ,M11 ,M12 ,M13 ,
78 D M14 ,M21 ,M22 ,M23 ,M24 ,
79 E M31 ,M32 ,M33 ,M34 ,
80 F KFTS ,FZERO ,ISMSTR ,MAT_ELEM ,
81 I IGEO ,IPM ,IFAILURE,ITASK , JTHE ,
82 J TEMP ,FTHE ,FTHESKY ,IEXPAN,GRESAV ,
83 K GRTH ,IGRTH ,MSC ,DMELC ,JSMS ,
84 L TABLE ,IPARG ,IXFEM ,INOD_CRK,IEL_CRK,
85 M IADC_CRK,ELCUTC,CRKSKY,SENSORS,IXEL ,
86 N ISUBSTACK,UXINT_MEAN,UYINT_MEAN,UZINT_MEAN,NLEVXF,
87 O NODEDGE,CRKEDGE, STACK ,DRAPE_SH4N,NLOC_DMG,
88 P INDX_DRAPE, IGRE ,DT, NCYCLE,SNPC, STF ,
89 P GLOB_THERM ,IDEL7NOK ,USERL_AVAIL,
90 Q MAXFUNC ,SBUFMAT,IPART ,LIPART1)
91C-----------------------------------------------
92C M o d u l e s
93C-----------------------------------------------
94 USE timer_mod
95 USE table_mod
97 USE stack_mod
98 USE failwave_mod
99 USE mat_elem_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 "param_c.inc"
115#include "mvsiz_p.inc"
116C-----------------------------------------------
117C C O M M O N B L O C K S
118C-----------------------------------------------
119#include "com_xfem1.inc"
120#include "scr14_c.inc"
121#include "parit_c.inc"
122#include "timeri_c.inc"
123#include "comlock.inc"
124#include "com04_c.inc"
125C-----------------------------------------------
126C D U M M Y A R G U M E N T S
127C-----------------------------------------------
128 TYPE(timer_), INTENT(INOUT) :: TIMERS
129 INTEGER,INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
130 INTEGER,INTENT(IN) :: MAXFUNC ! Maximum number of functions
131 INTEGER,INTENT(INOUT) :: IDEL7NOK ! Element deletion flag for IDEL flag in contact interfaces
132 INTEGER,INTENT(IN) :: SBUFMAT ! Size of BUFMAT
133 INTEGER,INTENT(IN) :: STF ! Size of TF
134 INTEGER,INTENT(IN) :: SNPC ! Size of NPF
135 INTEGER JFT ,JLT,NFT,IPARI,MTN,IPRI,ITHK,NELTST,
136 . ITYPTST,ISTRAIN,IPLA,OFFSET,NVC,JSMS,IOFC,IHBE,
137 . KFTS,ISMSTR,IFAILURE,JTHE,IXEL,ISUBSTACK,NLEVXF
138 INTEGER IXC(NIXC,*),IADC(4,*),IPARTC(*),NPF(*),IGEO(NPROPGI,*),
139 . IPM(NPROPMI,*),INDXOF(MVSIZ),ITASK,IEXPAN,GRTH(*),IGRTH(*),
140 . IPARG(*),IXFEM,INOD_CRK(*),IEL_CRK(*),IADC_CRK(4,*),
141 . ELCUTC(2,*),NODEDGE(2,*),INDX_DRAPE(SCDRAPE)
142 INTEGER, INTENT(IN) :: IGRE, NCYCLE
143 integer, intent(in) :: LIPART1
144 INTEGER, DIMENSION(LIPART1, NPART), INTENT(IN) :: IPART
145
146C REAL OR REAL*8
147 my_real
148 . F11(MVSIZ),F12(MVSIZ),F13(MVSIZ),F14(MVSIZ),
149 . F21(MVSIZ),F22(MVSIZ),F23(MVSIZ),F24(MVSIZ),
150 . F31(MVSIZ),F32(MVSIZ),F33(MVSIZ),F34(MVSIZ),
151 . M11(MVSIZ),M12(MVSIZ),M13(MVSIZ),M14(MVSIZ),
152 . M21(MVSIZ),M22(MVSIZ),M23(MVSIZ),M24(MVSIZ),
153 . m31(mvsiz),m32(mvsiz),m33(mvsiz),m34(mvsiz),
154 . tf(*),pm(npropm,*),geo(npropg,*),partsav(*),
155 . bufmat(*),x(3,*),d(*),dr(*),v(3,*),vr(3,*),
156 . f(3,*),m(3,*),stifn(*), stifr(*),fsky(8,*),tani(6,*),
157 . eani(*),thke(*),fzero(3,4,*),temp(*),fthe(*),
158 . fthesky(*),gresav(*),msc(*), dmelc(*),
159 . uxint_mean(nlevxf,mvsiz),
160 . uyint_mean(nlevxf,mvsiz),uzint_mean(nlevxf,mvsiz)
161 my_real
162 . tt,dt1,dt2t
163 TARGET :: bufmat
164 TYPE(ttable) TABLE(*)
165 TYPE (ELBUF_STRUCT_), TARGET :: XFEM_STR
166 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
167 TYPE (XFEM_SKY_) , DIMENSION(*) :: CRKSKY
168 TYPE (STACK_PLY) :: STACK
169 TYPE (FAILWAVE_STR_) :: FAILWAVE
170 TYPE (GROUP_PARAM_) :: GROUP_PARAM
171 TYPE (DRAPE_) , DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
172 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
173 TYPE (NLOCAL_STR_) :: NLOC_DMG
174 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
175 TYPE (DT_), INTENT(IN) :: DT
176 type (glob_therm_) ,intent(inout) :: glob_therm
177C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
178C L O C A L V A R I A B L E S
179C--------------------------------
180 LOGICAL PLAT(MVSIZ)
181 INTEGER
182 . I,NEL,NNOD,NPG,IBID,ISROT,IXLAY,NXLAY,NLAYER,NPTT,
183 . IR,IS,IT,NG,L_DIRA,L_DIRB,J1,J2,IXFEM2,IPTHK,
184 . IORTH,ILEV,IGMAT,IGTYP,IREP,IMAT,
185 . ACTIFXFEM, SEDRAPE,NUMEL_DRAPE
186 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),FWAVE(MVSIZ)
187 PARAMETER (NNOD = 4)
188 my_real
189 . ll(mvsiz),vl13(mvsiz,3),vl24(mvsiz,3),vlhi(mvsiz,3),
190 . rlxyz(mvsiz,8),x13(mvsiz),x24(mvsiz),y13(mvsiz),y24(mvsiz),
191 . mx13(mvsiz),mx23(mvsiz),mx34(mvsiz),my13(mvsiz),my23(mvsiz),
192 . my34(mvsiz),z1(mvsiz),z2(mvsiz)
193 my_real
194 . vq(mvsiz,9),vdef(mvsiz,8),off(mvsiz),dhg(mvsiz,6),
195 . area(mvsiz),vqn(mvsiz,12),l13(mvsiz),l24(mvsiz),
196 . zcfac(mvsiz,2),a_i(mvsiz),thk02(mvsiz)
197 my_real
198 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),exz(mvsiz),eyz(mvsiz),
199 . kxx(mvsiz),kyy(mvsiz),kxy(mvsiz),sigy(mvsiz),
200 . dt1c(mvsiz),ssp(mvsiz),viscmx(mvsiz),rho(mvsiz) ,
201 . nu(mvsiz),g(mvsiz),a11(mvsiz),a12(mvsiz),vol0(mvsiz),
202 . thk0(mvsiz),sti(mvsiz),stir(mvsiz),shf(mvsiz) ,
203 . vf(mvsiz,12),vm(mvsiz,8),gs(mvsiz),fac1(mvsiz),
204 . alpe(mvsiz),ym(mvsiz),facn(mvsiz,2),lxyz(mvsiz,8),
205 . dd(mvsiz,6),db(mvsiz,12),amu(mvsiz),gsr(mvsiz),
206 . a11sr(mvsiz),a12sr(mvsiz),nusr(mvsiz),shfsr(mvsiz),
207 . px2(mvsiz),py1(mvsiz),py2(mvsiz),die(mvsiz),tempel(mvsiz),
208 . them(mvsiz,4),r11(mvsiz),r12(mvsiz),r13(mvsiz),
209 . r21(mvsiz),r22(mvsiz),r23(mvsiz),r31(mvsiz),
210 . r32(mvsiz),r33(mvsiz),rlz(mvsiz,4),vhgzk(mvsiz,5),
211 . vhgze(mvsiz,5),vrlz(mvsiz),bm0rz(mvsiz,4,4),bmkrz(mvsiz,4,4),
212 . bmerz(mvsiz,4,4),vmz(mvsiz,4),krz(mvsiz),diz(mvsiz,3)
213 my_real
214 . x1g(mvsiz),x2g(mvsiz),x3g(mvsiz),x4g(mvsiz),
215 . y1g(mvsiz),y2g(mvsiz),y3g(mvsiz),y4g(mvsiz),
216 . z1g(mvsiz),z2g(mvsiz),z3g(mvsiz),z4g(mvsiz),
217 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
218 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
219 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
220 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
221 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
222 . vrx1(mvsiz),vrx2(mvsiz),vrx3(mvsiz),vrx4(mvsiz),
223 . vry1(mvsiz),vry2(mvsiz),vry3(mvsiz),vry4(mvsiz),
224 . vrz1(mvsiz),vrz2(mvsiz),vrz3(mvsiz),vrz4(mvsiz),
225 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
226 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),a11r(mvsiz),
227 . thke0(mvsiz),xl2(mvsiz),xl3(mvsiz),xl4(mvsiz),
228 . yl2(mvsiz),yl3(mvsiz),yl4(mvsiz),fac58(mvsiz,2)
229 my_real bid,thkr
230 !
231 my_real, DIMENSION(MVSIZ) :: zoffset
232C---
233 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
234 my_real,
235 . ALLOCATABLE, DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
236 my_real,
237 . DIMENSION(:) ,POINTER :: DIR_A,DIR_B,UVAR
238 TARGET :: dira,dirb
239! variables for heat transfer
240 my_real, dimension(mvsiz) :: fheat
241 my_real, dimension(mvsiz) :: ssp_eq
242!
243C---
244 TYPE(buf_lay_) ,POINTER :: BUFLY
245 TYPE(G_BUFEL_) ,POINTER :: GBUF
246 TYPE(L_BUFEL_) ,POINTER :: LBUF
247 my_real
248 . HM(MVSIZ,6), HF(MVSIZ,6), HC(MVSIZ,2),HMFOR(MVSIZ,6)
249 my_real,
250 . DIMENSION(:) ,POINTER :: OFFG,THKG,STRAG,FORG,MOMG,
251 . EINTG,EPSDG,TEMPG,EINTTH,HOURGG
252 DOUBLE PRECISION,
253 . DIMENSION(:) ,POINTER :: SMSTRG
254 my_real,
255 . DIMENSION(:,:), ALLOCATABLE :: varnl
256 INTEGER NPTTOT
257 INTEGER SDIR_A ! Size of DIR_A
258 INTEGER SDIR_B ! Size of DIR_B
259C=======================================================================
260 nel = jlt-jft+1
261 bid = zero
262 ibid = 0
263 npg = 0
264 ng = 1
265 ir = 1
266 is = 1
267 it = 1
268 sedrape = scdrape
269 numel_drape = numelc_drape
270 npttot = 1
271 ALLOCATE(varnl(nel,1))
272 varnl = zero
273C -----will put it in starter
274 IF (ismst r>= 10) ismstr=4
275C
276 DO i=jft,jlt
277 mat(i) = ixc(1,i)
278 pid(i) = ixc(6,i)
279 ngl(i) = ixc(7,i)
280 ENDDO
281C
282 DO i=jft,jlt
283 fac1(i) = geo(17,pid(i))
284 ENDDO
285C
286 isrot = iparg(41)
287 igtyp = igeo(11,pid(1))
288 igmat = igeo(98,pid(1))
289 irep = iparg(35)
290 actifxfem = iparg(70)
291 imat = ixc(1,jft)
292C-----------------------------------------
293 gbuf => xfem_str%GBUF
294C
295 nxlay = xfem_str%NLAY
296 nlayer = 1 ! only one current xfem layer passes to the cmain3 & mulawc
297C-----------------------------------------
298 ixfem2 = 1 ! flag for CZCORC1 and BALANCE
299C
300 ALLOCATE(elcrkini(nxlay*nel))
301 ALLOCATE(dir1_crk(nxlay*nel))
302 ALLOCATE(dir2_crk(nxlay*nel))
303 elcrkini = 0
304 dir1_crk = zero
305 dir2_crk = zero
306C
307 l_dira = xfem_str%BUFLY(1)%LY_DIRA
308 l_dirb = xfem_str%BUFLY(1)%LY_DIRB
309C
310 ALLOCATE(dira(nxlay*nel*l_dira))
311 ALLOCATE(dirb(nxlay*nel*l_dirb))
312 dira = zero
313 dirb = zero
314 sdir_a = nxlay*nel*l_dira
315 sdir_b = nxlay*nel*l_dirb
316 dir_a => dira(1:nxlay*nel*l_dira)
317 dir_b => dirb(1:nxlay*nel*l_dirb)
318 uvar => xfem_str%BUFLY(1)%MAT(ir,is,it)%VAR
319c-------------------------------------------------
320c Loop over all (Xfem) layers
321c-------------------------------------------------
322 DO ixlay = 1,nxlay
323 nptt = xfem_str%BUFLY(ixlay)%NPTT
324 IF (l_dira == 0) THEN
325 dira = zero
326 ELSEIF (irep == 0) THEN
327 j1 = 1+(ixlay-1)*l_dira*nel
328 j2 = ixlay*l_dira*nel
329 dira(j1:j2) = xfem_str%BUFLY(ixlay)%DIRA(1:nel*l_dira)
330 ENDIF
331C
332 DO i=jft,jlt
333 sigy(i) = ep30
334 zcfac(i,1) = one
335 zcfac(i,2) = one
336 alpe(i) = one
337 ENDDO
338C-----------------------------------------
339C CALCULS PRELIMINAIRES GLOBAL-->LOCAL
340C-----------------------------------------
341 ilev = nxel*(ixlay-1) + ixel
342C---
343C
344 IF (igtyp == 1 .or. igtyp == 9) THEN
345 DO i=jft,jlt
346 thke0(i) = thke(i)
347 ENDDO
348 ELSEIF (igtyp == 51 .OR. igtyp == 52) THEN
349 ipthk = 1 + nxlay
350 thkr = stack%GEO(ipthk+ixlay,isubstack)
351 DO i=jft,jlt
352 thke0(i) = thke(i) * thkr ! layer thickness (real)
353 ENDDO
354 ELSE ! IGTYP == 11...
355 ipthk = 300
356 thkr = geo(ipthk+ixlay,pid(1))
357 DO i=jft,jlt
358 thke0(i) = thke(i) * thkr
359 ENDDO
360 ENDIF
361c
362 IF (nxlay > 1) THEN
363 lbuf => xfem_str%BUFLY(ixlay)%LBUF(ir,is,it)
364 bufly => xfem_str%BUFLY(ixlay)
365 offg => lbuf%OFF
366 smstrg => lbuf%SMSTR
367 thkg => lbuf%THK ! layer thickness, not integration pt !
368 strag => lbuf%STRA
369 forg => lbuf%FOR
370 momg => lbuf%MOM
371 eintg => lbuf%EINT
372 epsdg => lbuf%EPSD
373 tempg => lbuf%TEMP
374 eintth => lbuf%EINTTH
375 hourgg => bufly%HOURG
376 ELSEIF (nxlay == 1) THEN
377 offg => gbuf%OFF
378 smstrg => gbuf%SMSTR
379 thkg => gbuf%THK
380 strag => gbuf%STRA
381 forg => gbuf%FOR
382 momg => gbuf%MOM
383 eintg => gbuf%EINT
384 epsdg => gbuf%EPSD
385 tempg => gbuf%TEMP
386 eintth => gbuf%EINTTH
387 hourgg => gbuf%HOURG
388 ENDIF
389c
390C !Coords + Calculation + lives of ghost elements instead of STD
391 CALL ccoor3z_crk(jft ,jlt ,nft ,iel_crk,iadc_crk,
392 2 vl1 ,vl2 ,vl3 ,vl4 ,vrl1 ,
393 3 vrl2 ,vrl3 ,vrl4 ,x1g ,x2g ,
394 4 x3g ,x4g ,y1g ,y2g ,y3g ,
395 5 y4g ,z1g ,z2g ,z3g ,z4g ,
396 6 vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
397 7 vy2 ,vy3 ,vy4 ,vz1 ,vz2 ,
398 8 vz3 ,vz4 ,vrx1 ,vrx2 ,vrx3 ,
399 9 vrx4 ,vry1 ,vry2 ,vry3 ,vry4 ,
400 a vrz1 ,vrz2 ,vrz3 ,vrz4 ,ilev ,
401 b offg )
402C
403 CALL czcorc1(numnod ,numelc ,xfem_str,
404 1 jft ,jlt ,x ,v ,vr ,
405 2 ixc ,pm ,plat ,area ,
406 3 a_i ,vl13 ,vl24 ,vlhi ,rlxyz ,
407 4 vqn ,vq ,ll ,l13 ,l24 ,
408 5 x13 ,x24 ,y13 ,y24 ,mx13 ,
409 6 mx23 ,mx34 ,my13 ,my23 ,my34 ,
410 7 z1 ,lxyz ,dd ,db ,smstrg ,
411 9 irep ,nptt ,nxlay ,ismstr ,
412 a dir_a ,dir_b ,offg ,rlxyz ,lxyz ,
413 b facn ,py1 ,px2 ,py2 ,r11 ,
414 c r12 ,r13 ,r21 ,r22 ,r23 ,
415 d r31 ,r32 ,r33 ,rlz ,isrot ,
416 e ixfem2 ,vx1 ,vx2 ,vx3 ,vx4 ,
417 f vy1 ,vy2 ,vy3 ,vy4 ,vz1 ,
418 g vz2 ,vz3 ,vz4 ,vrx1 ,vrx2 ,
419 h vrx3 ,vrx4 ,vry1 ,vry2 ,vry3 ,
420 i vry4 ,vrz1 ,vrz2 ,vrz3 ,vrz4 ,
421 j x1g ,x2g ,x3g ,x4g ,y1g ,
422 k y2g ,y3g ,y4g ,z1g ,z2g ,
423 l z3g ,z4g ,thke0 ,diz ,ux1 ,
424 m ux2 ,ux3 ,ux4 ,uy1 ,uy2 ,
425 n uy3 ,uy4 ,xl2 ,xl3 ,xl4 ,
426 o yl2 ,yl3 ,yl4 ,vl1 ,vl2 ,
427 p vl3 ,vl4 ,nel ,z2 )
428C
429 CALL cncoef3b(jft ,jlt ,pm ,mat ,geo ,
430 2 pid ,area ,shf ,thk0 ,
431 3 thk02 ,nu ,g ,ym ,
432 4 a11 ,a12 ,thkg ,thke0 ,ssp ,
433 5 rho ,vol0 ,gs ,mtn ,ithk ,
434 6 nptt ,dt1c ,dt1 ,ihbe ,amu ,
435 7 gsr ,a11sr ,a12sr ,nusr ,shfsr ,
436 8 krz ,igeo ,a11r ,isubstack, stack%PM,
437 9 mat_elem%MAT_PARAM(imat)%UPARAM ,dira ,dirb ,
438 a uvar ,fac58 ,nel ,zoffset)
439C
440 CALL cncoefort(jft ,jlt ,pm ,mat ,geo ,
441 1 pid ,mtn ,nptt ,hm ,hf ,
442 2 hc ,hmfor ,iorth ,dir_a ,igeo ,
443 3 isubstack,stack,xfem_str ,nxlay ,thkg ,
444 4 drape_sh4n ,nft ,nel ,indx_drape , thke,
445 5 sedrape,numel_drape , mat_elem)
446C----------------------------------
447C STRAIN RATE CALCULATION
448C----------------------------------
449 CALL czdef(jft ,jlt ,area ,a_i ,vl13 ,vl24 ,
450 2 vlhi ,rlxyz,vdef ,dhg ,x13 ,
451 3 x24 ,y13 ,y24 ,mx13 ,mx23 ,mx34 ,
452 4 my13 ,my23 ,my34 ,z1 ,dt1 ,off ,
453 5 offg ,rlxyz)
454 IF (isrot > 0) THEN
455 CALL czdefrz(jft ,jlt ,area ,a_i ,rlz ,
456 1 vdef ,vhgzk,vhgze,x13 ,x24 ,
457 2 y13 ,y24 ,mx13 ,mx23,mx34 ,
458 3 my13 ,my23 ,my34 ,z1 ,dhg ,
459 4 bm0rz,bmkrz,bmerz,vl13,vl24 ,
460 5 vrlz )
461 ENDIF
462C----------------------------------
463C STRAIN CALCULATION
464C----------------------------------
465 CALL czstra3(jft ,jlt ,nft, vdef,strag ,
466 2 exx ,eyy ,exy, exz ,eyz ,
467 3 kxx ,kyy ,kxy, dt1c,tani ,
468 4 iepsdot,istrain,ux1 ,ux2 ,ux3 ,
469 5 ux4 ,uy1 ,uy2 ,uy3 ,uy4 ,
470 6 y24 ,px2 ,py1 ,py2 ,area ,
471 7 ismstr ,mtn ,bid ,bid ,bid ,
472 8 nel )
473C-----------------
474C CONTRAINTES
475C-----------------
476 DO i = jft,jlt
477 tempel(i) = zero
478 ENDDO
479 IF (jthe /= 0 ) CALL tempcg(numnod, nel ,ixc ,temp ,tempel)
480C-----------------------------
481 IF ((itask==0).AND.(imon_mat==1)) CALL startime(timers,35)
482C-----------------------------
483 CALL cmain3(timers,
484 1 xfem_str ,jft ,jlt ,nft ,iparg ,
485 2 nel ,mtn ,ipla ,ithk ,group_param,
486 3 pm ,geo ,npf ,tf ,bufmat ,
487 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
488 5 area ,exx ,eyy ,exy ,exz ,
489 6 eyz ,kxx ,kyy ,kxy ,nu ,
490 7 off ,thk0 ,mat ,pid ,mat_elem,
491 8 forg ,momg ,strag ,failwave ,fwave ,
492 9 thkg ,eintg ,iofc ,
493 a g ,a11 ,a12 ,vol0 ,indxof ,
494 b ngl ,zcfac ,shf ,gs ,epsdg ,
495 c kfts ,ihbe ,alpe ,
496 d dir_a ,dir_b ,igeo ,
497 e ipm ,ifailure ,npg ,fheat ,
498 f tempel ,die ,jthe ,iexpan ,tempg ,
499 g ibid ,bid ,
500 h bid ,bid ,bid ,bid ,bid ,
501 i bid ,bid ,bid ,r11 ,r12 ,
502 j r13 ,r21 ,r22 ,r23 ,r31 ,
503 k r32 ,r33 ,ibid ,table ,ixfem ,
504 l bid ,sensors ,bid ,elcrkini,
505 m dir1_crk ,dir2_crk ,ll ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
506 n ismstr ,ir ,is ,nlayer ,nptt ,
507 o ixlay ,ixel ,isubstack ,stack ,
508 p bid ,itask ,drape_sh4n ,varnl ,nloc_dmg,
509 r indx_drape, thke ,sedrape ,numel_drape,dt ,
510 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
511 s userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,
512 t sdir_b ,gbuf%FOR_G ,ssp_eq ,
513 x ipart ,lipart1 ,ipartc )
514C-----------------------------
515 IF ((itask==0).AND.(imon_mat==1)) CALL stoptime(timers,35)
516C--------------------------
517C BALANCES BY MATERIAL
518C--------------------------
519 IF (ipri == 1)
520 1 CALL cbilan(
521 1 jft, jlt, pm, v,
522 2 ixc, thkg, eintg, partsav,
523 3 area, mat, ipartc, bid,
524 4 bid, bid, bid, bid,
525 5 bid, ibid, off, nft,
526 6 gresav, grth, igrth, vl1,
527 7 vl2, vl3, vl4, vrl1,
528 8 vrl2, vrl3, vrl4, x1g,
529 9 x2g, x3g, x4g, y1g,
530 a y2g, y3g, y4g, z1g,
531 b z2g, z3g, z4g, ixfem2,
532 c iexpan, eintth, itask, gbuf%VOL,
533 d actifxfem,igre,sensors,nel,gbuf%G_WPLA,
534 e gbuf%WPLA )
535C
536 CALL cndt3(
537 1 jft ,jlt ,off , dt2t ,amu ,
538 2 neltst ,ityptst,sti , stir ,offg ,
539 3 ssp ,viscmx ,rho , vol0 ,thk0 ,thk02,
540 4 a11 ,ll ,alpe , ngl ,ismstr,
541 5 iofc ,nnod ,area , g ,shf ,
542 6 msc ,dmelc ,jsms , bid ,igtyp ,
543 7 igmat ,a11r ,gbuf%G_DT, gbuf%DT,mtn ,
544 8 pm ,mat(jft),nel ,zoffset,ssp_eq)
545 CALL czfintce(jft ,jlt ,thk0 ,thk02,a_i ,x13 ,
546 2 x24 ,y13 ,y24 ,z1 ,mx23 ,mx13 ,
547 3 mx34 ,my13 ,my23 ,my34 ,forg ,momg ,
548 4 vf ,vm ,nel )
549 IF (isrot > 0) THEN
550 CALL czfintcrz(jft ,jlt ,thk0 ,vol0 ,area ,x13 ,
551 2 x24 ,y13 ,y24 ,z1 ,mx23 ,mx13 ,
552 3 mx34 ,my13 ,my23 ,my34 ,forg ,hourgg,
553 4 vf ,vmz ,bm0rz,krz ,vrlz ,dt1c ,
554 5 eintg ,off ,nel )
555 CALL czfintnrz_or(
556 1 jft ,jlt ,thk0 ,thk02 ,a_i ,dhg ,
557 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
558 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,hourgg ,
559 4 forg ,momg ,vf ,vm ,zcfac,a11 ,
560 5 a12 ,g ,gs ,sigy ,off ,fac1 ,
561 6 rho ,area ,dt1 ,eintg ,amu ,vlhi ,
562 7 nptt ,ipartc ,partsav,kfts ,gsr ,
563 8 a11sr ,a12sr ,nusr ,shfsr ,bmkrz,bmerz ,
564 9 vhgzk ,vhgze ,krz ,vmz ,iorth,hm ,
565 a hf ,hc ,hmfor ,mtn ,nel )
566 ELSE
567 IF (iorth == 0) THEN
568 CALL czfintn1(jft ,jlt ,thk0 ,thk02,a_i ,dhg ,
569 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
570 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,hourgg,
571 4 forg ,momg ,vf ,vm ,zcfac,a11 ,
572 5 a12 ,g ,shf ,sigy ,off ,fac1 ,
573 6 rho ,area ,dt1 ,eintg,amu ,vlhi ,
574 7 nptt ,ipartc ,partsav,kfts ,gsr ,nel ,
575 8 a11sr ,a12sr ,nusr ,shfsr,mtn ,fac58 )
576 ELSE
577 CALL czfintn_or(jft ,jlt ,thk0 ,thk02,a_i ,dhg ,
578 2 x13 ,x24 ,y13 ,y24 ,z1 ,mx23 ,
579 3 mx13 ,mx34 ,my13 ,my23 ,my34 ,hourgg ,
580 4 forg ,momg ,vf ,vm ,zcfac ,a11 ,
581 5 a12 ,g ,gs ,sigy ,off ,fac1 ,
582 6 rho ,area , dt1,eintg,amu ,vlhi ,
583 7 nptt ,ipartc,partsav,kfts ,gsr ,
584 8 a11sr,a12sr ,nusr,shfsr ,iorth ,hm ,
585 9 hf ,hc ,hmfor,mtn ,nel)
586 ENDIF ! IF (IORTH == 0)
587 ENDIF ! (ISROT > 0) THEN
588C
589 IF (nptt == 1)
590 1 CALL czfintnm(jft ,jlt ,thk0 ,a_i ,dhg ,
591 2 x13 ,x24 ,y13 ,y24 ,vf ,
592 3 g ,rho ,area ,amu ,dt1 ,
593 4 off ,ipartc,partsav,kfts )
594 CALL czproj1(
595 1 jft ,jlt ,vqn ,vq ,vf ,
596 2 vm ,plat ,
597 3 f11 ,f12 ,f13 ,f14 ,f21 ,
598 4 f22 ,f23 ,f24 ,f31 ,f32 ,
599 5 f33 ,f34 ,m11 ,m12 ,m13 ,
600 6 m14 ,m21 ,m22 ,m23 ,m24 ,
601 7 m31 ,m32 ,m33 ,m34 ,fzero,
602 8 z1 ,lxyz ,dd ,db ,lxyz ,
603 9 isrot ,diz ,vmz )
604C-------------------------
605c Shell thermal
606C--------------------------
607C
608 IF (jthe /= 0) THEN
609 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1) THEN
610 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
611 . y24 ,px2 ,py1 ,py2 ,area ,dt1c ,
612 . temp ,tempel ,fheat ,them ,glob_therm%THEACCFACT)
613 ELSE
614 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
615 . y24 ,px2 ,py1 ,py2 ,area ,dt1c ,
616 . temp ,tempel ,die ,them ,glob_therm%THEACCFACT)
617 ENDIF
618 ENDIF
619C
620C--------------------------
621C FORCE ASSEMBLY in the sky addresses of phantom nodes
622C--------------------------
623 IF (iparit == 1)
624 . CALL cupdtn3_crk(
625 . jft ,jlt ,nft ,ixc ,off ,iadc ,
626 . f11 ,f21 ,f31 ,f12 ,f22 ,f32 ,
627 . f13 ,f23 ,f33 ,f14 ,f24 ,f34 ,
628 . m11 ,m21 ,m31 ,m12 ,m22 ,m32 ,
629 . m13 ,m23 ,m33 ,m14 ,m24 ,m34 ,
630 . sti ,stir ,fsky ,elcutc,iadc_crk,iel_crk,
631 . ilev ,inod_crk,facn ,offg ,eintg,partsav,
632 . ipartc,ixlay ,crksky)
633C-------------------------
634 ENDDO ! DO IXLAY=1,NXLAY
635C-------------------------
636 IF (ALLOCATED(dira)) DEALLOCATE(dira)
637 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
638 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
639 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
640 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
641 IF (ALLOCATED(varnl)) DEALLOCATE(varnl)
642C-------------------------
643 RETURN
644 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 ccoor3z_crk(jft, jlt, nft, iel_crk, iadc_crk, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, vrx1, vrx2, vrx3, vrx4, vry1, vry2, vry3, vry4, vrz1, vrz2, vrz3, vrz4, ilev, offg)
Definition ccoor3z_crk.F:41
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 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 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 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 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 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_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_crk(timers, xfem_str, jft, jlt, nft, ityptst, ipari, mtn, ipri, ithk, neltst, istrain, ipla, tt, dt1, dt2t, pm, geo, partsav, ixc, group_param, bufmat, tf, npf, iadc, failwave, x, d, dr, v, vr, f, m, stifn, stifr, fsky, tani, offset, eani, indxof, 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, ismstr, mat_elem, 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, crksky, sensors, ixel, isubstack, uxint_mean, uyint_mean, uzint_mean, nlevxf, nodedge, crkedge, stack, drape_sh4n, nloc_dmg, indx_drape, igre, dt, ncycle, snpc, stf, glob_therm, idel7nok, userl_avail, maxfunc, sbufmat, ipart, lipart1)
Definition czforc3_crk.F:91
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 area(d1, x, x2, y, y2, eint, stif0)
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 cupdtn3_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, fac, offg, eint, partsav, ipartc, ilay, crksky)
Definition xfemfsky.F:281