OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3forc3.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 ../engine/source/elements/sh3n/coque3n/c3forc3.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 ../engine/source/elements/sh3n/coque3n/c3coor3.F
33!|| c3coort3 ../engine/source/elements/sh3n/coque3n/c3coor3.F
34!|| c3curv3 ../engine/source/elements/sh3n/coque3n/c3curv3.F
35!|| c3defo3 ../engine/source/elements/sh3n/coque3n/c3defo3.F
36!|| c3defrz ../engine/source/elements/sh3n/coque3n/c3defo3.F
37!|| c3deft3 ../engine/source/elements/sh3n/coque3n/c3defo3.F
38!|| c3deri3 ../engine/source/elements/sh3n/coque3n/c3deri3.F
39!|| c3dt3 ../engine/source/elements/sh3n/coque3n/c3dt3.F
40!|| c3evec3 ../engine/source/elements/sh3n/coque3n/c3evec3.F
41!|| c3fcum3 ../engine/source/elements/sh3n/coque3n/c3fcum3.F
42!|| c3fint3 ../engine/source/elements/sh3n/coque3n/c3fint3.F
43!|| c3fint_reg ../engine/source/elements/sh3n/coque3n/c3fint_reg.F
44!|| c3fintrz ../engine/source/elements/sh3n/coque3n/c3fint3.F
45!|| c3mcum3 ../engine/source/elements/sh3n/coque3n/c3mcum3.f
46!|| c3mzcum3 ../engine/source/elements/sh3n/coque3n/c3mcum3.F
47!|| c3pxpy3 ../engine/source/elements/sh3n/coque3n/c3pxpy3.F
48!|| c3sroto3 ../engine/source/elements/sh3n/coque3n/c3evec3.F
49!|| c3stra3 ../engine/source/elements/sh3n/coque3n/c3stra3.F
50!|| c3updt3 ../engine/source/elements/sh3n/coque3n/c3updt3.F
51!|| c3updt3p ../engine/source/elements/sh3n/coque3n/c3updt3.f
52!|| cmain3 ../engine/source/materials/mat_share/cmain3.F
53!|| crklayer3n_adv ../engine/source/elements/xfem/crklayer3n_adv.F
54!|| crklayer3n_ini ../engine/source/elements/xfem/crklayer3n_ini.F
55!|| crklen3n_adv ../engine/source/elements/xfem/crklen3n_adv.F
56!|| crkofftg ../engine/source/elements/xfem/precrklay.F
57!|| csens3 ../engine/source/elements/shell/coque/csens3.F
58!|| dttherm ../engine/source/time_step/dttherm.F90
59!|| precrklaytg ../engine/source/elements/xfem/precrklay.F
60!|| set_failwave_nod3 ../engine/source/materials/fail/failwave/set_failwave_nod3.F
61!|| set_failwave_sh3n ../engine/source/materials/fail/failwave/upd_failwave_sh3n.F
62!|| shroto3 ../engine/source/elements/sh3n/coque3n/c3evec3.F
63!|| shtroto3 ../engine/source/elements/sh3n/coque3n/c3evec3.F
64!|| startime ../engine/source/system/timer_mod.F90
65!|| stoptime ../engine/source/system/timer_mod.F90
66!|| temp3cg ../engine/source/elements/sh3n/coque3n/temp3cg.F
67!|| therm3c ../engine/source/elements/sh3n/coque3n/therm3c.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 c3forc3(TIMERS,
85 1 ELBUF_STR, JFT, JLT, PM,
86 2 IXTG, X, F, M,
87 3 V, R, FAILWAVE, NVC,
88 4 MTN, GEO, TF, NPF,
89 5 BUFMAT, PMSAV, DT2T, NELTST,
90 6 ITYPTST, STIFN, STIFR, FSKY,
91 7 IADTG, ITAB, EPSDOT, OFFSET,
92 8 IPARTTG, THKE, F11, F12,
93 9 F13, F21, F22, F23,
94 A F31, F32, F33, M11,
95 B M12, M13, M21, M22,
96 C M23, M31, M32, M33,
97 D GROUP_PARAM, MAT_ELEM, NEL, ISTRAIN,
98 E ISH3N, XEDGE3N, ITHK, IOFC,
99 F IPLA, NFT, ISMSTR, NPT,
100 G KFTS, FZERO, IGEO, IPM,
101 H IFAILURE, ITASK, JTHE, TEMP,
102 I FTHE, FTHESKY, IEXPAN, GRESAV,
103 J GRTH, IGRTH, MSTG, DMELTG,
104 K JSMS, TABLE, IPARG, IXFEM,
105 L SENSORS, PTG, IBORDNODE, ELCUTC,
106 M INOD_CRK, IEL_CRK, NODENR, IADTG_CRK,
107 N NODEDGE, CRKNODIAD, KNOD2ELC, CONDN,
108 O CONDNSKY, STACK, ISUBSTACK, XFEM_STR,
109 P CRKEDGE, DRAPE_SH3N, IPRI, NLOC_DMG,
110 Q xdp, INDX_DRAPE, IGRE, JTUR,
111 R DT, SNPC, STF, GLOB_THERM,
112 S IDEL7NOK, USERL_AVAIL, MAXFUNC, SBUFMAT ,
113 T IPART, LIPART1)
114C-----------------------------------------------
115C M o d u l e s
116C-----------------------------------------------
117 USE timer_mod
118 USE table_mod
119 USE mat_elem_mod
120 USE crackxfem_mod
121 USE stack_mod
122 USE failwave_mod
123 USE nlocal_reg_mod
124 USE drape_mod
125 USE sensor_mod
126 USE elbufdef_mod
127 USE dt_mod
128 use glob_therm_mod
129 use dttherm_mod
130 use element_mod , only : nixtg
131C-----------------------------------------------
132C I m p l i c i t T y p e s
133C-----------------------------------------------
134#include "implicit_f.inc"
135C-----------------------------------------------
136C G l o b a l P a r a m e t e r s
137C-----------------------------------------------
138#include "mvsiz_p.inc"
139C-----------------------------------------------
140C C o m m o n B l o c k s
141C-----------------------------------------------
142#include "param_c.inc"
143#include "com01_c.inc"
144#include "com04_c.inc"
145#include "scr18_c.inc"
146#include "com_xfem1.inc"
147#include "parit_c.inc"
148#include "timeri_c.inc"
149C-----------------------------------------------
150C D u m m y A r g u m e n t s
151C-----------------------------------------------
152 TYPE(timer_), INTENT(INOUT) :: TIMERS ! Timer structure
153 INTEGER, INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
154 INTEGER, INTENT(IN) :: MAXFUNC ! Maximum number of functions
155 INTEGER, INTENT(INOUT) :: IDEL7NOK ! Element deletion flag for IDEL flag in contact interfaces
156 INTEGER, INTENT(IN) :: SBUFMAT ! size of Bufmat
157 INTEGER, INTENT(IN) :: STF ! size of TF
158 INTEGER, INTENT(IN) :: SNPC ! size of NPC
159 INTEGER, INTENT(IN) :: JTUR
160 INTEGER, INTENT(IN) :: IGRE
161 INTEGER, INTENT(IN) :: IPRI
162 INTEGER JFT, JLT, NVC, MTN,NELTST,ITYPTST, OFFSET,
163 . NEL ,ISTRAIN,ISH3N , ICSEN,
164 . ITHK ,IOFC ,IPLA ,NFT ,ISMSTR ,NPT,KFTS,IFAILURE,
165 . JSMS,ISUBSTACK
166 INTEGER NPF(*),IXTG(NIXTG,*),IADTG(3,*),IGEO(NPROPGI,*),IPM(*),
167 . IPARTTG(*),ITASK,JTHE,IEXPAN,GRTH(*),IGRTH(*),IPARG(*),ITAB(*),
168 . IXFEM,IBORDNODE(*),
169 . ELCUTC(2,*),INOD_CRK(*),NODENR(*),IEL_CRK(*),IADTG_CRK(3,*),
170 . NODEDGE(2,*),CRKNODIAD(*),KNOD2ELC(*),XEDGE3N(3,*),INDX_DRAPE(STDRAPE)
171 my_real
172 . PM(NPROPM,*), F(*), M(*), V(*), R(*),X(*),
173 . GEO(NPROPG,*), TF(*), BUFMAT(*), PMSAV(*),STIFN(*),
174 . STIFR(*),FSKY(*),EPSDOT(6,*),THKE(*),DT2T,
175 . F11(MVSIZ), F12(MVSIZ), F13(MVSIZ),
176 . F21(MVSIZ), F22(MVSIZ), F23(MVSIZ),
177 . F31(MVSIZ), F32(MVSIZ), F33(MVSIZ),
178 . M11(MVSIZ), M12(MVSIZ), M13(MVSIZ),
179 . M21(MVSIZ), M22(MVSIZ), M23(MVSIZ),
180 . M31(MVSIZ), M32(MVSIZ), M33(MVSIZ),
181 . fzero(3,3,*),temp(*),fthe(*),fthesky(*),gresav(*),mstg(*),
182 . dmeltg(*),ptg(3,*),condn(*),condnsky(*)
183! SP issue :
184 REAL(kind=8), dimension(*), INTENT(in), TARGET :: xdp
185
186 TYPE(ttable) table(*)
187 TYPE (elbuf_struct_), TARGET :: ELBUF_STR
188 TYPE (ELBUF_STRUCT_), DIMENSION(NXEL), TARGET :: XFEM_STR ! take xfem_str
189 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
190 TYPE (STACK_PLY) :: STACK
191 TYPE (NLOCAL_STR_) ,TARGET :: NLOC_DMG
192 TYPE (FAILWAVE_STR_) ,TARGET :: FAILWAVE
193 TYPE (DRAPE_), DIMENSION(NUMELTG_DRAPE) :: DRAPE_SH3N
194 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
195 TYPE (MAT_ELEM_),INTENT(INOUT) :: MAT_ELEM
196 TYPE (GROUP_PARAM_) :: GROUP_PARAM
197 TYPE (DT_), INTENT(IN) :: DT
198 type (glob_therm_) ,intent(inout) :: glob_therm
199 INTEGER, INTENT(IN) :: LIPART1
200 INTEGER, DIMENSION(LIPART1,NPART), INTENT(IN) :: IPART
201C-----------------------------------------------
202C L o c a l V a r i a b l e s
203C-----------------------------------------------
204 INTEGER INDX(MVSIZ) ! local definition contrary to 4-node-shell elems
205 INTEGER MAT(MVSIZ),PID(MVSIZ),NGL(MVSIZ),FWAVE_EL(NEL)
206 INTEGER I, J, NPG, IBID, IDRIL, NG, IR, IS,
207 . IXEL,IXLAY,ILAY,NXLAY,NLAY,L_DIRA,L_DIRB,J1,J2,IGMAT,IGTYP,
208 . IMAT,NPTTOT,IREP,IFRAM_OLD,IFAILWAVE, IDRAPE,NPTT,IT,
209 . ACTIFXFEM ,SEDRAPE,NUMEL_DRAPE
210 my_real :: DTIME
211 INTEGER SDIR_A ! Size of DIR_A
212 INTEGER SDIR_B ! Size of DIR_B
213 my_real :: dt1,dtinv,asrate,eps_m2,eps_k2
214 my_real
215 . sti(mvsiz),stir(mvsiz),rho(mvsiz),bid,
216 . viscmx(mvsiz),area(mvsiz),
217 . x2l(mvsiz), x3l(mvsiz), y2l(mvsiz),y3l(mvsiz),
218 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), ezx(mvsiz), eyz(mvsiz),
219 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz),
220 . px1(mvsiz), py1(mvsiz), py2(mvsiz),
221 . off(mvsiz), sigy(mvsiz),thk0(mvsiz),
222 . nu(mvsiz) , shf(mvsiz), dt1c(mvsiz),
223 . g(mvsiz) , ym(mvsiz) , a11(mvsiz) , a12(mvsiz),
224 . vol0(mvsiz),thk02(mvsiz),zcfac(mvsiz,2), gs(mvsiz),
225 . vol00(mvsiz),alpe(mvsiz),die(mvsiz), tempel(mvsiz),
226 . e1x0(mvsiz), e1y0(mvsiz), e1z0(mvsiz), e2x0(mvsiz),
227 . e2y0(mvsiz), e2z0(mvsiz), e3x0(mvsiz), e3y0(mvsiz), e3z0(mvsiz),
228 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), e2x(mvsiz),
229 . e2y(mvsiz), e2z(mvsiz), e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),
230 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),
231 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3) ,them(mvsiz,3),
232 . x21g(mvsiz), y21g(mvsiz), z21g(mvsiz),
233 . x31g(mvsiz), y31g(mvsiz), z31g(mvsiz),
234 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),
235 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),
236 . vx13(mvsiz), vx23(mvsiz),vy12(mvsiz),
237 . rlz(mvsiz,3),wxy(mvsiz),mlz(mvsiz,3),krz(mvsiz),
238 . b0rz(mvsiz,3),bkrz(mvsiz,2),berz(mvsiz,2),bm0rz(mvsiz,3,2),
239 . conde(mvsiz),a11r(mvsiz),aldt(mvsiz),ssp(mvsiz)
240 my_real
241 . areat(mvsiz),x2t(mvsiz) ,y2t(mvsiz), x3t(mvsiz),y3t(mvsiz),
242 . f_def(mvsiz,8), u21x(mvsiz),u31x(mvsiz),u21y(mvsiz),u31y(mvsiz),
243 . rz13(mvsiz),rz23(mvsiz),bmrzt(mvsiz,8),wkxy(mvsiz),
244 . ecos(mvsiz),esin(mvsiz),nfor(nel,5),nmom(nel,3)
245 !
246 my_real , DIMENSION(NEL) :: zoffset
247! SP issue :
248 REAL(kind=8), dimension(mvsiz) ::x1g,x2g,x3g
249 REAL(kind=8), dimension(mvsiz) ::y1g,y2g,y3g
250 REAL(kind=8), dimension(mvsiz) ::z1g,z2g,z3g
251 my_real, dimension(nel) :: epsd_pg
252! variables for heat transfer
253 my_real, dimension(mvsiz) :: fheat
254 my_real, dimension(mvsiz) :: ssp_eq
255!
256C--- Variables for non-local formulation
257 INTEGER :: NDDL, K, INOD(3),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), L_NLOC, IPOS(3),INLOC
258 my_real, DIMENSION(:,:), ALLOCATABLE :: VAR_REG
259 my_real, DIMENSION(:), POINTER :: DNL
260C-----------------------------------------------
261 INTEGER, DIMENSION(NEL) :: OFFLY
262 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
263 my_real ,ALLOCATABLE, DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
264 my_real ,DIMENSION(:) ,POINTER :: DIR_A,DIR_B,CRKDIR,CRKLEN,DADV
265 TARGET :: DIRA,DIRB
266C-----
267
268 TYPE(G_BUFEL_) ,POINTER :: GBUF
269
270 TYPE(l_bufel_dir_) ,POINTER :: LBUF_DIR
271C-----------------------------------------------
272C S o u r c e L i n e s
273C-----------------------------------------------
274 GBUF => elbuf_str%GBUF
275 idrape = elbuf_str%IDRAPE
276 ibid = 0
277 bid = zero
278 idril = iparg(41)
279 actifxfem = iparg(70)
280 inloc = iparg(78)
281 nlay = elbuf_str%NLAY
282 sedrape = stdrape
283 numel_drape = numeltg_drape
284 tempel(:) = zero
285 fheat(: ) = zero
286cc NPT = MAX(NLAY,NPTT) --> set to = IPARG(6) , keeping it original
287C to allow for NPT = 0 (global LAW_3
288 npg = 1
289 ir = 1
290 is = 1
291 ng = 1
292 ixel = 0
293 ixlay = 0
294 irep = iparg(35)
295c
296 zcfac(1:mvsiz,1:2) = zero
297c
298 npttot = 0
299 DO ilay=1,nlay
300 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
301 ENDDO
302 nddl = npttot
303 ALLOCATE(var_reg(nel,nddl))
304 IF (npt == 0) npttot = npt ! compatibility with global integration
305 IF (ish3n==3.AND.ish3nfram==0) THEN
306 ifram_old =0
307 ELSE
308 ifram_old =1
309 END IF
310c
311 DO i=jft,jlt
312 mat(i) = ixtg(1,i)
313 pid(i) = ixtg(5,i)
314 ngl(i) = ixtg(6,i)
315 thk0(i) = thke(i)
316 ENDDO
317 imat = ixtg(1,jft)
318 icsen = igeo(3,pid(1))
319 igtyp = igeo(11,pid(1))
320 igmat = igeo(98,pid(1))
321c--------------------------------------------
322c Front wave
323c--------------------------------------------
324 ifailwave = iparg(79)
325 IF (ifailwave > 0) THEN
326 fwave_el(:) = zero
327 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
328 DO i=2,nlay
329 DO j=1,nel
330 offly(j) = max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
331 ENDDO
332 ENDDO
333 dadv => gbuf%DMG
334 CALL set_failwave_sh3n(failwave ,fwave_el ,dadv ,
335 . nel ,ixtg ,itab ,ngl ,offly )
336c
337 ENDIF
338c-------------------------------------
339 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
340 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
341 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52)) THEN
342 ALLOCATE(dira(npttot*nel*l_dira))
343 ALLOCATE(dirb(npttot*nel*l_dirb))
344 IF (l_dira == 0) THEN
345 CONTINUE
346 ELSEIF (irep == 0) THEN
347 npttot = 0
348 DO ilay=1,nlay
349 nptt = elbuf_str%BUFLY(ilay)%NPTT
350 DO it=1,nptt
351 j = npttot + it
352 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
353 j1 = 1+(j-1)*l_dira*nel
354 j2 = j*l_dira*nel
355 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
356 ENDDO
357 npttot = npttot + nptt
358 ENDDO
359 ENDIF
360 sdir_a = npttot*nel*l_dira
361 sdir_b = npttot*nel*l_dirb
362 dir_a => dira(1:npttot*nel*l_dira)
363 dir_b => dirb(1:npttot*nel*l_dirb)
364
365 ELSE ! idrape
366 sdir_a = nlay*nel*l_dira
367 sdir_b = nlay*nel*l_dirb
368 ALLOCATE(dira(nlay*nel*l_dira))
369 ALLOCATE(dirb(nlay*nel*l_dirb))
370 dira=zero
371 dirb=zero
372 IF (l_dira == 0) THEN
373 CONTINUE
374 ELSEIF (irep == 0) THEN
375 DO j=1,nlay
376 j1 = 1+(j-1)*l_dira*nel
377 j2 = j*l_dira*nel
378 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
379 ENDDO
380 ENDIF
381 sdir_a=nlay*nel*l_dira
382 sdir_b=nlay*nel*l_dirb
383 dir_a => dira(1:nlay*nel*l_dira)
384 dir_b => dirb(1:nlay*nel*l_dirb)
385 ENDIF ! IDRAPE
386c-------------------------------------
387 nxlay = nlay
388c
389 IF (ixfem > 0) THEN
390 ALLOCATE(elcrkini(nxlaymax*mvsiz))
391 ALLOCATE(dir1_crk(nxlaymax*mvsiz))
392 ALLOCATE(dir2_crk(nxlaymax*mvsiz))
393 dir1_crk = zero
394 dir2_crk = zero
395 elcrkini = 0
396 IF (nlevset > 0) THEN
397 CALL precrklaytg(jft ,jlt ,nft ,nxlay ,elcrkini,
398 . iel_crk,inod_crk,nodenr ,crkedge,xedge3n )
399 ENDIF
400 ELSE
401 ALLOCATE(elcrkini(0))
402 ALLOCATE(dir1_crk(0))
403 ALLOCATE(dir2_crk(0))
404 ENDIF ! IXFEM
405C--------------------
406C
407 CALL c3coor3(jft ,jlt ,x ,ixtg ,
408 . gbuf%OFF ,off ,dt1c ,
409 . v ,r ,vl1 ,vl2 ,vl3 ,
410 . vrl1 ,vrl2 ,vrl3 ,sigy ,
411 . x1g ,x2g ,x3g ,y1g ,y2g ,
412 . y3g ,z1g ,z2g ,z3g ,xdp )
413C
414C------Change local system (objective) but only for strain,stress computes
415C------to avoid many modifs especially complicated treatments like free shear locking
416c
417 CALL c3evec3(elbuf_str,dir_a ,dir_b ,jft ,jlt ,
418 . irep ,e1x0 ,e1y0 ,e1z0 ,e2x0 ,
419 . e2y0 ,e2z0 ,e3x0 ,e3y0 ,e3z0 ,
420 . e1x ,e1y ,e1z ,e2x ,
421 . e2y ,e2z ,e3x ,e3y ,e3z ,
422 . nlay ,gbuf%OFF ,ecos ,esin ,ifram_old,
423 . nel ,area ,x21g ,y21g ,z21g ,
424 . x31g ,y31g ,z31g ,
425 . x1g ,x2g ,x3g ,y1g ,y2g ,
426 . y3g ,z1g ,z2g ,z3g )
427c
428 IF (ismstr /= 3)THEN
429 CALL c3deri3(jft ,jlt ,px1 ,py1 ,py2 ,
430 . gbuf%SMSTR,gbuf%OFF,ismstr ,alpe ,aldt ,
431 . ux1 ,ux2 ,ux3 ,uy1 ,uy2 ,
432 . uy3 ,nel ,area ,x21g ,y21g ,
433 . z21g ,x31g ,y31g ,z31g ,x2l ,
434 . y2l ,x3l ,y3l ,
435 . e1x ,e1y ,e1z ,e2x ,
436 . e2y ,e2z ,e3x ,e3y ,e3z )
437 ELSE
438C bug ismstr=3 not supported ofr 3-node-shell elements
439 CALL c3pxpy3(jft ,jlt ,pm ,sti ,stir,
440 2 gbuf%SMSTR,px1 ,py1 ,py2 ,mat ,
441 3 ssp ,nel )
442 ENDIF
443C
444 IF (idril > 0) CALL c3brz3(jft ,jlt ,area ,x2l ,x3l ,
445 . y3l ,bm0rz,b0rz,bkrz,berz)
446c
447 CALL c3coef3(jft ,jlt ,pm ,mat ,geo ,
448 2 pid ,off ,area ,sti ,stir ,
449 3 shf ,thk0 ,thk02 ,nu ,
450 4 g ,ym ,a11 ,a12 ,gbuf%THK,
451 5 ssp ,rho ,vol0 ,gs ,mtn ,
452 6 ithk ,npttot ,ismstr ,vol00 ,igeo ,
453 7 a11r ,isubstack , stack%PM,nel, zoffset )
454c
455 CALL c3defo3(jft ,jlt ,vl1 ,vl2 ,vl3 ,
456 . ixtg ,ish3n ,px1 ,py1 ,py2 ,
457 . exx ,eyy ,exy ,eyz ,ezx ,
458 . vx13 ,vx23 ,vy12 ,
459 . e1x ,e1y ,e1z ,e2x ,
460 . e2y ,e2z ,e3x ,e3y ,e3z )
461c
462 IF (idril > 0) THEN
463 CALL c3defrz(jft ,jlt ,rlz ,bm0rz ,b0rz,
464 1 bkrz ,berz ,e3x0 ,e3y0 ,e3z0 ,
465 2 vrl1 ,vrl2 ,vrl3 ,exx ,eyy ,
466 3 exy ,px1 ,py1 ,py2 ,wxy ,
467 4 area ,vx13 ,vx23 ,vy12 )
468 CALL c3coefrz3(jft ,jlt ,g, krz ,area ,thke)
469 END IF
470c
471 CALL c3curv3(jft,jlt,vrl1,vrl2,vrl3,
472 . ixtg,wkxy,ismstr,kxx,kyy,kxy,
473 . px1 ,py1 ,py2 ,eyz ,ezx ,
474 . e1x ,e1y ,e1z ,e2x ,
475 . e2y ,e2z ,e3x ,e3y ,e3z )
476
477 IF (ismstr == 10) THEN
478 CALL c3coort3(jft ,jlt ,x ,ixtg ,gbuf%OFF,
479 1 r ,x2l ,x3l ,y2l ,y3l ,
480 2 e1x0 ,e1y0 ,e1z0 ,e2x0 ,e2y0 ,
481 3 e2z0 ,e3x0 ,e3y0 ,e3z0 ,nel ,
482 4 u21x ,u31x ,u21y ,u31y ,rz13 ,
483 5 rz23 ,x2t ,x3t ,y2t ,y3t ,
484 6 areat ,gbuf%SMSTR ,idril )
485 CALL c3deft3(jft,jlt,x2t,y2t,x3t,y3t,u21x,u21y,u31x,u31y,
486 . bmrzt,rz13,rz23,areat,f_def,idril )
487 END IF !(ISMSTR ==10)THEN
488C-----------Eij to new system
489 IF (ifram_old==0) THEN
490 CALL shroto3(jft,jlt,ecos,esin,exx,
491 . eyy,exy,ezx,eyz,kxx,
492 . kyy,kxy)
493 END IF
494 CALL c3stra3(jft ,jlt ,pm ,
495 2 mat ,area ,exx ,eyy ,exy ,
496 3 ezx ,eyz ,kxx ,kyy ,kxy ,
497 4 geo ,pid ,nu ,shf ,gbuf%STRA,
498 5 ssp ,rho ,epsdot ,
499 6 nft ,istrain,ismstr ,
500 7 ux1 ,ux2 ,ux3 ,uy1 ,uy2 ,
501 8 uy3 ,px1 ,py1 ,py2 ,mtn ,
502 9 f_def ,wkxy ,gbuf%STRW,nel )
503C-----------F_DEF to new system
504 IF (ifram_old==0.AND.ismstr>=10) THEN
505 CALL shtroto3(jft,jlt,ecos,esin,gbuf%STRA,
506 . f_def,ismstr,nel)
507 END IF
508c-------------------------------------------
509c COMPUTE Regularized non local variable in Gauss point
510c-------------------------------------------
511 IF (inloc > 0) THEN
512 l_nloc = nloc_dmg%L_NLOC
513 dnl => nloc_dmg%DNL(1:l_nloc) ! DNL = non local variable increment
514 DO i=jft,jlt
515 nc1(i) = ixtg(2,i)
516 nc2(i) = ixtg(3,i)
517 nc3(i) = ixtg(4,i)
518 ENDDO
519 DO k = 1,nddl
520#include "vectorize.inc"
521 DO i=jft,jlt
522 inod(1) = nloc_dmg%IDXI(nc1(i))
523 inod(2) = nloc_dmg%IDXI(nc2(i))
524 inod(3) = nloc_dmg%IDXI(nc3(i))
525 ipos(1) = nloc_dmg%POSI(inod(1))
526 ipos(2) = nloc_dmg%POSI(inod(2))
527 ipos(3) = nloc_dmg%POSI(inod(3))
528 var_reg(i,k) = third*(dnl(ipos(1)+k-1)
529 . + dnl(ipos(2)+k-1)
530 . + dnl(ipos(3)+k-1))
531 ENDDO
532 ENDDO
533 ENDIF
534!-------------------------------------------------------------------------------
535! global element strain rate (shell energy equivalent)
536!-----------------------------------------------------------
537! e = 1/t integ[1/2 e (eps_m + k z)^2 dz ]
538! e = 1/2 e eps_eq^2
539! eps_eq = sqrt[ eps_m^2 + 1/12 k^2t^2 ]
540!-------------------------------------------------------------------------------
541 dt1 = dt1c(1)
542 dtinv = dt1 / max(dt1**2,em20) ! inverse of dt
543 asrate = one ! to be changed for default value
544#include "vectorize.inc"
545 do i = 1,nel
546 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
547 . * one_over_9*gbuf%thk(i)**2
548 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
549 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
550 end do
551 gbuf%epsd(1:nel) = asrate * epsd_pg(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
552!-------------------------------------------------------------------------------
553 IF (jthe /= 0 ) CALL temp3cg(jft ,jlt ,pm ,mat ,ixtg,
554 . temp ,tempel )
555C--------------------------
556 IF ((imon_mat==1).AND.itask == 0)CALL startime(timers,35)
557C--------------------------
558 CALL cmain3(timers,
559 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
560 2 nel ,mtn ,ipla ,ithk ,group_param,
561 3 pm ,geo ,npf ,tf ,bufmat ,
562 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
563 5 area ,exx ,eyy ,exy ,ezx ,
564 6 eyz ,kxx ,kyy ,kxy ,nu ,
565 7 off ,thk0 ,mat ,pid ,mat_elem ,
566 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
567 9 gbuf%THK ,gbuf%EINT ,iofc ,
568 a g ,a11 ,a12 ,vol0 ,indx ,
569 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
570 c kfts ,ish3n ,alpe ,
571 d dir_a ,dir_b ,igeo ,
572 e ipm ,ifailure ,npg ,fheat ,
573 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
574 g ibid ,bid ,
575 h bid ,bid ,bid ,bid ,bid ,
576 i bid ,bid ,bid ,e1x0 ,e1y0 ,
577 j e1z0 ,e2x0 ,e2y0 ,e2z0 ,e3x0 ,
578 k e3y0 ,e3z0 ,ng ,table ,ixfem ,
579 l bid ,sensors ,bid ,elcrkini ,
580 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
581 n ismstr ,ir ,is ,nlay ,npt ,
582 o ixlay ,ixel ,isubstack ,stack ,
583 p f_def ,itask ,drape_sh3n ,var_reg ,nloc_dmg ,
584 q indx_drape,thke ,sedrape ,numel_drape,dt ,
585 r ncycle ,snpc ,stf ,nxlaymax ,
586 s idel7nok ,userl_avail ,maxfunc ,npttot,
587 t sbufmat ,sdir_a , sdir_b ,gbuf%FOR_G,ssp_eq ,
588 x ipart ,lipart1 ,iparttg )
589C--------------------------
590 IF ((imon_mat==1).AND.itask == 0)CALL stoptime(timers,35)
591C--------------------------
592C TIME STEP
593C--------------------------
594 IF (ismstr /= 3) CALL c3dt3(
595 1 jft ,jlt ,pm ,off ,dt2t ,
596 2 neltst ,ityptst ,sti ,stir ,gbuf%OFF,
597 3 ssp ,viscmx ,ismstr ,nft ,iofc ,
598 4 alpe ,mstg ,dmeltg ,jsms ,ptg ,
599 5 shf ,igtyp ,igmat ,g ,a11 ,
600 6 a11r ,gbuf%G_DT ,gbuf%DT ,aldt ,thk0 ,
601 7 area ,ngl ,imat ,mtn ,nel ,
602 8 zoffset,ssp_eq )
603c
604C--------keep GBUF%FOR,GBUF%MOM in new local sys as LBUF%SIG
605 CALL c3sroto3(jft ,jlt ,ecos ,esin ,gbuf%FOR,
606 + gbuf%MOM,nfor ,nmom ,ifram_old ,nel )
607C--------------------------
608C BALANCE FOR EACH MATERIAL
609C--------------------------
610c IFLAG=MOD(NCYCLE,NCPRI)
611 IF(ipri>0)
612 + CALL c3bilan(
613 1 jft, jlt, pm, v,
614 2 gbuf%THK, gbuf%EINT, pmsav, iparttg,
615 3 rho, vol00, ixtg, x,
616 4 r, thk02, area, gresav,
617 5 grth, igrth, off, ibid,
618 6 ibid, ibid, ibid, ibid,
619 7 iexpan, gbuf%EINTTH,itask, mat,
620 8 gbuf%VOL, actifxfem, igre, sensors,
621 9 nel, gbuf%G_WPLA,gbuf%WPLA)
622C----------------------------
623C INTERNAL FORCES
624C----------------------------
625 CALL c3fint3(jft ,jlt ,nfor ,nmom ,thk0,
626 2 px1 ,py1 ,py2 ,f11 ,f12 ,
627 3 f13 ,f21 ,f22 ,f23 ,f31 ,
628 4 f32 ,f33 ,m11 ,m12 ,m13 ,
629 5 m21 ,m22 ,m23 ,nel )
630 IF (idril > 0) THEN
631 CALL c3fintrz(jft ,jlt ,thk0 ,area ,px1 ,
632 2 py1 ,py2 ,f11 ,f12 ,f13 ,
633 3 f21 ,f22 ,f23 ,wxy ,nfor ,
634 4 gbuf%HOURG,mlz ,bm0rz,b0rz,bkrz,
635 5 berz ,krz ,rlz ,dt1c ,gbuf%EINT,
636 6 off ,vol0 ,nel)
637 END IF
638c-------------------------
639c Virtual internal forces of regularized non local ddl
640c--------------------------
641 IF (inloc > 0) THEN
642 CALL c3fint_reg(
643 1 nloc_dmg, var_reg, gbuf%THK, nel,
644 2 off, area, nc1, nc2,
645 3 nc3, px1, py1, py2,
646 4 elbuf_str%NLOC(1,1), imat, nddl,
647 5 itask, dt2t, aldt, gbuf%THK_I,
648 6 gbuf%AREA, nft)
649 ENDIF
650C-------------------------
651c SHELL THERMICS
652C--------------------------
653 IF (jthe /= 0) THEN
654 dtime = dt1c(1)
655 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
656 CALL therm3c(nel ,pm(1,imat) ,thk0 ,ixtg ,
657 . px1 ,py1 ,py2 ,area ,dtime ,
658 . temp ,tempel,fheat ,them ,glob_therm%THEACCFACT)
659 ELSE
660 CALL therm3c(nel ,pm(1,imat) ,thk0 ,ixtg ,
661 . px1 ,py1 ,py2 ,area ,dtime ,
662 . temp ,tempel,die ,them ,glob_therm%THEACCFACT)
663 END IF
664 ENDIF
665C--------------------------
666C THERMAL TIME STEP
667C--------------------------
668 IF (jthe > 0 .AND. glob_therm%IDT_THERM == 1)THEN
669 call dttherm(nel ,pm(1,imat),npropm,glob_therm,mat_elem%mat_param(imat),
670 . jtur ,tempel ,vol0 ,rho ,
671 . aldt ,off ,conde ,gbuf%re ,gbuf%rk )
672 ENDIF
673C-------------------------
674C ASSEMBLY
675C-------------------------
676 CALL c3fcum3(jft,jlt,f,
677 . f11,f12,f13,f21,f22,f23,
678 . f31,f32,f33,fzero,
679 . e1x ,e1y ,e1z ,e2x ,
680 . e2y ,e2z ,e3x ,e3y ,e3z )
681 CALL c3mcum3(jft,jlt,m,
682 . m11,m12,m13,m21,m22,m23,m31,m32,m33,
683 . e1x ,e1y ,e1z ,e2x ,
684 . e2y ,e2z ,e3x ,e3y ,e3z )
685c
686 IF (idril > 0) THEN
687 CALL c3mzcum3(jft ,jlt ,mlz ,e3x0 ,e3y0 ,
688 . e3z0 ,m11 ,m12 ,m13 ,m21 ,
689 . m22 ,m23 ,m31 ,m32 ,m33)
690 END IF
691C
692 IF (iparit == 0) THEN
693 CALL c3updt3(jft ,jlt ,f ,m ,nvc ,
694 2 gbuf%OFF,off ,sti ,stir,stifn,
695 3 stifr ,ixtg ,glob_therm%NODADT_THERM,
696 4 f11 ,f12 ,f13 ,f21 ,f22 ,f23 ,
697 5 f31 ,f32 ,f33 ,m11 ,m12 ,
698 7 m13 ,m21 ,m22 ,m23 ,m31 ,
699 8 m32 ,m33 ,jthe,them,fthe ,
700 9 gbuf%EINT,pm ,area,gbuf%THK,
701 a pmsav,mat,iparttg,condn,conde)
702 ELSE
703 CALL c3updt3p(jft ,jlt ,gbuf%OFF,off,sti,
704 2 stir ,fsky ,fsky,iadtg ,f11,
705 4 f12 ,f13 ,f21 ,f22 ,f23 ,
706 5 f31 ,f32 ,f33 ,m11 ,m12 ,
707 7 m13 ,m21 ,m22 ,m23 ,m31 ,
708 8 m32 ,m33 ,jthe,them,fthesky,
709 9 gbuf%EINT,pm ,area,gbuf%THK ,
710 b pmsav ,mat ,iparttg,condnsky,
711 c conde ,glob_therm%NODADT_THERM)
712 ENDIF
713C
714 IF (icsen > 0) CALL csens3(jft ,jlt ,pid ,igeo ,epsd_pg)
715C-------------------------
716c SHELL CRACKS
717C--------------------------
718 IF (icrack3d > 0 .AND. ixfem > 0) THEN
719 DO ilay=1,nxlay
720 ! crack length calculation for advancing crack
721 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
722 CALL crklen3n_adv(
723 . nel ,nft ,ilay ,nlay ,ixtg ,
724 . crklen ,elcrkini ,iel_crk ,dir1_crk ,dir2_crk ,
725 . nodedge ,crkedge ,xedge3n ,ngl ,x2l ,
726 . x3l ,y2l ,y3l ,aldt )
727c
728 CALL crklayer3n_adv(
729 . nel ,nft ,ilay ,nxlay ,ixtg ,
730 . elcutc ,elcrkini ,iel_crk ,inod_crk ,iadtg_crk ,
731 . nodenr ,dir1_crk ,dir2_crk ,nodedge ,crknodiad ,
732 . knod2elc ,crkedge ,xedge3n ,ngl ,area ,
733 . x2l ,x3l ,y2l ,y3l )
734c
735 CALL crklayer3n_ini(
736 . nel ,nft ,ilay ,nxlay ,ixtg ,
737 . elcutc ,elcrkini ,iel_crk ,inod_crk ,iadtg_crk ,
738 . nodenr ,dir1_crk ,dir2_crk ,nodedge ,crknodiad ,
739 . knod2elc ,crkedge ,xedge3n ,ngl ,area ,
740 . x2l ,x3l ,y2l ,y3l )
741 ENDDO
742C
743 CALL crkofftg(elbuf_str,xfem_str ,
744 . jft ,jlt ,nft ,ir ,is ,
745 . nxlay ,iel_crk ,crkedge,xedge3n )
746 END IF
747
748c--------------------------------------------
749c Front wave
750c--------------------------------------------
751 IF (ifailwave > 0) THEN
752 crkdir => elbuf_str%BUFLY(1)%CRKDIR
753c
754 CALL set_failwave_nod3(failwave ,fwave_el ,ngl ,
755 . nel ,ixtg ,itab ,crkdir ,dir_a ,
756 . l_dira ,x2l ,x3l ,y2l ,y3l )
757 ENDIF
758C-----------
759 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
760 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
761 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
762 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
763 IF (ALLOCATED(dira)) DEALLOCATE(dira)
764 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
765C-----------
766 RETURN
767 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:48
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(jft, jlt, x, ixtg, offg, off, dt1c, v, vr, vl1, vl2, vl3, vrl1, vrl2, vrl3, sigy, x1, x2, x3, y1, y2, y3, z1, z2, z3, xdp)
Definition c3coor3.F:36
subroutine c3coort3(jft, jlt, x, ixtg, offg, dr, xl2, xl3, yl2, yl3, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nel, v21x, v31x, v21y, v31y, rz13, rz23, x2_t, x3_t, y2_t, y3_t, area, smstr, isrot)
Definition c3coor3.F:194
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:36
subroutine c3deft3(jft, jlt, x2, y2, x3, y3, v21x, v21y, v31x, v31y, bm0rz, rz13, rz23, area, vdef, idril)
Definition c3defo3.F:451
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:37
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:192
subroutine c3brz3(jft, jlt, area, x2, x3, y3, bm0rz, b0rz, bkrz, berz)
Definition c3defo3.F:143
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, ssp_eq)
Definition c3dt3.F:39
subroutine shtroto3(jft, jlt, ecos, esin, gstr, nel)
Definition c3epsini.F:522
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 c3fint_reg(nloc_dmg, var_reg, thk, nel, off, area, nc1, nc2, nc3, px1, py1, py2, bufnl, imat, nddl, itask, dt2t, le, thk0, area0, nft)
Definition c3fint_reg.F:38
subroutine c3forc3(timers, elbuf_str, jft, jlt, pm, ixtg, x, f, m, v, r, failwave, nvc, mtn, geo, tf, npf, bufmat, pmsav, dt2t, neltst, ityptst, stifn, stifr, fsky, iadtg, itab, epsdot, offset, iparttg, thke, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33, group_param, mat_elem, nel, istrain, ish3n, xedge3n, ithk, iofc, ipla, nft, ismstr, npt, kfts, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mstg, dmeltg, jsms, table, iparg, ixfem, sensors, ptg, ibordnode, elcutc, inod_crk, iel_crk, nodenr, iadtg_crk, nodedge, crknodiad, knod2elc, condn, condnsky, stack, isubstack, xfem_str, crkedge, drape_sh3n, ipri, nloc_dmg, xdp, indx_drape, igre, jtur, dt, snpc, stf, glob_therm, idel7nok, userl_avail, maxfunc, sbufmat, ipart, lipart1)
Definition c3forc3.F:114
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 c3updt3(jft, jlt, f, m, nvc, offg, off, sti, stir, stifn, stifr, ixtg, nodadt_therm, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33, jthe, them, fthe, eint, pm, area, thk, partsav, mat, iparttg, condn, conde)
Definition c3updt3.F:40
subroutine c3updt3p(jft, jlt, offg, off, sti, stir, fsky, fskyv, iadtg, f11, f12, f13, f21, f22, f23, f31, f32, f33, m11, m12, m13, m21, m22, m23, m31, m32, m33, jthe, them, fthesky, eint, pm, area, thk, partsav, mat, iparttg, condnsky, conde, nodadt_therm)
Definition c3updt3.F:411
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 c3coefrz3(jft, jlt, g, krz, area, thk)
Definition cncoef3.F:468
subroutine crklayer3n_adv(nel, nft, ilay, nlay, ixtg, elcutc, elcrkini, iel_crktg, inod_crk, iad_crktg, nodenr, dir1, dir2, nodedge, crknodiad, knod2elc, crkedge, xedge3n, ngl, area, xl2, xl3, yl2, yl3)
subroutine crklayer3n_ini(nel, nft, ilay, nlay, ixtg, elcutc, elcrkini, iel_crktg, inod_crk, iad_crktg, nodenr, dir1, dir2, nodedge, crknodiad, knod2elc, crkedge, xedge3n, ngl, area, xl2, xl3, yl2, yl3)
subroutine crklen3n_adv(nel, nft, ilay, nlay, ixtg, crklen, elcrkini, iel_crktg, dir1, dir2, nodedge, crkedge, xedge3n, ngl, xl2, xl3, yl2, yl3, aldt)
subroutine csens3(jft, jlt, pid, igeo, epsp)
Definition csens3.F:38
subroutine c3sroto3(jft, jlt, ecos, esin, for, mom, nfor, nmom, ifram_old, nel)
Definition c3evec3.F:688
subroutine shroto3(jft, jlt, ecos, esin, exx, eyy, exy, exz, eyz, kxx, kyy, kxy)
Definition c3evec3.F:558
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21
integer numeltg_drape
Definition drape_mod.F:92
subroutine precrklaytg(jft, jlt, nft, nlay, elcrkini, iel_crktg, inod_crk, nodenr, crkedge, xedge3n)
Definition precrklay.F:85
subroutine crkofftg(elbuf_str, xfem_str, jft, jlt, nft, ir, is, nxlay, iel_crktg, crkedge, xedge3n)
Definition precrklay.F:220
subroutine set_failwave_nod3(failwave, fwave_el, ngl, nel, ixtg, itab, crkdir, dir_a, nrot, xl2, xl3, yl2, yl3)
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:33
subroutine therm3c(nel, pm, thk, ixtg, px1, py1, py2, area, dt, tempnc, tempel, dheat, fphi, theaccfact)
Definition therm3c.F:34
subroutine set_failwave_sh3n(failwave, fwave_el, dadv, nel, ixtg, itab, ngl, offly)