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