OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cforc3.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!|| cforc3 ../engine/source/elements/shell/coque/cforc3.F
25!||--- called by ------------------------------------------------------
26!|| forintc ../engine/source/elements/forintc.F
27!||--- calls -----------------------------------------------------
28!|| cbilan ../engine/source/elements/shell/coque/cbilan.F
29!|| ccoef3 ../engine/source/elements/shell/coque/ccoef3.F
30!|| ccoor3 ../engine/source/elements/shell/coque/ccoor3.F
31!|| ccoort3 ../engine/source/elements/shell/coque/ccoor3.F
32!|| ccurv3 ../engine/source/elements/shell/coque/ccurv3.F
33!|| cdefo3 ../engine/source/elements/shell/coque/cdefo3.F
34!|| cdefot3 ../engine/source/elements/shell/coque/cdefo3.F
35!|| cderi3 ../engine/source/elements/shell/coque/cderi3.F
36!|| cdlen3 ../engine/source/elements/shell/coque/cdlen3.F
37!|| cdt3 ../engine/source/elements/shell/coque/cdt3.F
38!|| cevec3 ../engine/source/elements/shell/coque/cevec3.F
39!|| cfint3 ../engine/source/elements/shell/coque/cfint3.F
40!|| cfint_reg ../engine/source/elements/shell/coque/cfint_reg.F
41!|| chsti3 ../engine/source/elements/shell/coque/chsti3.F
42!|| chvis3 ../engine/source/elements/shell/coque/chvis3.F
43!|| cmain3 ../engine/source/materials/mat_share/cmain3.F
44!|| cnvec3 ../engine/source/elements/shell/coque/cnvec3.F
45!|| cpxpy3 ../engine/source/elements/shell/coque/cpxpy3.F
46!|| crklayer4n_adv ../engine/source/elements/xfem/crklayer4n_adv.F
47!|| crklayer4n_ini ../engine/source/elements/xfem/crklayer4n_ini.f
48!|| crklen4n_adv ../engine/source/elements/xfem/crklen4n_adv.F
49!|| crkoffc ../engine/source/elements/xfem/precrklay.F
50!|| csens3 ../engine/source/elements/shell/coque/csens3.F
51!|| cssp2a11 ../engine/source/elements/sh3n/coque3n/cssp2a11.F
52!|| cstra3 ../engine/source/elements/shell/coque/cstra3.F
53!|| cupdt3 ../engine/source/elements/shell/coque/cupdt3.F
54!|| cupdt3f ../engine/source/elements/shell/coque/cupdt3.F
55!|| cupdt3p ../engine/source/elements/shell/coque/cupdt3.F
56!|| dttherm ../engine/source/time_step/dttherm.F90
57!|| mhvis3 ../engine/source/airbag/mhvis3.F
58!|| precrklay ../engine/source/elements/xfem/precrklay.F
59!|| set_failwave_nod4 ../engine/source/materials/fail/failwave/set_failwave_nod4.F
60!|| set_failwave_sh4n ../engine/source/materials/fail/failwave/upd_failwave_sh4n.F
61!|| startime ../engine/source/system/timer_mod.F90
62!|| stoptime ../engine/source/system/timer_mod.F90
63!|| tempcg ../engine/source/materials/mat_share/tempcg.F
64!|| thermc ../engine/source/materials/mat_share/thermc.F
65!||--- uses -----------------------------------------------------
66!|| crackxfem_mod ../engine/share/modules/crackxfem_mod.F
67!|| drape_mod ../engine/share/modules/drape_mod.F
68!|| dt_mod ../engine/source/modules/dt_mod.F
69!|| dttherm_mod ../engine/source/time_step/dttherm.F90
70!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
71!|| element_mod ../common_source/modules/elements/element_mod.F90
72!|| failwave_mod ../common_source/modules/failwave_mod.F
73!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
74!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.F90
75!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
76!|| output_mod ../common_source/modules/output/output_mod.F90
77!|| sensor_mod ../common_source/modules/sensor_mod.F90
78!|| stack_mod ../engine/share/modules/stack_mod.F
79!|| table_mod ../engine/share/modules/table_mod.F
80!|| timer_mod ../engine/source/system/timer_mod.F90
81!||====================================================================
82 SUBROUTINE cforc3(TIMERS,
83 1 ELBUF_STR, JFT, JLT, PM,
84 2 IXC, X, F, M,
85 3 V, VR, FAILWAVE, NVC,
86 4 MTN, GEO, TF, NPF,
87 5 BUFMAT, PARTSAV, DT2T, NELTST,
88 6 ITYPTST, STIFN, STIFR, FSKY,
89 7 IADC, ITAB, D, DR,
90 8 TANI, OFFSET, EANI, F11,
91 9 F12, F13, F14, F21,
92 A F22, F23, F24, F31,
93 B F32, F33, F34, M11,
94 C M12, M13, M14, M21,
95 D M22, M23, M24, M31,
96 E M32, M33, M34, INDXOF,
97 F IPARTC, THKE, GROUP_PARAM, MAT_ELEM,
98 G NEL, ISTRAIN, IHBE, ITHK,
99 H IOFC, IPLA, NFT, ISMSTR,
100 I NPT, KFTS, FZERO, IGEO,
101 J IPM, IFAILURE, ITASK, JTHE,
102 K TEMP, FTHE, FTHESKY, IEXPAN,
103 L GRESAV, GRTH, XEDGE4N, IGRTH,
104 M MSC, DMELC, JSMS, TABLE,
105 N IPARG, IXFEM, KNOD2ELC, SENSORS,
106 O ELCUTC, INOD_CRK, IEL_CRK, IBORDNODE,
107 P NODENR, IADC_CRK, NODEDGE, CRKNODIAD,
108 Q CONDN, CONDNSKY, STACK, ISUBSTACK,
109 R XFEM_STR, IG, CRKEDGE, DRAPE_SH4N, IPRI,
110 S NLOC_DMG, INDX_DRAPE, IGRE, JTUR,
111 T OUTPUT, DT, SNPC, STF ,
112 T GLOB_THERM, USERL_AVAIL, MAXFUNC, SBUFMAT ,IPART )
113C-----------------------------------------------
114C M o d u l e s
115C-----------------------------------------------
116 USE timer_mod
117 USE table_mod
118 USE mat_elem_mod
119 USE crackxfem_mod
120 USE stack_mod
121 USE failwave_mod
123 USE drape_mod
124 USE sensor_mod
125 USE output_mod
126 USE elbufdef_mod
127 USE dt_mod
128 use glob_therm_mod
129 use dttherm_mod
130 use element_mod , only : nixc
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 "com01_c.inc"
143#include "com04_c.inc"
144#include "scr02_c.inc"
145#include "scr17_c.inc"
146#include "scr18_c.inc"
147#include "param_c.inc"
148#include "com_xfem1.inc"
149#include "parit_c.inc"
150#include "timeri_c.inc"
151C-----------------------------------------------
152C D u m m y A r g u m e n t s
153C-----------------------------------------------
154 TYPE(timer_), INTENT(INOUT) :: TIMERS
155 INTEGER, INTENT(IN) :: USERL_AVAIL ! Flag for User libraries availability
156 INTEGER,INTENT(IN) :: MAXFUNC ! Maximum number of functions
157 INTEGER, INTENT(IN) :: SBUFMAT ! size of Bufmat
158 INTEGER, INTENT(IN) :: STF ! size of STF
159 INTEGER, INTENT(IN) :: SNPC ! size of SNPC
160 INTEGER, INTENT(IN) :: JTUR
161 INTEGER, INTENT(IN) :: IGRE
162 INTEGER, INTENT(IN) :: IG
163 INTEGER JFT,JLT,NVC,MTN,NELTST,ITYPTST,OFFSET,
164 . NEL,ISTRAIN,IHBE,ITASK,JTHE,JSMS,
165 . ITHK,IOFC,IPLA,NFT,ISMSTR,NPT,KFTS,IFAILURE,IEXPAN,
166 . ISUBSTACK,IPRI
167 INTEGER NPF(*),IXC(NIXC,*),IADC(4,*),INDXOF(MVSIZ),IPARTC(*),
168 . IGEO(NPROPGI,*),IPM(NPROPMI,*),XEDGE4N(4,*),ITAB(*),
169 . GRTH(*),IGRTH(*),IPARG(*),IXFEM,KNOD2ELC(*),
170 . ELCUTC(2,*),INOD_CRK(*),IEL_CRK(*),IBORDNODE(*),
171 . NODENR(*),IADC_CRK(4,*),NODEDGE(2,*),CRKNODIAD(*),INDX_DRAPE(SCDRAPE)
172 my_real
173 . F11(MVSIZ),F12(MVSIZ),F13(MVSIZ),F14(MVSIZ),
174 . F21(MVSIZ),F22(MVSIZ),F23(MVSIZ),F24(MVSIZ),
175 . F31(MVSIZ),F32(MVSIZ),F33(MVSIZ),F34(MVSIZ),
176 . M11(MVSIZ),M12(MVSIZ),M13(MVSIZ),M14(MVSIZ),
177 . M21(MVSIZ),M22(MVSIZ),M23(MVSIZ),M24(MVSIZ),
178 . M31(MVSIZ),M32(MVSIZ),M33(MVSIZ),M34(MVSIZ),
179 . PM(NPROPM,*),X(*),F(*),M(*),V(*),VR(*),
180 . GEO(NPROPG,*),TF(*), BUFMAT(*),PARTSAV(*),STIFN(*),STIFR(*),
181 . FSKY(*),D(*),DR(*),TANI(6,*),EANI(*), THKE(*),DT2T,
182 . FZERO(3,4,*),TEMP(*), FTHE(*),FTHESKY(*),GRESAV(*),
183 . MSC(*), DMELC(*),CONDN(*),CONDNSKY(*)
184C
185 TYPE (TTABLE) TABLE(*)
186 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
187 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP,NXEL) :: XFEM_STR ! take xfem_str
188 TYPE (XFEM_EDGE_) , DIMENSION(*) :: CRKEDGE
189 TYPE (FAILWAVE_STR_) :: FAILWAVE
190 TYPE (NLOCAL_STR_), TARGET :: NLOC_DMG
191 TYPE (DRAPE_) , DIMENSION(NUMELC_DRAPE) :: DRAPE_SH4N
192 TYPE (OUTPUT_) ,INTENT(INOUT) :: OUTPUT !< output structure
193 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
194 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
195 TYPE (GROUP_PARAM_),INTENT(IN) :: GROUP_PARAM
196 TYPE (DT_), INTENT(IN) :: DT
197 type (glob_therm_) ,intent(inout) :: glob_therm
198
199 INTEGER, DIMENSION(LIPART1,NPART), INTENT(IN) :: IPART
200C-----------------------------------------------
201C L o c a l V a r i a b l e s
202C-----------------------------------------------
203 INTEGER MAT(MVSIZ),PID(MVSIZ),NDT(MVSIZ),NGL(MVSIZ),FWAVE_EL(NEL),
204 . I,J,IGTYP,ICSEN,IUN,NPG,ILAY,NLAY,IXEL,IXLAY,NXLAY,
205 . IBID,NG,IR,IS,L_DIRA,L_DIRB,J1,J2,IGMAT,NPTTOT,IREP,IFAILWAVE,IDRAPE,
206 . NPTT,IT,ACTIFXFEM,SEDRAPE,NUMEL_DRAPE,IMAT
207 my_real
208 . STI(MVSIZ),STIR(MVSIZ),SIGY(MVSIZ),RHO(MVSIZ),
209 . X2(MVSIZ),X3(MVSIZ),X4(MVSIZ),Y2(MVSIZ),Y3(MVSIZ),
210 . Y4(MVSIZ),Z2(MVSIZ),SSP(MVSIZ),VISCMX(MVSIZ),
211 . VX1(MVSIZ), VX2(MVSIZ), VX3(MVSIZ), VX4(MVSIZ),
212 . VY1(MVSIZ), VY2(MVSIZ), VY3(MVSIZ), VY4(MVSIZ),
213 . VZ1(MVSIZ), VZ2(MVSIZ), VZ3(MVSIZ), VZ4(MVSIZ),
214 .
215 . thk02(mvsiz),
216 . x1g(mvsiz), x2g(mvsiz), x3g(mvsiz), x4g(mvsiz),
217 . y1g(mvsiz), y2g(mvsiz), y3g(mvsiz), y4g(mvsiz),
218 . z1g(mvsiz), z2g(mvsiz), z3g(mvsiz), z4g(mvsiz),
219 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz), e2x(mvsiz),
220 . e2y(mvsiz), e2z(mvsiz), e3x(mvsiz), e3y(mvsiz),e3z(mvsiz)
221 my_real
222 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), exz(mvsiz),eyz(mvsiz),
223 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz), px1(mvsiz),
224 . px2(mvsiz), py1(mvsiz), py2(mvsiz), thk0(mvsiz),
225 . off(mvsiz), nu(mvsiz) , shf(mvsiz), area(mvsiz),
226 . g(mvsiz) , ym(mvsiz) , a11(mvsiz), a12(mvsiz),
227 . vl1(mvsiz,3),vl2(mvsiz,3),vl3(mvsiz,3),vl4(mvsiz,3),
228 . vrl1(mvsiz,3),vrl2(mvsiz,3),vrl3(mvsiz,3),vrl4(mvsiz,3),
229 . dt1c(mvsiz), dt2c(mvsiz),
230 . aldt(mvsiz),alpe(mvsiz),vhx(mvsiz),vhy(mvsiz)
231 my_real
232 . h1(mvsiz), h2(mvsiz), h3(mvsiz), vol0(mvsiz),vol00(mvsiz),
233 . h11(mvsiz), h12(mvsiz), h13(mvsiz), h14(mvsiz),
234 . h21(mvsiz), h22(mvsiz), h23(mvsiz), h24(mvsiz),
235 . h31(mvsiz), h32(mvsiz), h33(mvsiz), h34(mvsiz),
236 . b11(mvsiz), b12(mvsiz), b13(mvsiz), b14(mvsiz),
237 . b21(mvsiz), b22(mvsiz), b23(mvsiz), b24(mvsiz),
238 . rx1(mvsiz), rx2(mvsiz), rx3(mvsiz), rx4(mvsiz),
239 . ry1(mvsiz), ry2(mvsiz), ry3(mvsiz), ry4(mvsiz),
240 . zcfac(mvsiz,2),gs(mvsiz),
241 . srh1(mvsiz),srh2(mvsiz),srh3(mvsiz),a_i(mvsiz),
242 . die(mvsiz),tempel(mvsiz),them(mvsiz,4),bid,
243 . ux1(mvsiz),ux2(mvsiz),ux3(mvsiz),ux4(mvsiz),
244 . uy1(mvsiz),uy2(mvsiz),uy3(mvsiz),uy4(mvsiz),
245 .
246 . dtcsub(mvsiz),conde(mvsiz),a11r(mvsiz)
247
248 my_real
249 . areat(mvsiz),px1t(mvsiz),px2t(mvsiz),py1t(mvsiz),py2t(mvsiz),
250 . f_def(mvsiz,8), u13x(mvsiz),u24x(mvsiz),u13y(mvsiz),u24y(mvsiz),
251 . wxy(mvsiz)
252C
253 INTEGER, DIMENSION(NEL) :: OFFLY
254 INTEGER, ALLOCATABLE, DIMENSION(:) :: ELCRKINI
255 my_real, ALLOCATABLE, DIMENSION(:) :: DIRA,DIRB,DIR1_CRK,DIR2_CRK
256 my_real, DIMENSION(:) ,POINTER :: DIR_A, DIR_B,CRKDIR,CRKLEN,DADV
257 TARGET :: DIRA,DIRB
258 my_real :: dt1,dtinv,asrate,eps_m2,eps_k2
259 my_real, dimension(nel) :: epsd_pg
260 my_real, dimension(mvsiz) :: fheat ! variables for heat transfer
261 my_real, dimension(mvsiz) :: ssp_eq
262!
263C--- Variables for non-local
264 INTEGER :: NDDL, K, INOD(4),NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
265 . IPOS(4), L_NLOC, INLOC
266 my_real, DIMENSION(:,:), ALLOCATABLE :: VAR_REG
267 my_real, DIMENSION(:), POINTER :: DNL
268C-----
269
270 TYPE(G_BUFEL_) ,POINTER :: GBUF
271
272 TYPE(L_BUFEL_DIR_) ,POINTER :: LBUF_DIR
273 TYPE (STACK_PLY) :: STACK
274 INTEGER SDIR_A ! Size of DIR_A
275 INTEGER SDIR_B ! Size of DIR_B
276C=======================================================================
277 GBUF => elbuf_str%GBUF
278 idrape = elbuf_str%IDRAPE
279C-----
280 iun = 1
281 ibid = 0
282 bid = zero
283 nlay = elbuf_str%NLAY
284 sedrape = scdrape
285 numel_drape = numelc_drape
286 tempel(:) = zero
287 fheat(: ) = zero
288
289cc NPT = MAX(NLAY,NPTT) --> set to = IPARG(6) , keeping it original
290C to allow for NPT = 0 (global LAW_3)
291 npg = 1
292 ir = 1
293 is = 1
294 ng = 1
295 ixel = 0
296 ixlay = 0
297 irep = iparg(35)
298 inloc = iparg(78)
299 actifxfem = iparg(70)
300C
301 npttot = 0
302 DO ilay=1,nlay
303 npttot = npttot + elbuf_str%BUFLY(ilay)%NPTT
304 ENDDO
305!-------------------------------------------
306! Array for non-local variable
307 nddl = npttot
308 ALLOCATE(var_reg(nel,nddl))
309!-------------------------------------------
310 IF (npt == 0) npttot = npt ! compatibility with global integration
311c--------------------------------------------
312c Front wave
313c--------------------------------------------
314 ifailwave = iparg(79)
315 IF (ifailwave > 0) THEN
316 fwave_el(:) = zero
317 offly(:) = elbuf_str%BUFLY(1)%OFF(:)
318 DO i=2,nlay
319 DO j=1,nel
320 offly(j) = max(offly(j), elbuf_str%BUFLY(i)%OFF(j))
321 ENDDO
322 ENDDO
323 dadv => gbuf%DMG
324 CALL set_failwave_sh4n(failwave ,fwave_el ,dadv ,
325 . nel ,ixc ,itab ,ngl ,offly )
326 ENDIF
327c-------------------------------------
328 l_dira = elbuf_str%BUFLY(1)%LY_DIRA
329 l_dirb = elbuf_str%BUFLY(1)%LY_DIRB
330 igtyp= igeo(11,ixc(6,1))
331 IF(idrape > 0 .AND. (igtyp == 51 .OR. igtyp == 52) ) THEN
332 ALLOCATE(dira(npttot*nel*l_dira))
333 ALLOCATE(dirb(npttot*nel*l_dirb))
334 IF (l_dira == 0) THEN
335 CONTINUE
336 ELSEIF (irep == 0) THEN
337 npttot = 0
338 DO ilay=1,nlay
339 nptt = elbuf_str%BUFLY(ilay)%NPTT
340 DO it=1,nptt
341 j = npttot + it
342 lbuf_dir => elbuf_str%BUFLY(ilay)%LBUF_DIR(it)
343 j1 = 1+(j-1)*l_dira*nel
344 j2 = j*l_dira*nel
345 dira(j1:j2) = lbuf_dir%DIRA(1:nel*l_dira)
346 ENDDO
347 npttot = npttot + nptt
348 ENDDO
349 ENDIF
350 sdir_a=npttot*nel*l_dira
351 sdir_b=npttot*nel*l_dirb
352 dir_a => dira(1:npttot*nel*l_dira)
353 dir_b => dirb(1:npttot*nel*l_dirb)
354 ELSE ! idrape
355 sdir_a=nlay*nel*l_dira
356 sdir_b=nlay*nel*l_dirb
357 ALLOCATE(dira(nlay*nel*l_dira))
358 ALLOCATE(dirb(nlay*nel*l_dirb))
359 dira=zero
360 dirb=zero
361 IF (l_dira == 0) THEN
362 CONTINUE
363 ELSEIF (irep == 0) THEN
364 DO j=1,nlay
365 j1 = 1+(j-1)*l_dira*nel
366 j2 = j*l_dira*nel
367 dira(j1:j2) = elbuf_str%BUFLY(j)%DIRA(1:nel*l_dira)
368 ENDDO
369 ENDIF
370 sdir_a=nlay*nel*l_dira
371 sdir_b=nlay*nel*l_dirb
372 dir_a => dira(1:nlay*nel*l_dira)
373 dir_b => dirb(1:nlay*nel*l_dirb)
374 ENDIF ! IDRAPE
375c-------------------------------------
376 nxlay = nlay
377C---
378 IF (ixfem > 0) THEN
379 ALLOCATE(elcrkini(nxlaymax*nel))
380 ALLOCATE(dir1_crk(nxlaymax*nel))
381 ALLOCATE(dir2_crk(nxlaymax*nel))
382 dir1_crk = zero
383 dir2_crk = zero
384 elcrkini = 0
385 IF (nlevset > 0) THEN
386 CALL precrklay(jft ,jlt ,nft ,nxlay ,elcrkini,
387 . iel_crk,inod_crk,nodenr ,crkedge,xedge4n )
388 ENDIF
389 ELSE
390 ALLOCATE(elcrkini(0))
391 ALLOCATE(dir1_crk(0))
392 ALLOCATE(dir2_crk(0))
393 ENDIF
394C----------------------
395C X1G-> X1,X2G-> X2,X3G-> X3,X4G-> X4,
396C Y1G-> Y1,Y2G-> Y2,Y3G-> Y3,Y4G-> Y4,
397C Z1G-> Z1,Z2G-> Z2,Z3G-> Z3,Z4G-> Z4
398 CALL ccoor3(jft ,jlt ,x ,ixc ,geo ,gbuf%OFF,
399 2 off ,sigy ,pid ,v ,vr ,vl1,vl2,vl3,vl4,
400 3 vrl1,vrl2,vrl3,vrl4,mat,dt1c,thke ,thk0 ,ngl,
401 4 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
402 5 y3g ,y4g ,z1g ,z2g ,z3g ,z4g )
403C
404 icsen= igeo(3,pid(1))
405 igtyp= igeo(11,pid(1))
406!! IF(IGTYP == 11 .AND. IDTMINS > 0)IGEO(98,PID(1)) = 1
407 igmat= igeo(98,pid(1))
408C
409 IF (ishfram == 1) THEN
410C non convected frame (version 3)
411 CALL cevec3(elbuf_str ,dir_a,dir_b,
412 1 jft ,jlt ,x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,y3g ,y4g ,
413 2 z1g ,z2g ,z3g ,z4g ,e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
414 3 e3x ,e3y ,e3z ,irep,nlay,nel)
415 ELSE
416C repere orthogonalise convecte
417 CALL cnvec3(elbuf_str ,dir_a ,dir_b ,
418 1 jft ,jlt ,irep ,igtyp ,nlay ,
419 2 x1g ,x2g ,x3g ,x4g ,y1g ,y2g ,
420 3 y3g ,y4g ,z1g ,z2g ,z3g ,z4g ,
421 4 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
422 5 e3x ,e3y ,e3z ,nel )
423 ENDIF
424C
425 IF (ismstr /= 3)THEN
426 CALL cderi3(
427 1 jft, jlt, gbuf%SMSTR,gbuf%OFF,
428 2 sti, stir, area, px1,
429 3 px2, py1, py2, x2,
430 4 x3, x4, y2, y3,
431 5 y4, z2, x1g, x2g,
432 6 x3g, x4g, y1g, y2g,
433 7 y3g, y4g, z1g, z2g,
434 8 z3g, z4g, e1x, e1y,
435 9 e1z, e2x, e2y, e2z,
436 a e3x, e3y, e3z, vhx,
437 b vhy, a_i, ux1, ux2,
438 c ux3, ux4, uy1, uy2,
439 d uy3, uy4, nel, ismstr)
440 ELSE
441 CALL cpxpy3(jft ,jlt ,pm ,sti ,stir ,
442 2 gbuf%SMSTR,px1 ,px2 ,py1 ,py2 ,
443 3 ixc ,area ,x2 ,x3 ,x4 ,
444 4 y2 ,y3 ,y4 ,z2 ,thk0 ,
445 5 mat ,nel )
446 ENDIF
447C
448 CALL ccoef3(jft ,jlt ,pm ,mat ,geo ,
449 2 pid ,off ,area ,sti ,stir ,
450 3 shf ,thk0 ,thk02 ,nu ,
451 4 g ,ym ,a11 ,a12 ,gbuf%THK,
452 5 ssp ,rho ,h1 ,h2 ,h3 ,
453 6 vol0 ,vol00 ,alpe ,gs ,mtn ,
454 7 ithk ,ismstr ,npttot ,kfts ,
455 8 srh1 ,srh2 ,srh3 ,igeo ,
456 9 a11r ,isubstack ,stack%PM )
457C
458 IF ((ismstr /= 3 .AND. idt1sh == 0) .OR.
459 . idtmin(3) /= 0 .OR. igtyp == 16 .OR. glob_therm%IDT_THERM == 1) THEN
460C CDTLEN must be always called for tissue property/law for time step correction
461 CALL cdlen3(jft ,jlt ,pm ,off ,area,
462 2 x2 ,x3 ,x4 ,y2 ,y3 ,
463 3 y4 ,aldt ,mat ,geo ,pid ,
464 4 ihbe )
465 ENDIF
466 CALL cdefo3(jft ,jlt,vl1,vl2,vl3,vl4,dt1c,px1 ,px2 ,py1,py2,area,
467 2 exx ,eyy,exy,exz ,eyz ,x2 ,x3 ,x4 ,y2 ,y3,
468 3 y4 ,z2 ,vx1,vx2 ,vx3 ,vx4 ,vy1,vy2,vy3 ,vy4 ,
469 4 vz1 ,vz2,vz3,vz4 ,e1x ,e1y ,e1z,e2x,e2y ,e2z ,
470 5 e3x ,e3y,e3z,ihbe)
471 CALL ccurv3(jft ,jlt ,vrl1,vrl2,vrl3,vrl4 ,px1
472 1 ,px2 ,py1 ,py2 ,area,
473 2 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
474 3 e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,e3x ,e3y ,
475 4 e3z ,kxx ,kyy ,kxy ,exz ,eyz ,
476 5 wxy ,ismstr)
477 IF (ismstr == 10 ) THEN
478 CALL ccoort3(jft ,jlt ,x ,ixc ,gbuf%OFF ,
479 1 dr ,px1t ,px2t ,py1t ,py2t ,
480 2 e1x ,e1y ,e1z ,e2x ,e2y ,
481 3 e2z ,e3x ,e3y ,e3z ,areat ,
482 4 u13x ,u24x ,u13y ,u24y ,gbuf%SMSTR ,
483 5 nel )
484C
485 CALL cdefot3(jft ,jlt ,px1t ,px2t ,py1t ,
486 2 py2t ,u13x ,u24x ,u13y ,u24y ,
487 3 f_def )
488 END IF !(ISMSTR == 10 ) THEN
489 CALL cstra3(jft ,jlt ,gbuf%STRA,shf ,area ,
490 2 exx ,eyy ,exy ,exz ,eyz ,
491 3 kxx ,kyy ,kxy ,dt1c ,tani ,
492 4 gbuf%FOR,gbuf%MOM ,ismstr ,mtn ,
493 6 ihbe ,nft ,istrain ,ux1 ,ux2 ,
494 7 ux3 ,ux4 ,uy1 ,uy2 ,uy3 ,
495 8 uy4 ,px1 ,px2 ,py1 ,py2 ,
496 9 wxy ,gbuf%STRW ,f_def ,nel )
497c-------------------------------------------
498 ! transfer nodal temperature to gauss point from /heat/mat
499 IF (jthe /= 0) THEN
500 CALL tempcg(numnod,nel ,ixc ,temp ,tempel )
501 ENDIF
502c-------------------------------------------
503c COMPUTE Regularized non local variable in Gauss point
504c-------------------------------------------
505 IF (inloc > 0) THEN
506 l_nloc = nloc_dmg%L_NLOC
507 dnl => nloc_dmg%DNL(1:l_nloc) ! DNL = non local variable increment
508 DO i=jft,jlt
509 nc1(i) = ixc(2,i)
510 nc2(i) = ixc(3,i)
511 nc3(i) = ixc(4,i)
512 nc4(i) = ixc(5,i)
513 ENDDO
514 DO k = 1,nddl
515#include "vectorize.inc"
516 DO i=jft,jlt
517 inod(1) = nloc_dmg%IDXI(nc1(i))
518 inod(2) = nloc_dmg%IDXI(nc2(i))
519 inod(3) = nloc_dmg%IDXI(nc3(i))
520 inod(4) = nloc_dmg%IDXI(nc4(i))
521 ipos(1) = nloc_dmg%POSI(inod(1))
522 ipos(2) = nloc_dmg%POSI(inod(2))
523 ipos(3) = nloc_dmg%POSI(inod(3))
524 ipos(4) = nloc_dmg%POSI(inod(4))
525 var_reg(i,k) = fourth*(dnl(ipos(1)+k-1) + dnl(ipos(2)+k-1)
526 . + dnl(ipos(3)+k-1) + dnl(ipos(4)+k-1))
527 ENDDO
528 ENDDO
529 ENDIF
530!-------------------------------------------------------------------------------
531! global element strain rate (shell energy equivalent)
532!-----------------------------------------------------------
533! e = 1/t integ[1/2 e (eps_m + k z)^2 dz ]
534! e = 1/2 e eps_eq^2
535! eps_eq = sqrt[ eps_m^2 + 1/12 k^2t^2 ]
536!-------------------------------------------------------------------------------
537 dt1 = dt1c(1)
538 dtinv = dt1 / max(dt1**2,em20) ! inverse of dt
539 asrate = one ! to be changed for default value
540#include "vectorize.inc"
541 do i = 1,nel
542 eps_k2 = (kxx(i)**2+kyy(i)**2+kxx(i)*kyy(i)+fourth*kxy(i)**2)
543 . * one_over_9*gbuf%thk(i)**2
544 eps_m2 = four_over_3*(exx(i)**2+eyy(i)**2+exx(i)*eyy(i) + fourth*exy(i)**2)
545 epsd_pg(i) = sqrt(eps_k2 + eps_m2)*dtinv
546 end do
547 gbuf%epsd(1:nel) = asrate * epsd_pg(1:nel) + (one - asrate) * gbuf%epsd(1:nel)
548!-------------------------------------------------------------------------------
549 IF ((imon_mat==1).AND. itask == 0)CALL startime(timers,35)
550C-----------------------------
551 CALL cmain3(timers,
552 1 elbuf_str ,jft ,jlt ,nft ,iparg ,
553 2 nel ,mtn ,ipla ,ithk ,group_param,
554 3 pm ,geo ,npf ,tf ,bufmat ,
555 4 ssp ,rho ,viscmx ,dt1c ,sigy ,
556 5 area ,exx ,eyy ,exy ,exz ,
557 6 eyz ,kxx ,kyy ,kxy ,nu ,
558 7 off ,thk0 ,mat ,pid ,mat_elem ,
559 8 gbuf%FOR ,gbuf%MOM ,gbuf%STRA ,failwave ,fwave_el ,
560 9 gbuf%THK ,gbuf%EINT ,iofc ,
561 a g ,a11 ,a12 ,vol0 ,indxof ,
562 b ngl ,zcfac ,shf ,gs ,epsd_pg ,
563 c kfts ,ihbe ,alpe ,
564 d dir_a ,dir_b ,igeo ,
565 e ipm ,ifailure ,npg ,fheat ,
566 f tempel ,die ,jthe ,iexpan ,gbuf%TEMP ,
567 g ibid ,bid ,
568 h bid ,bid ,bid ,bid ,bid ,
569 i bid ,bid ,bid ,e1x ,e1y ,
570 j e1z ,e2x ,e2y ,e2z ,e3x ,
571 k e3y ,e3z ,ng ,table ,ixfem ,
572 l bid ,sensors ,bid ,elcrkini ,
573 m dir1_crk ,dir2_crk ,aldt ,glob_therm%IDT_THERM ,glob_therm%THEACCFACT,
574 n ismstr ,ir ,is ,nlay ,npt ,
575 o ixlay ,ixel ,isubstack ,stack ,
576 p f_def ,itask ,drape_sh4n ,var_reg ,nloc_dmg ,
577 r indx_drape ,thke ,sedrape ,numel_drape ,dt ,
578 q ncycle ,snpc ,stf ,nxlaymax ,idel7nok ,
579 s userl_avail ,maxfunc ,npttot ,sbufmat ,sdir_a ,
580 t sdir_b ,gbuf%FOR_G ,ssp_eq ,
581 x ipart ,lipart1 ,ipartc )
582C-----------------------------
583 IF ((imon_mat==1).AND. itask == 0)CALL stoptime(timers,35)
584C-----------------------------
585C FORCES ANTI-SABLIER
586C-----------------------------
587 DO i=jft,jlt
588 viscmx(i) = sqrt(one + viscmx(i)*viscmx(i)) - viscmx(i)
589 ENDDO
590 IF (nodadt /= 0 .AND. mtn ==58 )
591 . CALL cssp2a11(pm,mat(jft),ssp ,a11 ,jlt ,1 )
592c---------------------------------------------------
593 IF (iabs(npttot) == 1) THEN
594 CALL mhvis3(jft ,jlt ,pm ,gbuf%THK,gbuf%HOURG,
595 2 off ,px1 ,px2 ,py1 ,py2 ,
596 3 ixc ,dt1c ,ssp ,rho ,sti ,
597 4 eani ,geo ,pid ,stir ,mat ,
598 5 thk0 ,viscmx ,alpe ,ipartc ,partsav ,
599 6 ihbe ,nft ,ismstr ,rx1 ,
600 7 rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,
601 8 ry3 ,ry4 ,vx1 ,vx2 ,vx3 ,
602 9 vx4 ,vy1 ,vy2 ,vy3 ,vy4 ,
603 a vz1 ,vz2 ,vz3 ,vz4 ,b11 ,
604 b b12 ,b13 ,b14 ,b21 ,b22 ,
605 c b23 ,b24 ,area ,ym ,nu ,
606 d vhx ,vhy ,h11 ,h12 ,h13 ,
607 e h14 ,h21 ,h22 ,h23 ,h24 ,
608 f h31 ,h32 ,h33 ,h34 ,h1 ,
609 g h2 ,igeo ,nel ,mtn ,a11 )
610 ELSEIF(ihbe == 2)THEN
611 CALL chsti3(jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,
612 2 px2 ,py1 ,py2 ,sigy ,ixc ,dt1c,
613 3 ssp ,rho ,sti ,z2 ,eani ,stir,
614 4 shf ,thk0 ,thk02 ,viscmx ,g ,a11 ,
615 5 h1 ,h2 ,h3 ,ym ,nu , alpe ,
616 6 vhx ,vhy ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
617 7 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,area ,
618 8 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
619 9 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
620 a rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4,
621 b ipartc,partsav,
622 c ihbe ,nft ,ismstr,srh3,igtyp ,
623 d igmat ,a11r ,nel)
624 ELSE
625 CALL chvis3(
626 2 jft ,jlt ,gbuf%THK,gbuf%HOURG,off ,px1 ,px2 ,py1 ,py2 ,
627 3 ixc ,dt1c,ssp,rho ,sti ,vx1 ,vx2 ,vx3 ,vx4 ,vy1 ,
628 4 vy2 ,vy3 ,vy4,vz1 ,vz2 ,vz3 ,vz4 ,area,thk0,vhx ,
629 5 vhy ,shf ,z2 ,eani ,stir,viscmx,g ,a11 ,
630 6 h1 ,h2 ,h3 ,ym ,nu ,thk02,alpe,h11 ,
631 7 h12 ,h13 ,h21 ,h22 ,h23 ,h31 ,h32 ,h33 ,
632 8 b11 ,b12 ,b13 ,b14 ,b21 ,b22 ,b23 ,b24 ,
633 9 rx1 ,rx2 ,rx3 ,rx4 ,ry1 ,ry2 ,ry3 ,ry4 ,
634 a ipartc,partsav,
635 b ihbe ,nft ,ismstr,kfts ,
636 c srh1, srh2, srh3 ,igtyp ,
637 d igmat ,a11r ,nel)
638 ENDIF
639C--------------------------
640C BALANCES BY MATERIAL
641C--------------------------
642c IFLAG=MOD(NCYCLE,NCPRI)
643 IF (ipri>0) THEN
644 CALL cbilan(
645 1 jft, jlt, pm, v,
646 2 ixc, gbuf%THK, gbuf%EINT, partsav,
647 3 area, mat, ipartc, x,
648 4 vr, vol0, vol00, thk0,
649 5 thk02, 1, off, nft,
650 6 gresav, grth, igrth, vl1,
651 7 vl2, vl3, vl4, vrl1,
652 8 vrl2, vrl3, vrl4, x1g,
653 9 x2g, x3g, x4g, y1g,
654 a y2g, y3g, y4g, z1g,
655 b z2g, z3g, z4g, ibid,
656 c iexpan, gbuf%EINTTH,itask, gbuf%VOL,
657 d actifxfem, igre, sensors, nel,
658 e gbuf%G_WPLA,gbuf%WPLA )
659 ENDIF
660C--------------------------
661C TIME STEP
662C--------------------------
663 IF (ismstr /= 3.AND.(nodadt == 0.OR.idtmin(3) /= 0))THEN
664 CALL cdt3(jft ,jlt ,ym ,off ,dt2t ,
665 2 neltst ,ityptst,sti ,stir ,gbuf%OFF,
666 3 dtcsub ,ndt ,dt2c ,ixc ,ssp ,
667 4 viscmx ,px1 ,px2 ,py1 ,py2 ,
668 5 vol0 ,vol00 ,rho ,aldt ,alpe ,
669 6 indxof ,ngl ,ismstr ,iofc ,msc ,
670 7 dmelc ,jsms ,gbuf%G_DT ,gbuf%DT)
671 ENDIF
672C----------------------------
673C FORCES INTERNES + ASSEMBLE
674C----------------------------
675 CALL cfint3(jft ,jlt ,gbuf%FOR,gbuf%MOM,thk0 ,thk02 ,
676 2 px1 ,px2 ,py1 ,py2 ,area ,z2 ,
677 3 f11 ,f12 ,f13 ,f14 ,f21 ,f22 ,
678 4 f23 ,f24 ,f31 ,f32 ,f33 ,f34 ,
679 5 h11 ,h12 ,h13 ,h21 ,h22 ,h23 ,
680 6 h31 ,h32 ,h33 ,b11 ,b12 ,b13 ,
681 7 b14 ,b21 ,b22 ,b23 ,b24 ,nel ,
682 8 m11 ,m12 ,m13 ,m14 ,m21 ,m22 ,
683 9 m23 ,m24 ,m31 ,m32 ,m33 ,m34 ,
684 a e1x ,e1y ,e1z ,e2x ,e2y ,e2z ,
685 b e3x ,e3y ,e3z ,ihbe ,npttot ,fzero )
686C-------------------------
687c Shell thermal
688C--------------------------
689C
690 IF (jthe /= 0) THEN ! /heat/mat
691 IF (mat_elem%MAT_PARAM(mat(1))%HEAT_FLAG == 1) THEN
692 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
693 . px1 ,px2 ,py1 ,py2 ,area ,dt1c ,
694 . temp ,tempel,fheat , them ,glob_therm%THEACCFACT)
695 ELSE
696 CALL thermc(jft ,jlt ,pm ,mat ,thk0 ,ixc ,
697 . px1 ,px2 ,py1 ,py2 ,area ,dt1c ,
698 . temp ,tempel,die , them ,glob_therm%THEACCFACT)
699 END IF
700 ENDIF
701C--------------------------
702C THERMAL TIME STEP
703C--------------------------
704 imat = mat(1)
705 IF (jthe /= 0 .AND. glob_therm%IDT_THERM == 1) THEN
706 call dttherm(nel ,pm(1,imat),npropm,glob_therm,mat_elem%mat_param(imat),
707 . jtur ,tempel ,vol0 ,rho ,
708 . aldt ,off ,conde ,gbuf%re ,gbuf%rk )
709 ENDIF
710c-------------------------
711c Virtual internal forces of regularized non local ddl
712c--------------------------
713 IF (inloc > 0) THEN
714 ! Warning : Y24 = PX1
715 CALL cfint_reg(
716 1 nloc_dmg, var_reg, gbuf%THK, nel,
717 2 off, area, nc1, nc2,
718 3 nc3, nc4, px1, py1,
719 4 px2, py2, elbuf_str%NLOC(1,1),
720 5 ixc(1,jft), nddl, itask, dt2t,
721 6 aldt, gbuf%THK_I, gbuf%AREA, nft)
722 ENDIF
723C--------------------------
724 IF (iparit == 3) THEN
725 CALL cupdt3f(jft ,jlt ,f ,m ,nvc ,
726 2 gbuf%OFF,off ,sti ,stir ,stifn ,
727 3 stifr ,ixc ,pm ,area ,gbuf%THK ,
728 4 f11 ,f12 ,f13 ,f14 ,f21 ,
729 5 f22 ,f23 ,f24 ,f31 ,f32 ,
730 6 f33 ,f34 ,m11 ,m12 ,m13 ,
731 7 m14 ,m21 ,m22 ,m23 ,m24 ,
732 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
733 9 partsav ,mat ,ipartc ,glob_therm%NODADT_THERM)
734 ELSEIF (iparit == 0) THEN
735 CALL cupdt3(jft ,jlt ,f ,m ,nvc ,
736 2 gbuf%OFF,off ,sti ,stir ,stifn ,
737 3 stifr ,ixc ,pm ,area ,gbuf%THK ,
738 4 f11 ,f12 ,f13 ,f14 ,f21 ,
739 5 f22 ,f23 ,f24 ,f31 ,f32 ,
740 6 f33 ,f34 ,m11 ,m12 ,m13 ,
741 7 m14 ,m21 ,m22 ,m23 ,m24 ,
742 8 m31 ,m32 ,m33 ,m34 ,gbuf%EINT,
743 9 partsav ,mat ,ipartc,jthe ,them ,
744 a fthe ,condn ,conde ,glob_therm%NODADT_THERM)
745 ELSE
746 CALL cupdt3p(jft ,jlt ,gbuf%OFF,off ,sti ,
747 2 stir ,fsky ,fsky ,iadc ,ixc ,
748 3 f11 ,f12 ,f13 ,f14 ,f21 ,
749 4 f22 ,f23 ,f24 ,f31 ,f32 ,
750 5 f33 ,f34 ,m11 ,m12 ,m13 ,
751 6 m14 ,m21 ,m22 ,m23 ,m24 ,
752 7 m31 ,m32 ,m33 ,m34 ,
753 8 gbuf%EINT,partsav ,mat ,ipartc,pm ,
754 9 area ,gbuf%THK,jthe ,them ,fthesky,
755 a condnsky ,conde ,glob_therm%NODADT_THERM)
756 ENDIF
757c
758 IF (icsen > 0)
759 . CALL csens3(jft ,jlt ,pid ,igeo ,epsd_pg)
760C-------------------------
761c Shell cracking
762C--------------------------
763 IF (ixfem > 0) THEN
764 DO ilay=1,nxlay
765c
766 ! crack length calculation for advancing crack
767 crklen => elbuf_str%BUFLY(ilay)%DMG(1:nel)
768 CALL crklen4n_adv(
769 . nel ,nft ,ilay ,nlay ,ixc ,
770 . crklen ,elcrkini ,iel_crk ,dir1_crk ,dir2_crk ,
771 . nodedge ,crkedge ,xedge4n ,ngl ,x2 ,
772 . x3 ,x4 ,y2 ,y3 ,y4 ,
773 . aldt )
774c
775 CALL crklayer4n_adv(
776 . xfem_str(ig,1:nxel) ,nel ,nft ,ixc ,elcutc ,
777 . ilay ,nxlay ,iel_crk ,inod_crk ,
778 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
779 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
780 . x2 ,x3 ,x4 ,y2 ,y3 ,
781 . y4 ,xedge4n ,ngl )
782c
783 CALL crklayer4n_ini(
784 . xfem_str(ig,1:nxel) ,nel ,nft ,ixc ,elcutc ,
785 . ilay ,nxlay ,iel_crk ,inod_crk ,
786 . iadc_crk ,nodenr ,elcrkini ,dir1_crk ,dir2_crk ,
787 . nodedge ,crknodiad,knod2elc ,crkedge ,a_i ,
788 . x2 ,x3 ,x4 ,y2 ,y3 ,
789 . y4 ,xedge4n ,ngl )
790 ENDDO
791C
792 CALL crkoffc(elbuf_str,xfem_str(ig,1:nxel) ,
793 . jft ,jlt ,nft ,ir ,is ,
794 . nxlay ,iel_crk ,crkedge,xedge4n )
795 END IF
796c--------------------------------------------
797c Front wave
798c--------------------------------------------
799 IF (ifailwave > 0) THEN
800 crkdir => elbuf_str%BUFLY(1)%CRKDIR
801c
802 CALL set_failwave_nod4(failwave ,fwave_el ,ngl ,
803 . nel ,ixc ,itab ,crkdir ,dir_a ,
804 . l_dira ,x2 ,x3 ,x4 ,y2 ,
805 . y3 ,y4 )
806 ENDIF
807C-----------
808 IF (ALLOCATED(dir2_crk)) DEALLOCATE(dir2_crk)
809 IF (ALLOCATED(dir1_crk)) DEALLOCATE(dir1_crk)
810 IF (ALLOCATED(elcrkini)) DEALLOCATE(elcrkini)
811 IF (ALLOCATED(dirb)) DEALLOCATE(dirb)
812 IF (ALLOCATED(dira)) DEALLOCATE(dira)
813 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
814C-----------
815 RETURN
816 END SUBROUTINE cforc3
817c
subroutine cbilan(jft, jlt, pm, v, ixc, thk, eint, partsav, area, mat, ipartc, x, vr, vol0, vol00, thk0, thk02, ifla, off, nft1, gresav, grth, igrth, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, ixfem, iexpan, eintth, itask, gvol, actifxfem, igre, sensors, nel, g_wpla, wpla)
Definition cbilan.F:53
subroutine ccoef3(jft, jlt, pm, mat, geo, pid, off, area, sti, stir, shf, thk0, thk02, nu, g, ym, a11, a12, thk, ssp, rho, h1, h2, h3, vol0, vol00, alpe, gs, mtn, ithk, ismstr, npt, kfts, srh1, srh2, srh3, igeo, a11r, isubstack, pm_stack)
Definition ccoef3.F:39
subroutine ccoort3(jft, jlt, x, ixc, offg, dr, px1, px2, py1, py2, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, area, v13x, v24x, v13y, v24y, smstr, nel)
Definition ccoor3.F:174
subroutine ccoor3(jft, jlt, x, ixc, geo, offg, off, sigy, pid, v, vr, vl1, vl2, vl3, vl4, vrl1, vrl2, vrl3, vrl4, mat, dt1c, thke, thk0, ngl, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4)
Definition ccoor3.F:35
subroutine ccurv3(jft, jlt, vrl1, vrl2, vrl3, vrl4, px1, px2, py1, py2, area, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, kxx, kyy, kxy, exz, eyz, wxy, ismstr)
Definition ccurv3.F:35
subroutine cdefo3(jft, jlt, vl1, vl2, vl3, vl4, dt1c, px1, px2, py1, py2, area, exx, eyy, exy, exz, eyz, x2, x3, x4, y2, y3, y4, z2, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ihbe)
Definition cdefo3.F:35
subroutine cdefot3(jft, jlt, px1, px2, py1, py2, vx13, vx24, vy13, vy24, f_def)
Definition cdefo3.F:226
subroutine cderi3(jft, jlt, smstr, offg, sti, stir, area, px1, px2, py1, py2, x2, x3, x4, y2, y3, y4, z2, x1g, x2g, x3g, x4g, y1g, y2g, y3g, y4g, z1g, z2g, z3g, z4g, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, vhx, vhy, a_i, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, nel, ismstr)
Definition cderi3.F:43
subroutine cdlen3(jft, jlt, pm, off, area, x2, x3, x4, y2, y3, y4, aldt, mat, geo, pid, ihbe)
Definition cdlen3.F:33
subroutine cdt3(jft, jlt, ym, off, dt2t, neltst, ityptst, sti, stir, offg, dtc, ndt, dt2c, ixc, ssp, viscmx, px1, px2, py1, py2, vol0, vol00, rho, aldt, alpe, indxof, ngl, ismstr, iofc, msc, dmelc, jsms, g_dt, dtel)
Definition cdt3.F:38
subroutine cevec3(elbuf_str, dir_a, dir_b, jft, jlt, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, irep, nlay, nel)
Definition cevec3.F:36
subroutine cfint3(jft, jlt, for, mom, thk0, thk02, px1, px2, py1, py2, area, z2, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, nel, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ihbe, npt, fzero)
Definition cfint3.F:40
subroutine cfint_reg(nloc_dmg, var_reg, thk, nel, off, area, nc1, nc2, nc3, nc4, px1, py1, px2, py2, bufnl, imat, nddl, itask, dt2t, le, thk0, area0, nft)
Definition cfint_reg.F:39
subroutine cforc3(timers, elbuf_str, jft, jlt, pm, ixc, x, f, m, v, vr, failwave, nvc, mtn, geo, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, stifr, fsky, iadc, itab, d, dr, tani, offset, eani, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, indxof, ipartc, thke, group_param, mat_elem, nel, istrain, ihbe, ithk, iofc, ipla, nft, ismstr, npt, kfts, fzero, igeo, ipm, ifailure, itask, jthe, temp, fthe, fthesky, iexpan, gresav, grth, xedge4n, igrth, msc, dmelc, jsms, table, iparg, ixfem, knod2elc, sensors, elcutc, inod_crk, iel_crk, ibordnode, nodenr, iadc_crk, nodedge, crknodiad, condn, condnsky, stack, isubstack, xfem_str, ig, crkedge, drape_sh4n, ipri, nloc_dmg, indx_drape, igre, jtur, output, dt, snpc, stf, glob_therm, userl_avail, maxfunc, sbufmat, ipart)
Definition cforc3.F:113
subroutine chsti3(jft, jlt, thk, hour, off, px1, px2, py1, py2, sigy, ixc, dt1c, ssp, rho, sti, z2, eani, stir, shf, thk0, thk02, viscmx, g, a11, h1, h2, h3, ym, nu, alpe, vhx, vhy, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, area, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, ipartc, partsav, ihbe, nft, ismstr, srh3, igtyp, igmat, a11r, nel)
Definition chsti3.F:44
subroutine chvis3(jft, jlt, thk, hour, off, px1, px2, py1, py2, ixc, dt1c, ssp, rho, sti, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, area, thk0, vhx, vhy, shf, z2, eani, stir, viscmx, g, a11, h1, h2, h3, ym, nu, thk02, alpe, h11, h12, h13, h21, h22, h23, h31, h32, h33, b11, b12, b13, b14, b21, b22, b23, b24, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, ipartc, partsav, ihbe, nft, ismstr, kfts, srh1, srh2, srh3, igtyp, igmat, a11r, nel)
Definition chvis3.F:44
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 cnvec3(elbuf_str, dir_a, dir_b, jft, jlt, irep, igtyp, nlay, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, nel)
Definition cnvec3.F:40
subroutine cpxpy3(jft, jlt, pm, sti, smstr, px1, px2, py1, py2, stir, ixc, area, x2, x3, x4, y2, y3, y4, z2, thk0, mat, nel)
Definition cpxpy3.F:36
subroutine crklayer4n_adv(xfem_str, nel, nft, ixc, elcutc, ilay, nlay, iel_crk, inod_crk, iadc_crk, nodenr, elcrkini, dir1, dir2, nodedge, crknodiad, knod2elc, crkedge, a_i, xl2, xl3, xl4, yl2, yl3, yl4, xedge4n, ngl)
subroutine crklayer4n_ini(xfem_str, nel, nft, ixc, elcutc, ilay, nlay, iel_crk, inod_crk, iadc_crk, nodenr, elcrkini, dir1, dir2, nodedge, crknodiad, knod2elc, crkedge, a_i, xl2, xl3, xl4, yl2, yl3, yl4, xedge4n, ngl)
subroutine crklen4n_adv(nel, nft, ilay, nlay, ixc, crklen, elcrkini, iel_crk, dir1, dir2, nodedge, crkedge, xedge4n, ngl, xl2, xl3, xl4, yl2, yl3, yl4, aldt)
subroutine csens3(jft, jlt, pid, igeo, epsp)
Definition csens3.F:38
subroutine cssp2a11(pm, imat, ssp, a11, nel, iflag)
Definition cssp2a11.F:32
subroutine cstra3(jft, jlt, gstr, shf, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, dt1c, epsdot, for, mom, ismstr, mtn, ihbe, nft, istrain, ux1, ux2, ux3, ux4, uy1, uy2, uy3, uy4, px1, px2, py1, py2, wxy, gstrw, f_def, nel)
Definition cstra3.F:37
subroutine cupdt3f(jft, jlt, i8f, i8m, nvc, offg, off, sti, stir, i8stifn, i8stifr, ixc, pm, area, thk, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, nodadt_therm)
Definition cupdt3.F:43
subroutine cupdt3p(jft, jlt, offg, off, sti, stir, fsky, fskyv, iadc, ixc, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, pm, area, thk, jthe, them, fthesky, condnsky, conde, nodadt_therm)
Definition cupdt3.F:976
subroutine cupdt3(jft, jlt, f, m, nvc, offg, off, sti, stir, stifn, stifr, ixc, pm, area, thk, f11, f12, f13, f14, f21, f22, f23, f24, f31, f32, f33, f34, m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, eint, partsav, mat, ipartc, jthe, them, fthe, condn, conde, nodadt_therm)
Definition cupdt3.F:523
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21
subroutine mhvis3(jft, jlt, pm, thk, hour, off, px1, px2, py1, py2, ixc, dt1c, ssp, rho, sti, eani, geo, pid, stir, mat, thk0, viscmx, alpe, ipartc, partsav, ihbe, nft, ismstr, rx1, rx2, rx3, rx4, ry1, ry2, ry3, ry4, vx1, vx2, vx3, vx4, vy1, vy2, vy3, vy4, vz1, vz2, vz3, vz4, b11, b12, b13, b14, b21, b22, b23, b24, area, ym, pr, vhx, vhy, h11, h12, h13, h14, h21, h22, h23, h24, h31, h32, h33, h34, h1, h2, igeo, nel, mtn, a1)
Definition mhvis3.F:47
integer numelc_drape
Definition drape_mod.F:92
subroutine crkoffc(elbuf_str, xfem_str, jft, jlt, nft, ir, is, nxlay, iel_crk, crkedge, xedge4n)
Definition precrklay.F:145
subroutine precrklay(jft, jlt, nft, nlay, elcrkini, iel_crk, inod_crk, nodenr, crkedge, xedge4n)
Definition precrklay.F:33
subroutine set_failwave_nod4(failwave, fwave_el, ngl, nel, ixc, itab, crkdir, dir_a, nrot, xl2, xl3, xl4, yl2, yl3, yl4)
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135
subroutine tempcg(numnod, nel, ixc, temp, tempel)
Definition tempcg.F:34
subroutine thermc(jft, jlt, pm, mat, thk, ixc, px1, px2, py1, py2, area, dt1c, tempnc, tempel, die, fphi, theaccfact)
Definition thermc.F:36
subroutine set_failwave_sh4n(failwave, fwave_el, dadv, nel, ixc, itab, ngl, offly)