OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3forc3_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!|| c3forc3_crk ../engine/source/elements/xfem/c3forc3_crk.F
25!||--- called by ------------------------------------------------------
26!|| forintc ../engine/source/elements/forintc.F
27!||--- calls -----------------------------------------------------
28!|| c3bilan ../engine/source/elements/sh3n/coque3n/c3bilan.F
29!|| c3brz3 ../engine/source/elements/sh3n/coque3n/c3defo3.F
30!|| c3coef3 ../engine/source/elements/sh3n/coque3n/c3coef3.F
31!|| c3coefrz3 ../engine/source/elements/sh3n/coquedk/cncoef3.F
32!|| c3coor3_crk ../engine/source/elements/xfem/c3coor3_crk.F
33!|| c3curv3 ../engine/source/elements/sh3n/coque3n/c3curv3.F
34!|| c3defo3 ../engine/source/elements/sh3n/coque3n/c3defo3.F
35!|| c3defrz ../engine/source/elements/sh3n/coque3n/c3defo3.F
36!|| c3deri3 ../engine/source/elements/sh3n/coque3n/c3deri3.F
37!|| c3dt3 ../engine/source/elements/sh3n/coque3n/c3dt3.F
38!|| c3evec3 ../engine/source/elements/sh3n/coque3n/c3evec3.F
39!|| c3fcum3 ../engine/source/elements/sh3n/coque3n/c3fcum3.F
40!|| c3fint3 ../engine/source/elements/sh3n/coque3n/c3fint3.F
41!|| c3fintrz ../engine/source/elements/sh3n/coque3n/c3fint3.F
42!|| c3mcum3 ../engine/source/elements/sh3n/coque3n/c3mcum3.F
43!|| c3mzcum3 ../engine/source/elements/sh3n/coque3n/c3mcum3.F
44!|| c3pxpy3 ../engine/source/elements/sh3n/coque3n/c3pxpy3.f
45!|| c3stra3 ../engine/source/elements/sh3n/coque3n/c3stra3.F
46!|| c3updt3_crk ../engine/source/elements/xfem/xfemfsky.F
47!|| cmain3 ../engine/source/materials/mat_share/cmain3.F
48!|| csens3 ../engine/source/elements/shell/coque/csens3.F
49!|| startime ../engine/source/system/timer_mod.F90
50!|| stoptime ../engine/source/system/timer_mod.F90
51!|| temp3cg ../engine/source/elements/sh3n/coque3n/temp3cg.F
52!|| therm3c ../engine/source/elements/sh3n/coque3n/therm3c.F
53!||--- uses -----------------------------------------------------
54!|| crackxfem_mod ../engine/share/modules/crackxfem_mod.F
55!|| drape_mod ../engine/share/modules/drape_mod.F
56!|| dt_mod ../engine/source/modules/dt_mod.F
57!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
58!|| failwave_mod ../common_source/modules/failwave_mod.F
59!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
60!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
61!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
62!|| sensor_mod ../common_source/modules/sensor_mod.F90
63!|| stack_mod ../engine/share/modules/stack_mod.F
64!|| table_mod ../engine/share/modules/table_mod.F
65!|| timer_mod ../engine/source/system/timer_mod.F90
66!||====================================================================
67 SUBROUTINE c3forc3_crk(TIMERS,
68 1 XFEM_STR, JFT, JLT, PM,
69 2 IXTG, X, F, M,
70 3 V, R, FAILWAVE, NVC,
71 4 MTN, GEO, TF, NPF,
72 5 BUFMAT, PMSAV, DT2T, NELTST,
73 6 ITYPTST, STIFN, STIFR, FSKY,
74 7 CRKSKY, IADTG, EPSDOT, OFFSET,
75 8 IPARTTG, THKE, F11, F12,
76 9 F13, F21, F22, F23,
77 A F31, F32, F33, M11,
78 B M12, M13, M21, M22,
79 C M23, M31, M32, M33,
80 D KFTS, GROUP_PARAM, MAT_ELEM, NEL,
81 E ISTRAIN, ISH3N, ITHK, IOFC,
82 F IPLA, NFT, ISMSTR, FZERO,
83 G IGEO, IPM, IFAILURE, ITASK,
84 H JTHE, TEMP, FTHE, FTHESKY,
85 I IEXPAN, GRESAV, GRTH, IGRTH,
86 J MSTG, DMELTG, JSMS, TABLE,
87 K IPARG, SENSORS, PTG, IXFEM,
88 L INOD_CRK, IEL_CRK, IADTG_CRK, ELCUTC,
89 M IXEL, STACK, ISUBSTACK, UXINT_MEAN,
90 N UYINT_MEAN, UZINT_MEAN, NLEVXF, NODEDGE,
91 O CRKEDGE, DRAPE_SH3N, IPRI, NLOC_DMG,
92 P INDX_DRAPE, IGRE, DT, NCYCLE ,
93 R SNPC, STF, GLOB_THERM, IDEL7NOK,
94 Q USERL_AVAIL, MAXFUNC, SBUFMAT)
95C-----------------------------------------------
96 USE timer_mod
97 USE table_mod
99 USE stack_mod
100 USE failwave_mod
101 USE mat_elem_mod
102 USE drape_mod
103 USE nlocal_reg_mod
104 USE sensor_mod
105 USE elbufdef_mod
106 USE dt_mod
107 use glob_therm_mod
108C-----------------------------------------------
109C I m p l i c i t T y p e s
110C-----------------------------------------------
111#include "implicit_f.inc"
112C-----------------------------------------------
113C G l o b a l P a r a m e t e r s
114C-----------------------------------------------
115#include "mvsiz_p.inc"
116C-----------------------------------------------
117C C o m m o n B l o c k s
118C-----------------------------------------------
119#include "param_c.inc"
120#include "com04_c.inc"
121#include "com_xfem1.inc"
122#include "parit_c.inc"
123#include "timeri_c.inc"
124C-----------------------------------------------
125C D u m m y A r g u m e n t s
126C-----------------------------------------------
127 TYPE(timer_) :: TIMERS
128 INTEGER,INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
129 INTEGER,INTENT(IN) :: MAXFUNC ! Maximum number of functions
130 INTEGER,INTENT(INOUT) :: IDEL7NOK ! Element deletion flag for IDEL flag in contact interfaces
131 INTEGER,INTENT(IN) :: SBUFMAT ! size of bufmat
132 INTEGER,INTENT(IN) :: STF ! size of TF
133 INTEGER,INTENT(IN) :: SNPC ! size of NPC
134 INTEGER, INTENT(IN) :: IGRE, NCYCLE
135 INTEGER JFT,JLT,NVC,MTN,NELTST,ITYPTST,OFFSET,
136 . NEL,ISTRAIN,ISH3N,ICSEN,
137 . ITHK,IOFC,IPLA,NFT,ISMSTR,KFTS,IFAILURE,
138 . JSMS,IXEL,ISUBSTACK,NLEVXF,IPRI
139 INTEGER NPF(*),IXTG(NIXTG,*),IADTG(3,*),IGEO(NPROPGI,*),IPM(*),
140 . IPARTTG(*),ITASK,JTHE,IEXPAN,GRTH(*),IGRTH(*),IPARG(*),
141 . IXFEM,INOD_CRK(*),IEL_CRK(*),IADTG_CRK(3,*),
142 . ELCUTC(2,*),NODEDGE(2,*),INDX_DRAPE(STDRAPE)
143 my_real
144 . PM(NPROPM,*),F(*),M(*),V(*),R(*),
145 . GEO(NPROPG,*),TF(*),BUFMAT(*),PMSAV(*),STIFN(*),
146 . STIFR(*),FSKY(*),EPSDOT(6,*),THKE(*),DT2T,
147 . F11(MVSIZ),F12(MVSIZ),F13(MVSIZ),
148 . F21(MVSIZ),F22(MVSIZ),F23(MVSIZ),
149 . F31(MVSIZ),F32(MVSIZ),F33(MVSIZ),
150 . M11(MVSIZ),M12(MVSIZ),M13(MVSIZ),
151 . M21(MVSIZ),M22(MVSIZ),M23(MVSIZ),
152 . M31(MVSIZ),M32(MVSIZ),M33(MVSIZ),
153 . FZERO(3,3,*),TEMP(*),FTHE(*),FTHESKY(*),GRESAV(*),
154 . mstg(*), dmeltg(*),ptg(3,*),
155 . uxint_mean(nlevxf,mvsiz),uyint_mean(nlevxf,mvsiz),
156 . uzint_mean(nlevxf,mvsiz)
157! SP issue :
158 REAL(kind=8), dimension(*), INTENT(in) :: x
159 TYPE(ttable) table(*)
160 TYPE (elbuf_struct_), TARGET :: XFEM_STR
161 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
162 TYPE (XFEM_SKY_) , DIMENSION(*) :: CRKSKY
163 TYPE (STACK_PLY) :: STACK
164 TYPE (FAILWAVE_STR_) :: FAILWAVE
165 TYPE (GROUP_PARAM_) :: GROUP_PARAM
166 TYPE (DRAPE_) :: DRAPE_SH3N(NUMELTG_DRAPE)
167 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
168 TYPE (NLOCAL_STR_) :: NLOC_DMG
169 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
170 TYPE (DT_), INTENT(IN) :: DT
171 type (glob_therm_) ,intent(inout) :: glob_therm
172C-----------------------------------------------
173C L o c a l V a r i a b l e s
174C-----------------------------------------------
175c indx utilise localement contrairement aux coques 4n
176 INTEGER
177 . I,J,J1,J2,IR,IS,IT,IPT,IFLAG,IGTYP,IXFEM2,IREP,IMAT,
178 . IUN,NPG,IBID,IDRIL,NG,IXLAY,NXLAY,NLAYER,NPTT,STEP,
179 . L_DIRA,L_DIRB,ILEV,IGMAT,IPTHK,ISH3NFR,IDRAPE,ACTIFXFEM,
180 . SEDRAPE, NUMEL_DRAPE
181 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),INDX(MVSIZ),FWAVE(MVSIZ)
182 my_real STI(MVSIZ),STIR(MVSIZ),RHO(MVSIZ),
183 . SSP(MVSIZ),VISCMX(MVSIZ),AREA(MVSIZ),
184 . X21(MVSIZ), Y21(MVSIZ), Z21(MVSIZ),
185 . x31(mvsiz), y31(mvsiz), z31(mvsiz),
186 . exx(mvsiz),eyy(mvsiz),exy(mvsiz),eyz(mvsiz),ezx(mvsiz),
187 . kxx(mvsiz),kyy(mvsiz),kxy(mvsiz),
188 . px1(mvsiz),py1(mvsiz),py2(mvsiz),
189 . x2(mvsiz), x3(mvsiz), y2(mvsiz), y3(mvsiz),
190 . x21g(mvsiz), y21g(mvsiz), z21g(mvsiz),
191 . x31g(mvsiz), y31g(mvsiz), z31g(mvsiz),
192 . off(mvsiz),sigy(mvsiz),thk0(mvsiz),
193 . nu(mvsiz),shf(mvsiz),dt1c(mvsiz),
194 . g(mvsiz),ym(mvsiz),a11(mvsiz),a12(mvsiz),
195 . vol0(mvsiz),thk02(mvsiz),zcfac(mvsiz,2),gs(mvsiz),
196 . vol00(mvsiz),alpe(mvsiz),die(mvsiz),tempel(mvsiz),
197 . e1x0(mvsiz), e1y0(mvsiz), e1z0(mvsiz), e2x0(mvsiz),
198 . e2y0(mvsiz), e2z0(mvsiz), e3x0(mvsiz), e3y0(mvsiz), e3z0(mvsiz),
199 . e1x(mvsiz),e1y(mvsiz),e1z(mvsiz),e2x(mvsiz),
200 . e2y(mvsiz),e2z(mvsiz),e3x(mvsiz),e3y(mvsiz),e3z(mvsiz),
201 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),
202 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),them(mvsiz,3),
203 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),
204 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),
205 . vx13(mvsiz), vx23(mvsiz),vy12(mvsiz),
206 . rlz(mvsiz,3),wxy(mvsiz),mlz(mvsiz,3),krz(mvsiz),
207 . b0rz(mvsiz,3),bkrz(mvsiz,2),berz(mvsiz,2),bm0rz(mvsiz,3,2),
208 . ecos(mvsiz),esin(mvsiz),a11r(mvsiz),thke0(mvsiz),aldt(mvsiz)
209 my_real :: dtime
210 my_real , DIMENSIOn(NEL) :: zoffset
211 my_real
212 . bid,thkr,f_def(mvsiz,8),wkxy(mvsiz)
213! SP issue :
214 REAL(kind=8), dimension(mvsiz) ::x1g,x2g,x3g
215 REAL(kind=8), dimension(mvsiz) ::y1g,y2g,y3g
216 REAL(kind=8), dimension(mvsiz) ::z1g,z2g,z3g
217C---
218 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
219 my_real,
220 . ALLOCATABLE, DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
221 my_real,
222 . DIMENSION(:) ,POINTER :: DIR_A,DIR_B
223 TARGET :: DIRA,DIRB
224C---
225 TYPE(BUF_LAY_) ,POINTER :: BUFLY
226 TYPE(G_BUFEL_) ,POINTER :: GBUF
227 TYPE(L_BUFEL_) ,POINTER :: LBUF
228C
229! variables for heat transfer
230 my_real, dimension(mvsiz) :: fheat
231!
232 my_real,
233 . DIMENSION(:) ,POINTER :: OFFG,THKG,STRAG,FORG,MOMG,
234 . EINTG,EPSDG,TEMPG,EINTTH,HOURGG
235 DOUBLE PRECISION,
236 . DIMENSION(:) ,POINTER :: smstrg
237 my_real,
238 . DIMENSION(:,:), ALLOCATABLE :: varnl
239 INTEGER NPTTOT
240 INTEGER SDIR_A ! Size of DIR_A
241 INTEGER SDIR_B ! Size of DIR_B
242C---------------------------
243c Attention : Coque3N + ISMSTR=10 pas compatible avec XFEM !!!
244C=======================================================================
245 bid = zero
246 iun = 1
247 ibid = 0
248 npg = 0
249 ir = 1
250 is = 1
251 it = 1
252 ng = 1
253 sedrape = stdrape
254 numel_drape = numeltg_drape
255 npttot = 1
256 ALLOCATE(varnl(nel,1))
257 varnl = zero
258 dtime = dt1c(1)
259C -----will put it in starter
260 IF (ismstr>=10) ismstr=4
261c
262 DO i=jft,jlt
263 mat(i) = ixtg(1,i)
264 pid(i) = ixtg(5,i)
265 ngl(i) = ixtg(6,i)
266 thk0(i) = thke(i)
267 ENDDO
268 imat = ixtg(1,jft)
269 icsen = igeo(3,pid(1))
270 igtyp = igeo(11,pid(1))
271 irep = iparg(35)
272 idril = iparg(41)
273 actifxfem = iparg(70)
274C-----------------------------------------
275 gbuf => xfem_str%GBUF
276 nxlay = xfem_str%NLAY
277 nlayer = 1
278C-----------------------------------------
279 IF (ixfem == 2) THEN
280 ixfem2 = 1 ! monolayer xfem
281 ELSE
282 ixfem2 = ixfem ! multinayer xfem
283 ENDIF
284c
285 ALLOCATE(elcrkini(nxlaymax*nel))
286 ALLOCATE(dir1_crk(nxlaymax*nel))
287 ALLOCATE(dir2_crk(nxlaymax*nel))
288 elcrkini = 0
289 dir1_crk = zero
290 dir2_crk = zero
291C
292 l_dira = xfem_str%BUFLY(1)%LY_DIRA
293 l_dirb = xfem_str%BUFLY(1)%LY_DIRB
294C
295 ALLOCATE(dira(nxlay*nel*l_dira))
296 ALLOCATE(dirb(nxlay*nel*l_dirb))
297 dira=zero
298 dirb=zero
299 sdir_a=nxlay*nel*l_dira
300 sdir_b=nxlay*nel*l_dirb
301 dir_a => dira(1:nxlay*nel*l_dira)
302 dir_b => dirb(1:nxlay*nel*l_dirb)
303C
304 DO ixlay=1,nxlay
305 nptt = xfem_str%BUFLY(ixlay)%NPTT
306 IF (l_dira == 0) THEN
307 dira = zero
308 ELSEIF (irep == 0) THEN
309 j1 = 1+(ixlay-1)*l_dira*nel
310 j2 = ixlay*l_dira*nel
311 dira(j1:j2) = xfem_str%BUFLY(ixlay)%DIRA(1:nel*l_dira)
312 ENDIF
313C
314 DO i=jft,jlt
315 sigy(i) = ep30
316 zcfac(i,1) = one
317 zcfac(i,2) = one
318 alpe(i) = one
319 tempel(i) = zero
320 ENDDO
321C---
322 ilev = nxel*(ixlay-1) + ixel
323C---
324 IF (igtyp == 1 .or. igtyp == 9) THEN
325 DO i=jft,jlt
326 thke0(i) = thke(i)
327 END DO
328 ELSEIF (igtyp == 51 .OR. igtyp == 52) THEN
329 ipthk = 1 + nxlay
330 thkr = stack%GEO(ipthk+ixlay,isubstack)
331 DO i=jft,jlt
332 thke0(i) = thke(i) * thkr ! layer thickness (real)
333 ENDDO
334 ELSE ! IGTYP == 11...
335 ipthk = 300
336 DO i=jft,jlt
337 thke0(i) = thke(i) * geo(ipthk+ixlay,ixtg(5,1))
338 END DO
339 ENDIF
340c
341 IF (nxlay > 1) THEN
342 lbuf => xfem_str%BUFLY(ixlay)%LBUF(ir,is,1)
343 bufly => xfem_str%BUFLY(ixlay)
344 offg => lbuf%OFF
345 smstrg => lbuf%SMSTR
346 thkg => lbuf%THK
347 strag => lbuf%STRA
348 forg => lbuf%FOR
349 momg => lbuf%MOM
350 eintg => lbuf%EINT
351 epsdg => lbuf%EPSD
352 tempg => lbuf%TEMP
353 eintth => lbuf%EINTTH
354 hourgg => bufly%HOURG
355 ELSEIF (nxlay == 1) THEN
356 offg => gbuf%OFF
357 smstrg => gbuf%SMSTR
358 thkg => gbuf%THK
359 strag => gbuf%STRA
360 forg => gbuf%FOR
361 momg => gbuf%MOM
362 eintg => gbuf%EINT
363 epsdg => gbuf%EPSD
364 tempg => gbuf%TEMP
365 eintth => gbuf%EINTTH
366 hourgg => gbuf%HOURG
367 ENDIF
368C
369 CALL c3coor3_crk(jft ,jlt ,offg ,off ,sigy ,
370 . dt1c ,thke0 ,vl1 ,vl2 ,vl3 ,
371 . vrl1 ,vrl2 ,vrl3 ,x1g ,x2g ,
372 . x3g ,y1g ,y2g ,y3g ,z1g ,
373 . z2g ,z3g ,ilev ,iel_crk ,iadtg_crk,
374 . nft )
375C----------use always old local sys
376 ish3nfr = 1
377 CALL c3evec3(xfem_str ,dir_a ,dir_b ,jft ,jlt ,
378 . irep ,e1x0 ,e1y0 ,e1z0 ,e2x0 ,
379 . e2y0 ,e2z0 ,e3x0 ,e3y0 ,e3z0 ,
380 . e1x ,e1y ,e1z ,e2x ,
381 . e2y ,e2z ,e3x ,e3y ,e3z ,
382 . nxlay ,gbuf%OFF,ecos ,esin ,ish3nfr ,
383 . nel ,area ,x21g ,y21g ,z21g ,
384 . x31g ,y31g ,z31g ,
385 . x1g ,x2g ,x3g ,y1g ,y2g ,
386 . y3g ,z1g ,z2g ,z3g )
387 IF (ismstr /= 3) THEN
388 CALL c3deri3(jft ,jlt ,px1 ,py1 ,py2 ,
389 . smstrg ,offg ,ismstr ,alpe ,aldt ,
390 . ux1 ,ux2 ,ux3 ,uy1 ,uy2 ,
391 . uy3 ,nel ,area ,x21g ,y21g ,
392 . z21g ,x31g ,y31g ,z31g ,x2 ,
393 . y2 ,x3 ,y3 ,
394 . e1x ,e1y ,e1z ,e2x ,
395 . e2y ,e2z ,e3x ,e3y ,e3z )
396 ELSE
397C bug : ismstr=3 non supporte pour coques 3N
398 CALL c3pxpy3(jft ,jlt ,pm ,sti ,stir,
399 2 smstrg ,px1 ,py1 ,py2 ,mat ,
400 3 ssp ,nel )
401 ENDIF
402C
403 IF (idril > 0) CALL c3brz3(jft ,jlt ,area ,x2 ,x3 ,
404 . y3 ,bm0rz,b0rz ,bkrz ,berz )
405c
406 CALL c3coef3(jft ,jlt ,pm ,mat ,geo ,
407 2 pid ,off ,area ,sti ,stir ,
408 3 shf ,thk0 ,thk02 ,nu ,
409 4 g ,ym ,a11 ,a12 ,thkg ,
410 5 ssp ,rho ,vol0 ,gs ,mtn ,
411 6 ithk ,nptt ,ismstr ,vol00 ,igeo ,
412 7 a11r , isubstack, stack%PM, nel ,zoffset)
413c
414 CALL c3defo3(jft ,jlt ,vl1 ,vl2 ,vl3 ,
415 . ixtg ,ish3n,px1 ,py1 ,py2 ,
416 . exx ,eyy ,exy ,eyz ,ezx ,
417 . vx13 ,vx23 ,vy12 ,
418 . e1x ,e1y ,e1z ,e2x ,
419 . e2y ,e2z ,e3x ,e3y ,e3z )
420
421 IF (idril > 0) THEN
422 CALL c3defrz(jft ,jlt ,rlz ,bm0rz ,b0rz,
423 1 bkrz ,berz ,e3x0 ,e3y0 ,e3z0 ,
424 2 vrl1 ,vrl2 ,vrl3 ,exx ,eyy ,
425 3 exy ,px1 ,py1 ,py2 ,wxy ,
426 4 area ,vx13 ,vx23 ,vy12 )
427 CALL c3coefrz3(jft ,jlt ,g, krz ,area ,thke0)
428 ENDIF
429
430 CALL c3curv3(jft,jlt,vrl1,vrl2,vrl3,
431 . ixtg,wkxy ,ismstr,kxx,kyy,
432 . kxy ,px1 ,py1 ,py2 ,eyz ,ezx ,
433 . e1x ,e1y ,e1z ,e2x ,e2y ,
434 . e2z ,e3x ,e3y ,e3z )
435
436 CALL c3stra3(jft ,jlt ,pm ,
437 2 mat ,area ,exx ,eyy ,exy ,
438 3 ezx ,eyz ,kxx ,kyy ,kxy ,
439 4 geo ,pid ,nu ,shf ,strag ,
440 5 ssp ,rho ,epsdot ,
441 6 nft ,istrain ,ismstr ,
442 7 ux1 ,ux2 ,ux3 ,uy1 ,uy2 ,
443 8 uy3 ,px1 ,py1 ,py2 ,mtn ,
444 9 f_def ,wkxy ,gbuf%STRW,nel )
445C
446C---+----1----+----2----+----3----+----4----+----5----+----6----+----7--
447 IF (jthe > 0 ) CALL temp3cg(jft ,jlt ,pm ,mat ,ixtg,
448 . temp ,tempel)
449C--------------------------
450 IF ((itask==0).AND.(imon_mat==1)) CALL startime(timers,35)
451C--------------------------
452 CALL cmain3(timers,
453 1 xfem_str ,jft ,jlt ,nft ,iparg ,
454 2 nel ,mtn ,ipla ,ithk ,group_param,
455 3 pm ,geo ,npf ,tf ,bufmat ,
456 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
457 5 area ,exx ,eyy ,exy ,ezx ,
458 6 eyz ,kxx ,kyy ,kxy ,nu ,
459 7 off ,thk0 ,mat ,pid ,mat_elem ,
460 8 forg ,momg ,strag ,failwave ,fwave ,
461 9 thkg ,eintg ,iofc ,
462 a g ,a11 ,a12 ,vol0 ,indx ,
463 b ngl ,zcfac ,shf ,gs ,epsdg ,
464 c kfts ,ish3n ,alpe ,
465 d dir_a ,dir_b ,igeo ,
466 e ipm ,ifailure ,npg ,fheat ,
467 f tempel ,die ,jthe ,iexpan ,tempg ,
468 g ibid ,bid ,
469 h bid ,bid ,bid ,bid ,bid ,
470 i bid ,bid ,bid ,e1x ,e1y ,
471 j e1z ,e2x ,e2y ,e2z ,e3x ,
472 k e3y ,e3z ,ng ,table ,ixfem ,
473 l bid ,sensors ,bid ,elcrkini ,
474 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
475 p ismstr ,ir ,is ,nlayer ,nptt ,
476 q ixlay ,ixel ,isubstack ,stack ,
477 p bid ,itask ,drape_sh3n ,varnl ,nloc_dmg ,
478 r indx_drape , thke ,sedrape ,numel_drape, dt ,
479 q ncycle ,snpc , stf ,nxlaymax ,idel7nok ,
480 s userl_avail, maxfunc, npttot,bufmat ,sdir_a ,
481 t sdir_b ,gbuf%FOR_G)
482
483C--------------------------
484 IF ((itask==0).AND.(imon_mat==1)) CALL stoptime(timers,35)
485C--------------------------
486C PAS DE TEMPS
487C--------------------------
488 IF (ismstr /= 3) CALL c3dt3(
489 1 jft ,jlt ,pm ,off ,dt2t ,
490 2 neltst ,ityptst ,sti ,stir ,offg ,
491 3 ssp ,viscmx ,ismstr ,nft ,iofc ,
492 4 alpe ,mstg ,dmeltg ,jsms ,ptg ,
493 5 shf ,igtyp ,igmat ,g ,a11 ,
494 6 a11r ,gbuf%G_DT ,gbuf%DT ,aldt ,thk0 ,
495 7 area ,ngl ,imat ,mtn ,nel ,
496 8 zoffset)
497
498C--------------------------
499C BILANS PAR MATERIAU
500C--------------------------
501c IFLAG = MOD(NCYCLE,NCPRI)
502 IF (ipri>0)
503 + CALL c3bilan(
504 1 jft, jlt, pm, v,
505 2 thkg, eintg, pmsav, iparttg,
506 3 rho, vol00, ixtg, x,
507 4 r, thk02, area, gresav,
508 5 grth, igrth, off, ixfem2,
509 6 ilev, iel_crk, iadtg_crk,nft,
510 7 iexpan, eintth, itask, mat,
511 8 gbuf%VOL, actifxfem,igre,sensors,
512 9 nel, gbuf%G_WPLA,gbuf%WPLA)
513C----------------------------
514C FORCES INTERNES
515C----------------------------
516 CALL c3fint3(jft ,jlt ,forg ,momg ,thk0,
517 2 px1 ,py1 ,py2 ,f11 ,f12 ,
518 3 f13 ,f21 ,f22 ,f23 ,f31 ,
519 4 f32 ,f33 ,m11 ,m12 ,m13 ,
520 5 m21 ,m22 ,m23 ,nel )
521
522 IF (idril > 0) THEN
523 CALL c3fintrz(jft ,jlt ,thk0 ,area ,px1 ,
524 2 py1 ,py2 ,f11 ,f12 ,f13 ,
525 3 f21 ,f22 ,f23 ,wxy ,forg ,
526 4 hourgg ,mlz ,bm0rz,b0rz ,bkrz ,
527 5 berz ,krz ,rlz ,dt1c ,eintg ,
528 6 off ,vol0 ,nel )
529 ENDIF
530C-------------------------
531c Thermique des coques
532C--------------------------
533 IF (jthe > 0) THEN
534 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
535 CALL therm3c(nel ,pm(1,imat) ,thk0 ,ixtg,
536 . px1 ,py1 ,py2 ,area ,dtime ,
537 . temp ,tempel,fheat ,them ,glob_therm%THEACCFACT)
538 ELSE
539 CALL therm3c(nel ,pm(1,imat) ,thk0 ,ixtg,
540 . px1 ,py1 ,py2 ,area ,dtime ,
541 . temp ,tempel,die ,them ,glob_therm%THEACCFACT)
542 END IF
543 ENDIF
544C--------------------------
545C THERMAL TIME STEP --- to be added --- (see c3forc3.F)
546C--------------------------
547C-------------------------
548C ASSEMBLE
549C-------------------------
550 CALL c3fcum3(jft,jlt,f,
551 . f11,f12,f13,f21,f22,f23,
552 . f31,f32,f33,fzero,
553 . e1x ,e1y ,e1z ,e2x ,e2y ,
554 . e2z ,e3x ,e3y ,e3z )
555
556 CALL c3mcum3(jft,jlt,m,m11,m12,
557 . m13,m21,m22,m23,m31,m32,m33,
558 . e1x ,e1y ,e1z ,e2x ,e2y ,
559 . e2z ,e3x ,e3y ,e3z )
560 IF (idril > 0) THEN
561 CALL c3mzcum3(jft ,jlt ,mlz ,e3x ,e3y,
562 . e3z ,m11 ,m12 ,m13 ,m21,
563 . m22 ,m23 ,m31 ,m32 ,m33)
564 ENDIF
565
566C
567 IF (iparit == 1)
568 . CALL c3updt3_crk(
569 . jft ,jlt ,nft ,ixtg ,off ,iadtg ,
570 . f11 ,f21 ,f31 ,f12 ,f22 ,f32 ,
571 . f13 ,f23 ,f33 ,
572 . m11 ,m21 ,m31 ,m12 ,m22 ,m32 ,
573 . m13 ,m23 ,m33 ,
574 . sti ,stir ,fsky ,elcutc,iadtg_crk,iel_crk,
575 . ilev ,ixlay ,offg ,crksky)
576C
577 IF (icsen > 0) CALL csens3(jft ,jlt ,pid ,igeo ,epsdg)
578C-------------------------
579 ENDDO ! DO IXLAY=1,NXLAY
580C-------------------------
581 IF (ALLOCATED(dira)) DEALLOCATE(dira)
582 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
583 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
584 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
585 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
586 IF (ALLOCATED(varnl)) DEALLOCATE(varnl)
587C-------------------------
588 RETURN
589 END
subroutine c3bilan(jft, jlt, pm, v, thk, eint, partsav, iparttg, rho, vol00, ixtg, x, vr, thk02, area, gresav, grth, igrth, off, ixfem, ilev, iel_crk, iadtg_crk, nft1, iexpan, eintth, itask, mat, gvol, actifxfem, igre, sensors, nel, g_wpla, wpla)
Definition c3bilan.F:47
subroutine c3coef3(jft, jlt, pm, mat, geo, pid, off, area, sti, stir, shf, thk0, thk02, nu, g, ym, a11, a12, thk, ssp, rho, vol0, gs, mtn, ithk, npt, ismstr, vol00, igeo, a11r, isubstack, pm_stack, nel, zoffset)
Definition c3coef3.F:37
subroutine c3coor3_crk(jft, jlt, offg, off, sigy, dt1c, thke, vl1, vl2, vl3, vrl1, vrl2, vrl3, x1, x2, x3, y1, y2, y3, z1, z2, z3, ilev, iel_crk, iadc_crk, nft)
Definition c3coor3_crk.F:36
subroutine c3curv3(jft, jlt, vrl1, vrl2, vrl3, ixtg, wxy, ismstr, kxx, kyy, kxy, px1, py1, py2, eyz, ezx, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3curv3.F:34
subroutine c3defo3(jft, jlt, vl1, vl2, vl3, ixtg, ish3n, px1, py1, py2, exx, eyy, exy, eyz, ezx, vx13, vx23, vy12, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3defo3.F:35
subroutine c3defrz(jft, jlt, rlz, bm0rz, b0rz, bkrz, berz, e3x, e3y, e3z, vrl1, vrl2, vrl3, exx, eyy, exy, px1, py1, py2, wxy, area, vx13, vx23, vy12)
Definition c3defo3.F:190
subroutine c3brz3(jft, jlt, area, x2, x3, y3, bm0rz, b0rz, bkrz, berz)
Definition c3defo3.F:140
subroutine c3deri3(jft, jlt, px1, py1, py2, smstr, offg, ismstr, alpe, aldt, ux1, ux2, ux3, uy1, uy2, uy3, nel, area, x21g, y21g, z21g, x31g, y31g, z31g, x2, y2, x3, y3, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3deri3.F:37
subroutine c3dt3(jft, jlt, pm, off, dt2t, neltst, ityptst, sti, stir, offg, ssp, viscmx, ismstr, nft, iofc, alpe, mstg, dmeltg, jsms, ptg, shf, igtyp, igmat, g, a1, a11r, g_dt, dtel, aldt, thk0, area, ngl, imat, mtn, nel, zoffset)
Definition c3dt3.F:39
subroutine c3fcum3(jft, jlt, f, f11, f12, f13, f21, f22, f23, f31, f32, f33, fzero, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3fcum3.F:34
subroutine c3fint3(jft, jlt, for, mom, thk, px1, py1, py2, fx1, fx2, fx3, fy1, fy2, fy3, fz1, fz2, fz3, mx1, mx2, mx3, my1, my2, my3, nel)
Definition c3fint3.F:34
subroutine c3fintrz(jft, jlt, thk, area, px1, py1, py2, f11, f12, f13, f21, f22, f23, wxy, vstre, vsrz, vmz, bm0rz, b0rz, bkrz, berz, krz, rlz, dt1c, eint, off, vol, nel)
Definition c3fint3.F:129
subroutine c3forc3_crk(timers, xfem_str, jft, jlt, pm, ixtg, x, f, m, v, r, failwave, nvc, mtn, geo, tf, npf, bufmat, pmsav, dt2t, neltst, ityptst, stifn, stifr, fsky, crksky, iadtg, epsdot, offset, iparttg, thke, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33, kfts, group_param, mat_elem, nel, istrain, ish3n, ithk, iofc, ipla, nft, ismstr, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mstg, dmeltg, jsms, table, iparg, sensors, ptg, ixfem, inod_crk, iel_crk, iadtg_crk, elcutc, ixel, stack, isubstack, uxint_mean, uyint_mean, uzint_mean, nlevxf, nodedge, crkedge, drape_sh3n, ipri, nloc_dmg, indx_drape, igre, dt, ncycle, snpc, stf, glob_therm, idel7nok, userl_avail, maxfunc, sbufmat)
Definition c3forc3_crk.F:95
subroutine c3mcum3(jft, jlt, m, m11, m12, m13, m21, m22, m23, m31, m32, m33, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3mcum3.F:33
subroutine c3mzcum3(jft, jlt, mlz, e3x, e3y, e3z, m11, m12, m13, m21, m22, m23, m31, m32, m33)
Definition c3mcum3.F:88
subroutine c3pxpy3(jft, jlt, pm, sti, stir, smstr, px1, py1, py2, mat, ssp, nel)
Definition c3pxpy3.F:32
subroutine c3stra3(jft, jlt, pm, mat, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, geo, pid, nu, shf, gstr, ssp, rho, epsdot, nft, istrain, ismstr, ux1, ux2, ux3, uy1, uy2, uy3, px1, py1, py2, mtn, f_def, wxy, gstrw, nel)
Definition c3stra3.F:38
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 c3coefrz3(jft, jlt, g, krz, area, thk)
Definition cncoef3.F:468
subroutine csens3(jft, jlt, pid, igeo, epsp)
Definition csens3.F:38
subroutine c3evec3(jft, jlt, area, x1, x2, x3, y1, y2, y3, z1, z2, z3, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, x31, y31, z31, x2l, x3l, y3l)
Definition c3evec3.F:39
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135
subroutine temp3cg(jft, jlt, pm, mat, ixtg, temp, tempel)
Definition temp3cg.F:31
subroutine therm3c(nel, pm, thk, ixtg, px1, py1, py2, area, dt, tempnc, tempel, dheat, fphi, theaccfact)
Definition therm3c.F:32
subroutine c3updt3_crk(jft, jlt, nft, ixtg, off, iadc, f11, f21, f31, f12, f22, f32, f13, f23, f33, m11, m21, m31, m12, m22, m32, m13, m23, m33, sti, stir, fsky, elcutc, iad_crktg, iel_crktg, ilev, ilay, offg, crksky)
Definition xfemfsky.F:516