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