OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
szforc3.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!|| szforc3 ../engine/source/elements/solid/solidez/szforc3.F
25!||--- called by ------------------------------------------------------
26!|| forint ../engine/source/elements/forint.F
27!||--- calls -----------------------------------------------------
28!|| amass3 ../engine/source/elements/solid/solide/amass3.F
29!|| amass3p ../engine/source/elements/solid/solide/amass3p.F
30!|| amomt3 ../engine/source/elements/solid/solide/amomt3.F
31!|| boltst ../engine/source/elements/solid/solide/boltst.F
32!|| check_off_ale ../engine/source/elements/solid/solide/check_off_ale.F
33!|| emomt3b ../engine/source/elements/solid/solide/emomt3b.F
34!|| epxle3 ../engine/source/elements/solid/solide/epxle3.F
35!|| fe_close ../engine/source/elements/solid/solide/fe_close.F
36!|| mmain ../engine/source/materials/mat_share/mmain.F90
37!|| mod_close ../engine/source/elements/solid/solide/mod_close.F
38!|| nsvis_sm12 ../engine/source/elements/solid/solide10/nsvis_sm12.F
39!|| s11defo3 ../engine/source/elements/solid/solide/s11defo3.F
40!|| s8for_distor ../engine/source/elements/solid/solide/s8for_distor.F
41!|| s8get_x3 ../engine/source/elements/solid/solide/s8get_x3.F
42!|| s8sav12 ../engine/source/elements/solid/solide/s8sav12.F
43!|| s8sav3 ../engine/source/elements/solid/solide/s8sav3.F
44!|| s8upd11t12 ../engine/source/elements/solid/solide/s8upd11t12.f
45!|| scoor_cp2sp ../engine/source/elements/solid/solidez/scoor_cp2sp.F
46!|| scumu3 ../engine/source/elements/solid/solide/scumu3.F
47!|| scumu3p ../engine/source/elements/solid/solide/scumu3p.F
48!|| sdefo3 ../engine/source/elements/solid/solide/sdefo3.F
49!|| sdefot3 ../engine/source/elements/solid/solide/sdefot3.F
50!|| sdistor_ini ../engine/source/elements/solid/solide/sdistror_ini.F90
51!|| sdlen3 ../engine/source/elements/solid/solide/sdlen3.F
52!|| sdlen8 ../engine/source/elements/solid/solidez/sdlen8.F
53!|| sdlen_sms ../engine/source/elements/solid/solidez/sdlen_sms.F
54!|| sdlenmax ../engine/source/elements/solid/solide/sdlenmax.F
55!|| sfillopt ../engine/source/elements/solid/solide/sfillopt.F
56!|| sfint3 ../engine/source/elements/solid/solide/sfint3.F
57!|| sfint_reg ../engine/source/elements/solid/solide/sfint_reg.F
58!|| sgcoor3 ../engine/source/elements/solid/solide/sgcoor3.F
59!|| sgeodel3 ../engine/source/elements/solid/solide/sgeodel3.F
60!|| smallb3 ../engine/source/elements/solid/solide/smallb3.f
61!|| smallgeo3 ../engine/source/elements/solid/solide/smallgeo3.F
62!|| sordeft3 ../engine/source/elements/solid/solidez/sordeft3.F
63!|| srbilan ../engine/source/elements/solid/solide/srbilan.F
64!|| srcoor3 ../engine/source/elements/solid/solide/srcoor3.F
65!|| srho3 ../engine/source/elements/solid/solide/srho3.F
66!|| srmalla11 ../engine/source/elements/solid/solide/srmalla11.F
67!|| srmalla3 ../engine/source/elements/solid/solide/srmall3.F
68!|| sroto3 ../engine/source/elements/solid/solidez/sroto3.F
69!|| srrota3 ../engine/source/elements/solid/solide/srrota3.F
70!|| srrotadp ../engine/source/elements/solid/solide/srrotadp.F
71!|| sstra3 ../engine/source/elements/solid/solide/sstra3.F
72!|| startime ../engine/source/system/timer_mod.F90
73!|| stherm ../engine/source/elements/solid/solide/stherm.F
74!|| stoptime ../engine/source/system/timer_mod.F90
75!|| storth3 ../engine/source/elements/solid/solidez/storth3.F
76!|| sz_dt1 ../engine/source/elements/solid/solidez/sz_dt1.f90
77!|| szderi3 ../engine/source/elements/solid/solidez/szderi3.F
78!|| szderit3 ../engine/source/elements/solid/solidez/szderi3.F
79!|| szderito3 ../engine/source/elements/solid/solidez/szderi3.F
80!|| szhour3 ../engine/source/elements/solid/solidez/szhour3.F
81!|| szhour3_or ../engine/source/elements/solid/solidez/szhour3_or.F
82!|| szhour_ctl ../engine/source/elements/solid/solidez/szhour_ctl.F
83!|| szordef3 ../engine/source/elements/solid/solidez/szordef3.F
84!|| sztorth3 ../engine/source/elements/solid/solidez/sztorth3.F
85!|| visc_et ../engine/source/elements/solid/solidez/visc_et.f
86!||--- uses -----------------------------------------------------
87!|| ale_connectivity_mod ../common_source/modules/ale/ale_connectivity_mod.f
88!|| ale_mod ../common_source/modules/ale/ale_mod.F
89!|| dt_mod ../engine/source/modules/dt_mod.F
90!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
91!|| element_mod ../common_source/modules/elements/element_mod.F90
92!|| glob_therm_mod ../common_source/modules/mat_elem/glob_therm_mod.F90
93!|| mat_elem_mod ../common_source/modules/mat_elem/mat_elem_mod.f90
94!|| mmain_mod ../engine/source/materials/mat_share/mmain.F90
95!|| nlocal_reg_mod ../common_source/modules/nlocal_reg_mod.F
96!|| output_mod ../common_source/modules/output/output_mod.F90
97!|| sdistor_ini_mod ../engine/source/elements/solid/solide/sdistror_ini.F90
98!|| sensor_mod ../common_source/modules/sensor_mod.F90
99!|| sz_dt1_mod ../engine/source/elements/solid/solidez/sz_dt1.F90
100!|| table_mod ../engine/share/modules/table_mod.F
101!|| timer_mod ../engine/source/system/timer_mod.F90
102!||====================================================================
103 SUBROUTINE szforc3(TIMERS, ELBUF_TAB,NG ,
104 1 PM ,GEO ,IXS ,X ,
105 2 A ,V ,MS ,W ,FLUX ,
106 3 FLU1 ,VEUL ,FV ,ALE_CONNECT ,IPARG ,
107 4 TF ,NPF ,BUFMAT ,PARTSAV,
108 5 DT2T ,NELTST ,ITYPTST ,STIFN ,FSKY ,
109 6 IADS ,OFFSET ,EANI ,IPARTS ,ICP ,
110 7 F11 ,F21 ,F31 ,F12 ,F22 ,
111 8 F32 ,F13 ,F23 ,F33 ,F14 ,
112 9 F24 ,F34 ,F15 ,F25 ,F35 ,
113 A F16 ,F26 ,F36 ,F17 ,F27 ,
114 B F37 ,F18 ,F28 ,F38 ,NEL ,
115 C FSKYM ,MSNF ,NVC ,IPM ,ITASK ,
116 D QMV ,ISTRAIN ,IMATVIS ,TEMP ,FTHE ,
117 E FTHESKY ,IEXPAN ,GRESAV ,GRTH ,IGRTH ,
118 F MSSA ,DMELS ,TABLE ,IGEO ,XDP ,
119 G CONDN ,CONDNSKY ,
120 H D ,TAGPRT_SMS,SENSORS,IOUTPRT ,
121 I NALE ,NLOC_DMG ,MAT_ELEM,H3D_STRAIN,
122 J DT ,OUTPUT,NSVOIS,SZ_BUFVOIS,SNPC,STF,
123 K SBUFMAT ,SVIS,IRESP,MAXFUNC, USERL_AVAIL, GLOB_THERM,
124 V impl_s ,idyna)
125C-----------------------------------------------
126C M o d u l e s
127C-----------------------------------------------
128 USE timer_mod
129 USE output_mod, only : output_
130 USE mmain_mod
131 USE table_mod
132 USE mat_elem_mod
135 USE sensor_mod
136 USE ale_mod
137 USE dt_mod
138 USE elbufdef_mod
139 USE sdistor_ini_mod, ONLY : sdistor_ini
140 use glob_therm_mod
141 USE sensor_mod
142 USE sz_dt1_mod, only : sz_dt1
143 use element_mod , only : nixs
144C-----------------------------------------------
145C I m p l i c i t T y p e s
146C-----------------------------------------------
147#include "implicit_f.inc"
148C-----------------------------------------------
149C G l o b a l P a r a m e t e r s
150C-----------------------------------------------
151#include "mvsiz_p.inc"
152C-----------------------------------------------
153C C o m m o n B l o c k s
154C-----------------------------------------------
155#include "vect01_c.inc"
156#include "com01_c.inc"
157#include "com04_c.inc"
158#include "com06_c.inc"
159#include "scr07_c.inc"
160#include "com08_c.inc"
161#include "scr06_c.inc"
162#include "scr17_c.inc"
163#include "parit_c.inc"
164#include "param_c.inc"
165#include "timeri_c.inc"
166#include "scr18_c.inc"
167#include "sms_c.inc"
168C-----------------------------------------------
169C D u m m y A r g u m e n t s
170C-----------------------------------------------
171 TYPE(timer_) , INTENT(INOUT) :: TIMERS
172 INTEGER, INTENT(IN) :: NSVOIS
173 INTEGER, INTENT(IN) :: SZ_BUFVOIS
174 INTEGER, INTENT(IN) :: SNPC
175 INTEGER, INTENT(IN) :: STF
176 INTEGER, INTENT(IN) :: SBUFMAT
177 INTEGER ,INTENT(IN) :: IRESP
178 INTEGER ,INTENT(IN) :: MAXFUNC
179 INTEGER, INTENT(IN) :: IMPL_S
180 INTEGER, INTENT(IN) :: IDYNA
181 INTEGER, INTENT(IN) :: USERL_AVAIL
182 INTEGER IXS(NIXS,*),IPARG(NPARG,NGROUP), NPF(*),IADS(8,*),
183 . IPARTS(*),IPM(NPROPMI,NUMMAT),ITASK,IMATVIS,GRTH(*),IGRTH(*),
184 . IGEO(NPROPGI,*), TAGPRT_SMS(*)
185 INTEGER NELTST,ITYPTST,OFFSET,NEL ,ICP,
186 . NVC,ISTRAIN,IEXPAN,NG,NPTS,IOUTPRT,NALE(*),H3D_STRAIN
187
188 DOUBLE PRECISION
189 . XDP(3,*)
190 my_real
191 . DT2T
192 my_real
193 . pm(npropm,nummat), geo(npropg,*), x(*), a(*), v(3,*), ms(*), w(*),
194 . flux(6,*), fskym(*),
195 . flu1(*), veul(*), fv(*), tf(*), bufmat(*),
196 . partsav(*),stifn(*), fsky(*),eani(*),msnf(*),
197 . f11(mvsiz),f21(mvsiz),f31(mvsiz),
198 . f12(mvsiz),f22(mvsiz),f32(mvsiz),
199 . f13(mvsiz),f23(mvsiz),f33(mvsiz),
200 . f14(mvsiz),f24(mvsiz),f34(mvsiz),
201 . f15(mvsiz),f25(mvsiz),f35(mvsiz),
202 . f16(mvsiz),f26(mvsiz),f36(mvsiz),
203 . f17(mvsiz),f27(mvsiz),f37(mvsiz),
204 . f18(mvsiz),f28(mvsiz),f38(mvsiz),
205 . temp(*), fthe(*), fthesky(*),
206 . qmv(12,*),gresav(*), mssa(*), dmels(*),
207 . condn(*),condnsky(*),d(*)
208
209 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
210 TYPE (TTABLE) TABLE(*)
211 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
212 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
213 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
214 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
215 TYPE (SENSORS_) , INTENT(INOUT) :: SENSORS
216 TYPE(DT_), INTENT(INOUT) :: DT
217 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT !< output structure
218 type (glob_therm_) ,intent(inout) :: glob_therm
219C-----------------------------------------------
220C L o c a l V a r i a b l e s
221C-----------------------------------------------
222 INTEGER I,J,NF1,IFLAG,ILAY,IPTR,IPTS,IPTT,II(6)
223 INTEGER IBID,IBIDV(1),ITET,IADBUF,IVISC,IP
224 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),INOD(8),
225 . IPOS(8), L_NLOC, INLOC,ICP0
226 my_real
227 . VOLN(MVSIZ), VD2(MVSIZ) , DVOL(MVSIZ),DELTAX(MVSIZ),
228 . VIS(MVSIZ) , QVIS(MVSIZ), CXX(MVSIZ) ,
229 . S1(MVSIZ) , S2(MVSIZ) , S3(MVSIZ) ,
230 . s4(mvsiz) , s5(mvsiz) , s6(mvsiz) ,
231 . dxx(mvsiz) , dyy(mvsiz) , dzz(mvsiz) ,
232 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
233 . jac1(mvsiz), jac2(mvsiz), jac3(mvsiz),
234 . jac4(mvsiz), jac5(mvsiz), jac6(mvsiz), jac9(mvsiz),
235 . vdx(mvsiz) , vdy(mvsiz) , vdz(mvsiz),ssp_eq(mvsiz),aire(mvsiz),
236 . conde(mvsiz),divde(mvsiz),deltaxi(mvsiz)
237
238 DOUBLE PRECISION
239 . xd1(mvsiz), xd2(mvsiz), xd3(mvsiz), xd4(mvsiz),
240 . xd5(mvsiz), xd6(mvsiz), xd7(mvsiz), xd8(mvsiz),
241 . yd1(mvsiz), yd2(mvsiz), yd3(mvsiz), yd4(mvsiz),
242 . yd5(mvsiz), yd6(mvsiz), yd7(mvsiz), yd8(mvsiz),
243 . zd1(mvsiz), zd2(mvsiz), zd3(mvsiz), zd4(mvsiz),
244 . zd5(mvsiz), zd6(mvsiz), zd7(mvsiz), zd8(mvsiz),
245 . x0(mvsiz,8),y0(mvsiz,8),z0(mvsiz,8),voldp(mvsiz)
246C-----
247C
248 my_real
249 . sti(mvsiz),gama(mvsiz,6),
250 . wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
251C
252 my_real
253 . muvoid(mvsiz),fac_nu,nu_sp,nu0,dn
254C-----
255C 8-nodes Solid Connectivities
256 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
257 . NC5(MVSIZ), NC6(MVSIZ), NC7(MVSIZ), NC8(MVSIZ)
258 my_real
259 . off(mvsiz) , rhoo(mvsiz),hh(mvsiz),bid(mvsiz),
260 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
261 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
262 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
263 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
264 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
265 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),
266 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
267 . vx5(mvsiz),vx6(mvsiz),vx7(mvsiz),vx8(mvsiz),
268 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
269 . vy5(mvsiz),vy6(mvsiz),vy7(mvsiz),vy8(mvsiz),
270 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
271 . vz5(mvsiz),vz6(mvsiz),vz7(mvsiz),vz8(mvsiz),
272 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
273 . px5(mvsiz),px6(mvsiz),px7(mvsiz),px8(mvsiz),
274 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
275 . py5(mvsiz),py6(mvsiz),py7(mvsiz),py8(mvsiz),
276 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
277 . pz5(mvsiz),pz6(mvsiz),pz7(mvsiz),pz8(mvsiz),
278 . px1h1(mvsiz),px2h1(mvsiz),px3h1(mvsiz),px4h1(mvsiz),
279 . px1h2(mvsiz),px2h2(mvsiz),px3h2(mvsiz),px4h2(mvsiz),
280 . px1h3(mvsiz),px2h3(mvsiz),px3h3(mvsiz),px4h3(mvsiz),
281 . px1h4(mvsiz),px2h4(mvsiz),px3h4(mvsiz),px4h4(mvsiz),
282 . vdx1(mvsiz),vdx2(mvsiz),vdx3(mvsiz),vdx4(mvsiz),
283 . vdx5(mvsiz),vdx6(mvsiz),vdx7(mvsiz),vdx8(mvsiz),
284 . vdy1(mvsiz),vdy2(mvsiz),vdy3(mvsiz),vdy4(mvsiz),
285 . vdy5(mvsiz),vdy6(mvsiz),vdy7(mvsiz),vdy8(mvsiz),
286 . vdz1(mvsiz),vdz2(mvsiz),vdz3(mvsiz),vdz4(mvsiz),
287 . vdz5(mvsiz),vdz6(mvsiz),vdz7(mvsiz),vdz8(mvsiz),
288 . vgxa(mvsiz),vgya(mvsiz),vgza(mvsiz), vga2(mvsiz),
289 . dxy(mvsiz),dyx(mvsiz),dyz(mvsiz),dzy(mvsiz),
290 . dzx(mvsiz),dxz(mvsiz),
291 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
292 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
293 . r31(mvsiz),r32(mvsiz),r33(mvsiz),
294 . g1x(mvsiz),g2x(mvsiz),g3x(mvsiz),
295 . g1y(mvsiz),g2y(mvsiz),g3y(mvsiz),
296 . g1z(mvsiz),g2z(mvsiz),g3z(mvsiz),
297 . n1x(mvsiz),n2x(mvsiz),n3x(mvsiz),
298 . n1y(mvsiz),n2y(mvsiz),n3y(mvsiz),
299 . n1z(mvsiz),n2z(mvsiz),n3z(mvsiz),
300 . n4x(mvsiz),n5x(mvsiz),n6x(mvsiz),
301 . n4y(mvsiz),n5y(mvsiz),n6y(mvsiz),
302 . n4z(mvsiz),n5z(mvsiz),n6z(mvsiz),
303 . vx0(mvsiz,8),vy0(mvsiz,8),vz0(mvsiz,8),
304 . mfxx(mvsiz),mfxy(mvsiz),mfyx(mvsiz),
305 . mfyy(mvsiz),mfyz(mvsiz),mfzy(mvsiz),
306 . mfzz(mvsiz),mfzx(mvsiz),mfxz(mvsiz),
307 . tempel(mvsiz),them(mvsiz,8),die(mvsiz),
308 . sigy(mvsiz), sigo(nel,6),et(mvsiz), sign(nel,6),
309 . r1_free(mvsiz),r3_dam(mvsiz),offg0(mvsiz),amu(mvsiz),
310 . xgxa(mvsiz),xgya(mvsiz),xgza(mvsiz),
311 . xgxya(mvsiz),xgyza(mvsiz),xgzxa(mvsiz),
312 . xgxa2(mvsiz),xgya2(mvsiz),xgza2(mvsiz),
313 . sti_c(mvsiz),ll(mvsiz),l_max(mvsiz),fld(mvsiz),
314 . cns2,rho0_1,nu,fqmax
315 my_real, dimension(mvsiz) :: fheat
316 my_real ,DIMENSION(:), POINTER :: eint
317C-----
318 TYPE(g_bufel_) ,POINTER :: GBUF
319 TYPE(L_BUFEL_) ,POINTER :: LBUF
320C-----
321C-----
322C IBOLTP : flag bolt preloading
323 INTEGER IBOLTP,NBPRELD,IMAT,ISM12_11,NN_DEL,PID,ISCTL,ISTAB(MVSIZ)
324 my_real, DIMENSION(:), ALLOCATABLE :: VAR_REG
325 my_real, DIMENSION(:), POINTER :: BPRELD,DNL
326 my_real :: P(MVSIZ)
327 INTEGER SZ_IX
328C-----------------------------------------------
329C S o u r c e L i n e s
330C=======================================================================
331 GBUF => elbuf_tab(ng)%GBUF
332 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
333 ism12_11 = elbuf_tab(ng)%BUFLY(1)%L_SIGL
334 npts = iparg(6,ng)
335 inloc = iparg(78,ng)
336 ALLOCATE(var_reg(nel))
337 tempel(:) = zero
338 fheat(:) = zero
339 ibid = 0
340 ibidv = 0
341 sz_ix=numelq+numels+nsvois
342 IF (jcvt==1 .AND. isorth>0) jcvt=2
343C
344 iboltp = iparg(72,ng)
345 nbpreld = gbuf%G_BPRELD
346 bpreld =>gbuf%BPRELD(1:nbpreld*nel)
347C
348 DO i=1,6
349 ii(i) = nel*(i-1)
350 ENDDO
351C
352 nf1=nft+1
353C
354 DO i=1,nel
355 sigy(i) = ep20
356 sigo(i,1) = gbuf%SIG(ii(1)+i)
357 sigo(i,2) = gbuf%SIG(ii(2)+i)
358 sigo(i,3) = gbuf%SIG(ii(3)+i)
359 sigo(i,4) = gbuf%SIG(ii(4)+i)
360 sigo(i,5) = gbuf%SIG(ii(5)+i)
361 sigo(i,6) = gbuf%SIG(ii(6)+i)
362 ENDDO
363C
364C Gather nodal variables and compute rotation
365 CALL srcoor3(x,ixs(1,nf1),v ,w ,gbuf%GAMA ,gama ,
366 . x1, x2, x3, x4, x5, x6, x7, x8,
367 . y1, y2, y3, y4, y5, y6, y7, y8,
368 . z1, z2, z3, z4, z5, z6, z7, z8,
369 . vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8,
370 . vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8,
371 . vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8,
372 . vd2,vis,gbuf%OFF,off,gbuf%SMSTR,gbuf%RHO,rhoo,
373 . r11, r12, r13, r21, r22, r23, r31, r32, r33,
374 . nc1,nc2,nc3,nc4,nc5,nc6,nc7,nc8,ngl,mxt,ngeo,
375 . ioutprt, vgxa, vgya, vgza, vga2,
376 . xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8,
377 . yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8,
378 . zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8,
379 . xdp, x0 , y0 , z0 , nel, xgxa, xgya, xgza,
380 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,iparg(1,ng),
381 . gbuf%GAMA_R)
382C
383 nn_del = 0
384 pid = ngeo(1)
385 imat = mxt(1)
386
387 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
388 . nn_del=8
389 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=8
390 cns2 = zero
391 IF (icp==1.AND.mtn==1.AND.ismstr==12) THEN
392 rho0_1 =pm( 1,imat)
393 cns2 = zep02
394 IF (igeo(35,ngeo(1))>0) cns2=cns2-abs(geo(17,ngeo(1)))
395 END IF
396! for sound speed takeing into account nu
397 imat = mxt(1)
398 icp0=mat_elem%MAT_PARAM(imat)%COMPRESSIBILITY
399 fac_nu = one
400 nu0 = pm(21,imat)
401 nu_sp = one
402 IF (idt1sol == 1.AND.(mtn==1.OR.icp0 ==3)) THEN
403 nu_sp=sqrt((one-nu0)/(one+nu0))
404 nu_sp = min(one,nu_sp/zep9)
405 fac_nu=(one-two*nu0)/(one-nu0)
406 END IF
407 isctl = igeo(97,pid)
408C Total strain Pij are in global system for ISMSTR=10,12 and in local system for ISMSTR=11
409 IF ((ismstr >= 10.AND.ismstr <= 12).AND.jlag > 0) THEN
410 CALL sgcoor3(
411 1 tt, 8, x, ixs(1,nf1),
412 2 x0, y0, z0, vx0,
413 3 vy0, vz0, gbuf%SMSTR,d,
414 4 gbuf%OFF, offg0, nel, xdp,
415 5 mtn, ismstr)
416 IF (ismstr == 11) THEN
417 CALL srrotadp(
418 1 r11, r12, r13, r21,
419 2 r22, r23, r31, r32,
420 3 r33, x0(1,1), x0(1,2), x0(1,3),
421 4 x0(1,4), x0(1,5), x0(1,6), x0(1,7),
422 5 x0(1,8), y0(1,1), y0(1,2), y0(1,3),
423 6 y0(1,4), y0(1,5), y0(1,6), y0(1,7),
424 7 y0(1,8), z0(1,1), z0(1,2), z0(1,3),
425 8 z0(1,4), z0(1,5), z0(1,6), z0(1,7),
426 9 z0(1,8), nel)
427 CALL srrota3(
428 1 r11, r12, r13, r21,
429 2 r22, r23, r31, r32,
430 3 r33, vx0(1,1),vx0(1,2),vx0(1,3),
431 4 vx0(1,4),vx0(1,5),vx0(1,6),vx0(1,7),
432 5 vx0(1,8),vy0(1,1),vy0(1,2),vy0(1,3),
433 6 vy0(1,4),vy0(1,5),vy0(1,6),vy0(1,7),
434 7 vy0(1,8),vz0(1,1),vz0(1,2),vz0(1,3),
435 8 vz0(1,4),vz0(1,5),vz0(1,6),vz0(1,7),
436 9 vz0(1,8),nel)
437 CALL szderit3(off,voln,ngl,nel,
438 . x0(1,1), x0(1,2), x0(1,3), x0(1,4),
439 . x0(1,5), x0(1,6), x0(1,7), x0(1,8),
440 . y0(1,1), y0(1,2), y0(1,3), y0(1,4),
441 . y0(1,5), y0(1,6), y0(1,7), y0(1,8),
442 . z0(1,1), z0(1,2), z0(1,3), z0(1,4),
443 . z0(1,5), z0(1,6), z0(1,7), z0(1,8),
444 . px1, px2, px3, px4,
445 . py1, py2, py3, py4,
446 . pz1, pz2, pz3, pz4,
447 . px1h1, px1h2, px1h3, px1h4,
448 . px2h1, px2h2, px2h3, px2h4,
449 . px3h1, px3h2, px3h3, px3h4,
450 . px4h1, px4h2, px4h3, px4h4,
451 . jac1,jac2,jac3,
452 . jac4,jac5,jac6,jac9,jlag)
453 ELSE
454 CALL szderito3(
455 1 off, voln, px1, px2,
456 2 px3, px4, py1, py2,
457 3 py3, py4, pz1, pz2,
458 4 pz3, pz4, gbuf%JAC_I,nel,
459 5 jlag)
460 END IF
461 CALL sdefot3(
462 1 px1, px2, px3, px4,
463 2 py1, py2, py3, py4,
464 3 pz1, pz2, pz3, pz4,
465 4 vx0(1,1),vx0(1,2),vx0(1,3),vx0(1,4),
466 5 vx0(1,5),vx0(1,6),vx0(1,7),vx0(1,8),
467 6 vy0(1,1),vy0(1,2),vy0(1,3),vy0(1,4),
468 7 vy0(1,5),vy0(1,6),vy0(1,7),vy0(1,8),
469 8 vz0(1,1),vz0(1,2),vz0(1,3),vz0(1,4),
470 9 vz0(1,5),vz0(1,6),vz0(1,7),vz0(1,8),
471 a mfxx, mfxy, mfxz, mfyx,
472 b mfyy, mfyz, mfzx, mfzy,
473 c mfzz, nel)
474c
475 IF (ismstr==10.OR.ismstr==12.OR.isorth/=0) THEN
476 CALL sztorth3(lft,llt,isorth,nel,
477 . r11, r12, r13, r21, r22, r23, r31, r32, r33,
478 . g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z, gbuf%GAMA)
479 CALL sordeft3(lft,llt,mfxx, mfxy, mfxz, mfyx, mfyy, mfyz,
480 . mfzx, mfzy, mfzz,
481 . g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
482 ENDIF
483 ENDIF ! ISMSTR==10.AND.JLAG>0
484C-----------
485C
486 IF(jale+jlag /= 0)THEN
487 IF(jclose /= 0) CALL mod_close(
488 1 geo, ngeo, x1, x2,
489 2 x3, x4, x5, x6,
490 3 x7, x8, y1, y2,
491 4 y3, y4, y5, y6,
492 5 y7, y8, z1, z2,
493 6 z3, z4, z5, z6,
494 7 z7, z8, hh, xd1,
495 8 xd2, xd3, xd4, xd5,
496 9 xd6, xd7, xd8, yd1,
497 a yd2, yd3, yd4, yd5,
498 b yd6, yd7, yd8, zd1,
499 c zd2, zd3, zd4, zd5,
500 d zd6, zd7, zd8, nel)
501C
502C------
503 IF (ismstr==11) THEN
504 CALL scoor_cp2sp(
505 1 x0, y0, z0, x1,
506 2 x2, x3, x4, x5,
507 3 x6, x7, x8, y1,
508 4 y2, y3, y4, y5,
509 5 y6, y7, y8, z1,
510 6 z2, z3, z4, z5,
511 7 z6, z7, z8, nel)
512 ELSE
513 CALL szderi3(off,voln,ngl,ismstr,
514 . xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8,
515 . yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8,
516 . zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8,
517 . px1, px2, px3, px4,
518 . py1, py2, py3, py4,
519 . pz1, pz2, pz3, pz4,
520 . px1h1, px1h2, px1h3, px1h4,
521 . px2h1, px2h2, px2h3, px2h4,
522 . px3h1, px3h2, px3h3, px3h4,
523 . px4h1, px4h2, px4h3, px4h4,
524 . jac1,jac2,jac3,jac4,jac5,jac6,jac9,
525 . gbuf%SMSTR,gbuf%OFF,nel,voldp,jlag)
526 END IF
527C
528 IF (idt1sol == 1.OR.(isctl>0.AND.nu0>0.48999)) THEN
529 CALL sdlen8(
530 1 deltax, voln, ixs(1,nf1),x1,
531 2 x2, x3, x4, x5,
532 3 x6, x7, x8, y1,
533 4 y2, y3, y4, y5,
534 5 y6, y7, y8, z1,
535 6 z2, z3, z4, z5,
536 7 z6, z7, z8, nel)
537 ELSEIF(idtmins==2)THEN
538C
539C Possible mix of elts computing DELTAX like in sdlen3 & sdlen8
540 CALL sdlen_sms(
541 1 deltax, voln, ixs(1,nf1),x1,
542 2 x2, x3, x4, x5,
543 3 x6, x7, x8, y1,
544 4 y2, y3, y4, y5,
545 5 y6, y7, y8, z1,
546 6 z2, z3, z4, z5,
547 7 z6, z7, z8, iparts,
548 8 tagprt_sms,gbuf%ISMS, nel)
549 ELSE
550 CALL sdlen3(
551 1 voln, deltax, x1, x2,
552 2 x3, x4, x5, x6,
553 3 x7, x8, y1, y2,
554 4 y3, y4, y5, y6,
555 5 y7, y8, z1, z2,
556 6 z3, z4, z5, z6,
557 7 z7, z8, n1x, n2x,
558 8 n3x, n4x, n5x, n6x,
559 9 n1y, n2y, n3y, n4y,
560 a n5y, n6y, n1z, n2z,
561 b n3z, n4z, n5z, n6z,
562 c nel, mtn, jale, jeul)
563 END IF !IF (IDTHEPH == 1) THEN
564 ELSEIF (jeul /= 0) THEN
565 CALL epxle3(
566 1 gbuf%VOL,veul, x1, x2,
567 2 x3, x4, x5, x6,
568 3 x7, x8, y1, y2,
569 4 y3, y4, y5, y6,
570 5 y7, y8, z1, z2,
571 6 z3, z4, z5, z6,
572 7 z7, z8, px1, px2,
573 8 px3, px4, py1, py2,
574 9 py3, py4, pz1, pz2,
575 a pz3, pz4, px5, px6,
576 b px7, px8, py5, py6,
577 c py7, py8, pz5, pz6,
578 d pz7, pz8, px1h1, px1h2,
579 e px1h3, px2h1, px2h2, px2h3,
580 f px3h1, px3h2, px3h3, px4h1,
581 g px4h2, px4h3, voln, deltax,
582 h n1x, n2x, n3x, n4x,
583 i n5x, n6x, n1y, n2y,
584 j n3y, n4y, n5y, n6y,
585 k n1z, n2z, n3z, n4z,
586 l n5z, n6z, nel, nft,
587 m jhbe)
588 ENDIF
589! dt1/brick for elastoplastic laws (including law1)
590 CALL sz_dt1(
591 1 px1, px2, px3, px4,
592 2 py1, py2, py3, py4,
593 3 pz1, pz2, pz3, pz4,
594 4 fac_nu,deltaxi, nel )
595c
596 IF (jale+jeul > 0 .AND. mtn == 11) THEN
597 CALL s11defo3(
598 1 pm, v, veul, x,
599 2 ixs, ale_connect,dxx, dxy,
600 3 dxz, dyx, dyy, dyz,
601 4 dzx, dzy, dzz, d4,
602 5 d5, d6, wxx, wyy,
603 6 wzz, bufmat, nel, nft,
604 7 ipm, nummat, numels+nsvois)
605 ELSE
606 CALL sdefo3(output%DATA%FANI_CELL,
607 1 px1, px2, px3, px4,
608 2 py1, py2, py3, py4,
609 3 pz1, pz2, pz3, pz4,
610 4 px5, px6, px7, px8,
611 5 py5, py6, py7, py8,
612 6 pz5, pz6, pz7, pz8,
613 7 vx1, vx2, vx3, vx4,
614 8 vx5, vx6, vx7, vx8,
615 9 vy1, vy2, vy3, vy4,
616 a vy5, vy6, vy7, vy8,
617 b vz1, vz2, vz3, vz4,
618 c vz5, vz6, vz7, vz8,
619 d dxx, dxy, dxz, dyx,
620 e dyy, dyz, dzx, dzy,
621 f dzz, d4, d5, d6,
622 g wxx, wyy, wzz, bid,
623 h bid, bid, nel,
624 i nft, ismstr, jeul, jhbe,
625 j jcvt, isrot)
626 ENDIF
627C
628 IF (jcvt == 2) THEN
629 CALL storth3(
630 1 lft, llt, nel, g1x,
631 2 g1y, g1z, g2x, g2y,
632 3 g2z, g3x, g3y, g3z,
633 4 gbuf%GAMA,isorth)
634 CALL szordef3(lft,llt,dxx,dyy,dzz,d4,d5,d6,
635 . g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
636 ENDIF
637 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))
638 CALL srho3(
639 1 pm, gbuf%VOL, gbuf%RHO, gbuf%EINT,
640 2 divde, flux(1,nf1),flu1(nf1), voln,
641 3 dvol, ngl, mxt, off,
642 4 ibid, gbuf%TAG22, voldp, lbuf%VOL0DP,
643 5 amu, gbuf%OFF, nel, mtn,
644 6 jale, ismstr, jeul, jlag)
645C
646C Extract stresses + small strain
647 CALL srmalla3(gbuf%SIG,s1,s2,s3,s4,s5,s6,
648 . gbuf%OFF,off,nel)
649 CALL srmalla11(
650 1 gbuf%SMSTR,gbuf%OFF, wxx, wyy,
651 2 wzz, r11, r12, r13,
652 3 r21, r22, r23, r31,
653 4 r32, r33, nel, ismstr)
654C
655C Update reference configuration (possible future change to small strain option)
656C Total strain option doesn't change the reference configuration
657 IF (ismstr <= 3.OR.(ismstr==4.AND.jlag>0)) THEN
658 CALL s8sav3(
659 1 gbuf%OFF, gbuf%SMSTR,xd1, xd2,
660 2 xd3, xd4, xd5, xd6,
661 3 xd7, xd8, yd1, yd2,
662 4 yd3, yd4, yd5, yd6,
663 5 yd7, yd8, zd1, zd2,
664 6 zd3, zd4, zd5, zd6,
665 7 zd7, zd8, nel)
666 END IF !(ISMSTR == 2) THEN
667C
668C Element temperature
669 IF (jthe < 0) THEN
670 DO i=1,nel
671 tempel(i) = one_over_8 *( temp(nc1(i)) + temp(nc2(i))
672 . + temp(nc3(i)) + temp(nc4(i))
673 . + temp(nc5(i)) + temp(nc6(i))
674 . + temp(nc7(i)) + temp(nc8(i)))
675 ENDDO
676 ENDIF
677C
678 deltaxi(1:nel) = deltax(1:nel)
679 IF (fac_nu<one) deltaxi(1:nel) = max(deltaxi(1:nel),nu_sp*deltax(1:nel))
680C-----------------------------------------------------------------------
681 IF ((itask==0).AND.(imon_mat==1)) CALL startime(timers,35)
682 ilay = 1
683 iptr = 1
684 ipts = 1
685 iptt = 1
686 ip = 1
687C
688c===========================================================================
689c Computation of the non-local variable at Gauss point from nodal d.o.fs
690c===========================================================================
691 IF (inloc > 0) THEN
692 l_nloc = nloc_dmg%L_NLOC
693 dnl => nloc_dmg%DNL(1:l_nloc) ! DNL = non local variable increment
694 DO i=1,nel
695 inod(1) = nloc_dmg%IDXI(nc1(i))
696 inod(2) = nloc_dmg%IDXI(nc2(i))
697 inod(3) = nloc_dmg%IDXI(nc3(i))
698 inod(4) = nloc_dmg%IDXI(nc4(i))
699 inod(5) = nloc_dmg%IDXI(nc5(i))
700 inod(6) = nloc_dmg%IDXI(nc6(i))
701 inod(7) = nloc_dmg%IDXI(nc7(i))
702 inod(8) = nloc_dmg%IDXI(nc8(i))
703 DO j = 1, 8
704 ipos(j) = nloc_dmg%POSI(inod(j))
705 ENDDO
706 var_reg(i) = dnl(ipos(1)) + dnl(ipos(2)) + dnl(ipos(3)) + dnl(ipos(4))
707 . + dnl(ipos(5)) + dnl(ipos(6)) + dnl(ipos(7)) + dnl(ipos(8))
708 var_reg(i) = var_reg(i)*one_over_8
709 ENDDO
710 ENDIF
711c===========================================================================
712C
713 IF(iboltp /= 0) CALL boltst(ip ,bpreld ,lbuf%SIG ,tt ,nel ,
714 . npt ,sensors%NSENSOR,sensors%SENSOR_TAB,
715 . iparg(67,ng),iparg(68,ng))
716C
717C Compute stresses according to the material law
718 CALL mmain(timers, output,
719 1 elbuf_tab, ng, pm, geo,
720 2 ale_connect, ixs, iparg,
721 3 v, tf, npf, bufmat,
722 4 sti, x, dt2t, neltst,
723 5 ityptst, offset, nel, w,
724 6 off, ngeo, mxt, ngl,
725 7 voln, vd2, dvol, deltaxi,
726 8 vis, qvis, cxx, s1,
727 9 s2, s3, s4, s5,
728 a s6, dxx, dyy, dzz,
729 b d4, d5, d6, wxx,
730 c wyy, wzz, jac1, jac2,
731 d jac3, jac4, jac5, jac6,
732 e vdx, vdy, vdz, muvoid,
733 f ssp_eq, aire, sigy, et,
734 g r1_free, lbuf%PLA, r3_dam, amu,
735 h mfxx, mfxy, mfxz, mfyx,
736 i mfyy, mfyz, mfzx, mfzy,
737 j mfzz, ipm, gama, bid,
738 k dxy, dyx, dyz, dzy,
739 l dzx, dxz, istrain, tempel,
740 m die, iexpan, ilay, mssa,
741 n dmels, iptr, ipts, iptt,
742 o table, bid, bid, bid,
743 p bid, iparg(1,ng), igeo, conde,
744 q itask, nloc_dmg, var_reg, mat_elem,
745 r h3d_strain, jplasol, jsph, sz_bufvois,
746 s snpc, stf, sbufmat, glob_therm,
747 t svis, sz_ix, iresp,
748 * n2d, th_strain, ngroup, tt,
749 . dt1, ntable, numelq, nummat,
750 . numgeo, numnod, numels,
751 . idel7nok, idtmin, maxfunc,
752 . imon_mat, userl_avail, impl_s,
753 . idyna, dt ,fheat ,sensors)
754
755 IF (istrain == 1)THEN
756 CALL sstra3(
757 1 dxx, dyy, dzz, d4,
758 2 d5, d6, lbuf%STRA,wxx,
759 3 wyy, wzz, off, nel,
760 4 jcvt)
761 ENDIF
762 IF ((itask==0).AND.(imon_mat==1)) CALL stoptime(timers,35)
763C
764 IF (jcvt == 2) THEN
765 CALL sroto3(lft,llt,gbuf%SIG,sign,
766 . g1x, g2x, g3x, g1y, g2y, g3y, g1z, g2z, g3z,nel)
767 ELSE
768 DO i=1,nel
769 sign(i,1) = gbuf%SIG(ii(1)+i)
770 sign(i,2) = gbuf%SIG(ii(2)+i)
771 sign(i,3) = gbuf%SIG(ii(3)+i)
772 sign(i,4) = gbuf%SIG(ii(4)+i)
773 sign(i,5) = gbuf%SIG(ii(5)+i)
774 sign(i,6) = gbuf%SIG(ii(6)+i)
775 ENDDO
776 ENDIF
777C
778 itet = 0
779 IF (nn_del >0) THEN
780 CALL sdlenmax(l_max,
781 1 x1, x2, x3, x4,
782 2 x5, x6, x7, x8,
783 3 y1, y2, y3, y4,
784 4 y5, y6, y7, y8,
785 5 z1, z2, z3, z4,
786 6 z5, z6, z7, z8,
787 7 nel)
788 CALL sgeodel3(ngl,gbuf%OFF,voln,deltax,gbuf%VOL,geo(1,ngeo(1)),l_max,dt,nel,idel7nok )
789 END IF
790C
791C Small strain formulation is activated:
792C a) by minimum time step in MMAIN
793C b) by small volume or bad aspect ratio in SMALLGEO3
794C If ISMSTR=2 GBUF%SMSTR was updated by S8SAV3 (before MMAIN, each cycle) fixed when off=2
795C If ISMSTR=12 fixed GBUF%SMSTR before, updated only once by S8SAV12
796 CALL smallb3(gbuf%OFF,off,nel,ismstr)
797 CALL smallgeo3(ngl, gbuf%OFF ,voln ,deltax, gbuf%VOL ,itet,nel,ismstr,dt)
798 IF (ismstr == 12.AND.idtmin(1)==3) THEN
799 CALL s8sav12(
800 1 gbuf%OFF, offg0, gbuf%SMSTR,x,
801 2 xdp, nc1, nc2, nc3,
802 3 nc4, nc5, nc6, nc7,
803 4 nc8, nel, jcvt)
804 IF (ism12_11>0 .AND. isorth == 0) THEN
805 CALL s8upd11t12(gbuf%OFF,offg0 ,x ,xdp ,
806 . nc1 ,nc2 ,nc3 ,nc4 ,nc5 ,nc6 ,nc7 ,nc8 ,
807 . gbuf%JAC_I,gbuf%SIG,lbuf%SIGL ,nel )
808 END IF
809 ENDIF
810 IF (jlag+jale+jeul == 0) THEN
811C
812C Balance thermal material
813 iflag=mod(ncycle,ncpri)
814 IF(ioutprt>0)THEN
815 IF (mtn == 11) THEN
816 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
817 ELSE
818 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
819 ENDIF
820 CALL srbilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
821 . vgxa, vgya, vgza, vga2, voln,iparts,
822 . gresav,grth,igrth,gbuf%OFF,iexpan,gbuf%EINTTH,
823 . gbuf%FILL, xgxa, xgya, xgza,
824 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,itask,iparg(1,ng),
825 . sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
826 ENDIF
827 RETURN
828 ENDIF
829C
830C ALE or EULER : update masses
831 IF (jale+jeul > 0 .AND. ale%GLOBAL%INCOMP == 0) THEN
832 IF(iparit == 0)THEN
833 CALL amass3(
834 1 ms, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
835 2 voln, nc1, nc2, nc3,
836 3 nc4, nc5, nc6, nc7,
837 4 nc8, msnf, nvc, off,
838 5 ixs, nel, jeul)
839 ELSE
840 CALL amass3p(
841 1 fskym, gbuf%RHO, veul(lveul*nft+44),gbuf%TAG22,
842 2 voln, iads, off, ixs,
843 3 nel, nft, jeul)
844 ENDIF
845 ENDIF
846C
847C Update ET for /VISC/PRONY
848 IF (imatvis > 2) THEN
849 ivisc = elbuf_tab(ng)%BUFLY(ilay)%IVISC
850 IF (ivisc == 1) THEN ! /VISC/PRONY only
851 rho0_1 = pm(1 ,imat)
852 nu = pm(21,imat)
853 CALL visc_et(nel ,mat_elem%MAT_PARAM(imat)%VISC,
854 . rho0_1 ,nu ,cxx ,et )
855
856 END IF
857 END IF
858C
859 IF (isctl > 0) THEN
860 dn = geo(13,pid)
861 CALL szhour_ctl(
862 . pm, gbuf%RHO, off, vx1,
863 . vx2, vx3, vx4, vx5,
864 . vx6, vx7, vx8, vy1,
865 . vy2, vy3, vy4, vy5,
866 . vy6, vy7, vy8, vz1,
867 . vz2, vz3, vz4, vz5,
868 . vz6, vz7, vz8, f11,
869 . f21, f31, f12, f22,
870 . f32, f13, f23, f33,
871 . f14, f24, f34, f15,
872 . f25, f35, f16, f26,
873 . f36, f17, f27, f37,
874 . f18, f28, f38, px1h1,
875 . px1h2, px1h3, px2h1, px2h2,
876 . px2h3, px3h1, px3h2, px3h3,
877 . px4h1, px4h2, px4h3, voln,
878 . gbuf%HOURG, mtn, dt1 , mxt,
879 . cxx, gbuf%EINT , npropm, nummat,
880 . gbuf%STRHG, jac1, jac5, jac9,
881 . gbuf%VOL, dn , sti , nel )
882C Anti hourglass forces
883 ELSEIF (isorth>0) THEN
884 IF (mtn>=28) THEN
885 iadbuf = ipm(7,mxt(1))
886 ELSE
887 iadbuf = 1 ! BUFMAT starts at 1 => BUFMAT(0) is wrong
888 ENDIF
889 CALL szhour3_or(
890 1 elbuf_tab(ng), pm, gbuf%RHO, off,
891 2 vx1, vx2, vx3, vx4,
892 3 vx5, vx6, vx7, vx8,
893 4 vy1, vy2, vy3, vy4,
894 5 vy5, vy6, vy7, vy8,
895 6 vz1, vz2, vz3, vz4,
896 7 vz5, vz6, vz7, vz8,
897 8 f11, f21, f31, f12,
898 9 f22, f32, f13, f23,
899 a f33, f14, f24, f34,
900 b f15, f25, f35, f16,
901 c f26, f36, f17, f27,
902 d f37, f18, f28, f38,
903 e px1h1, px1h2, px1h3, px1h4,
904 f px2h1, px2h2, px2h3, px2h4,
905 g px3h1, px3h2, px3h3, px3h4,
906 h px4h1, px4h2, px4h3, px4h4,
907 i voln, mxt, cxx, vis,
908 j vd2, deltax, ngeo, geo,
909 k partsav, iparts, dxx, dyy,
910 l dzz, d4, d5, d6,
911 m gbuf%HOURG, jac1, jac5, jac9,
912 n gbuf%EINT, gbuf%VOL, sigy, sign,
913 o sigo, icp, lbuf%PLA, imatvis,
914 p et, r3_dam, nel, gama,
915 q bufmat(iadbuf),gbuf%STRHG, lbuf%STRA, istrain,
916 r mtn, ismstr, jlag, iint,
917 s mat_elem%MAT_PARAM(imat) )
918C
919 ELSE
920 CALL szhour3(
921 1 elbuf_tab(ng),pm, gbuf%RHO, off,
922 2 vx1, vx2, vx3, vx4,
923 3 vx5, vx6, vx7, vx8,
924 4 vy1, vy2, vy3, vy4,
925 5 vy5, vy6, vy7, vy8,
926 6 vz1, vz2, vz3, vz4,
927 7 vz5, vz6, vz7, vz8,
928 8 f11, f21, f31, f12,
929 9 f22, f32, f13, f23,
930 a f33, f14, f24, f34,
931 b f15, f25, f35, f16,
932 c f26, f36, f17, f27,
933 d f37, f18, f28, f38,
934 e px1h1, px1h2, px1h3, px1h4,
935 f px2h1, px2h2, px2h3, px2h4,
936 g px3h1, px3h2, px3h3, px3h4,
937 h px4h1, px4h2, px4h3, px4h4,
938 i voln, mxt, cxx, vis,
939 j vd2, deltax, ngeo, geo,
940 k partsav, iparts, dxx, dyy,
941 l dzz, d4, d5, d6,
942 m gbuf%HOURG, jac1, jac5, jac9,
943 n gbuf%EINT, gbuf%VOL, sigy, sign,
944 o sigo, icp, lbuf%PLA, imatvis,
945 p et, r3_dam, nel, gbuf%STRHG,
946 q istrain, mtn, ismstr, jlag,
947 r iint)
948 END IF !(ISORTH>0) THEN
949 IF (cns2 > zero)
950 . CALL nsvis_sm12(gbuf%OFF ,cns2,cxx ,voln ,dxx ,
951 . dyy ,dzz ,d4 ,d5 ,d6 ,
952 . lbuf%VOL,rho0_1 ,sti ,nel,svis )
953C
954 IF(jclose /= 0) CALL fe_close(
955 1 hh, gbuf%RHO,voln, vx1,
956 2 vx2, vx3, vx4, vx5,
957 3 vx6, vx7, vx8, vy1,
958 4 vy2, vy3, vy4, vy5,
959 5 vy6, vy7, vy8, vz1,
960 6 vz2, vz3, vz4, vz5,
961 7 vz6, vz7, vz8, f11,
962 8 f21, f31, f12, f22,
963 9 f32, f13, f23, f33,
964 a f14, f24, f34, f15,
965 b f25, f35, f16, f26,
966 c f36, f17, f27, f37,
967 d f18, f28, f38, nel)
968C
969 IF (jale == 1 .OR. (jeul == 1.AND.integ8 == 0)) THEN
970C
971C ALE or EULER : update momentum transport forces
972 CALL amomt3(
973 1 pm, gbuf%RHO, voln, x1,
974 2 x2, x3, x4, x5,
975 3 x6, x7, x8, y1,
976 4 y2, y3, y4, y5,
977 5 y6, y7, y8, z1,
978 6 z2, z3, z4, z5,
979 7 z6, z7, z8, vx1,
980 8 vx2, vx3, vx4, vx5,
981 9 vx6, vx7, vx8, vy1,
982 a vy2, vy3, vy4, vy5,
983 b vy6, vy7, vy8, vz1,
984 c vz2, vz3, vz4, vz5,
985 d vz6, vz7, vz8, f11,
986 e f21, f31, f12, f22,
987 f f32, f13, f23, f33,
988 g f14, f24, f34, f15,
989 h f25, f35, f16, f26,
990 i f36, f17, f27, f37,
991 j f18, f28, f38, px1,
992 k px2, px3, px4, py1,
993 l py2, py3, py4, pz1,
994 m pz2, pz3, pz4, dxx,
995 n dxy, dxz, dyx, dyy,
996 o dyz, dzx, dzy, dzz,
997 p vdx1, vdx2, vdx3, vdx4,
998 q vdx5, vdx6, vdx7, vdx8,
999 r vdy1, vdy2, vdy3, vdy4,
1000 s vdy5, vdy6, vdy7, vdy8,
1001 t vdz1, vdz2, vdz3, vdz4,
1002 u vdz5, vdz6, vdz7, vdz8,
1003 v vdx, vdy, vdz, deltax,
1004 w vis, mxt, qmv, bufmat,
1005 x iparg(1,ng),ixs, gbuf%TAG22, nc1,
1006 y nc2, nc3, nc4, nc5,
1007 z nc6, nc7, nc8, nale,
1008 1 nel, nft, mtn, ipm)
1009 ELSEIF(jeul == 1 .AND. integ8 == 1)THEN
1010C
1011C Does not include upwind SUPG or TG
1012 CALL emomt3b(
1013 1 pm, gbuf%RHO, veul(lveul*nft+44),f11,
1014 2 f21, f31, f12, f22,
1015 3 f32, f13, f23, f33,
1016 4 f14, f24, f34, f15,
1017 5 f25, f35, f16, f26,
1018 6 f36, f17, f27, f37,
1019 7 f18, f28, f38, px1,
1020 8 px2, px3, px4, py1,
1021 9 py2, py3, py4, pz1,
1022 a pz2, pz3, pz4, px5,
1023 b px6, px7, px8, py5,
1024 c py6, py7, py8, pz5,
1025 d pz6, pz7, pz8, dxx,
1026 e dxy, dxz, dyx, dyy,
1027 f dyz, dzx, dzy, dzz,
1028 g vdx, vdy, vdz, mxt,
1029 h qmv, bufmat, vx1, vx2,
1030 i vx3, vx4, vx5, vx6,
1031 j vx7, vx8, vy1, vy2,
1032 k vy3, vy4, vy5, vy6,
1033 l vy7, vy8, vz1, vz2,
1034 m vz3, vz4, vz5, vz6,
1035 n vz7, vz8, iparg(1,ng), nel,
1036 o mtn, ipm)
1037 ENDIF
1038
1039 IF(jeul+jale/=0) CALL check_off_ale(f11,f21,f31,f12,f22,
1040 1 f32,f13,f23,f33,f14,
1041 2 f24,f34,f15,f25,f35,
1042 3 f16,f26,f36,f17,f27,
1043 4 f37,f18,f28,f38,gbuf%OFF,
1044 5 lft,llt,nel)
1045C
1046C Energy, momentum, mass balance per part in case of output
1047 iflag=mod(ncycle,ncpri)
1048 IF(iflag == 0.OR.tt >= output%TH%THIS.OR.mdess /= 0.
1049 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS).
1050 . or.tt >= output%TH%THIS1(1).OR.tt >= output%TH%THIS1(2).
1051 . or.tt >= output%TH%THIS1(3).OR.tt >= output%TH%THIS1(4).OR.tt >= output%TH%THIS1(5).
1052 . or.tt >= output%TH%THIS1(6).OR.tt >= output%TH%THIS1(7).OR.tt >= output%TH%THIS1(8).
1053 . or.tt >= output%TH%THIS1(9).OR.nth /= 0.OR.nanim /= 0.
1054 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(1)).
1055 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(2)).
1056 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(3)).
1057 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(4)).
1058 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(5)).
1059 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(6)).
1060 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(7)).
1061 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(8)).
1062 . or.(ale%SUB%IALESUB /= 0.AND.t1s+dt2s >= output%TH%THIS1(9)))THEN
1063 IF (mtn == 11) THEN
1064 eint => elbuf_tab(ng)%GBUF%EINS(1:nel)
1065 ELSE
1066 eint => elbuf_tab(ng)%GBUF%EINT(1:nel)
1067 ENDIF
1068 CALL srbilan(partsav,eint,gbuf%RHO,gbuf%RK,gbuf%VOL,
1069 . vgxa, vgya, vgza, vga2, voln,iparts,
1070 . gresav,grth,igrth,gbuf%OFF,iexpan,gbuf%EINTTH,
1071 . gbuf%FILL, xgxa, xgya, xgza,
1072 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,itask,iparg(1,ng),
1073 . sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
1074 ENDIF
1075C
1076C Compute nodal internal forces
1077 CALL sfint3(
1078 1 sign, px1, px2, px3,
1079 2 px4, py1, py2, py3,
1080 3 py4, pz1, pz2, pz3,
1081 4 pz4, px5, px6, px7,
1082 5 px8, py5, py6, py7,
1083 6 py8, pz5, pz6, pz7,
1084 7 pz8, f11, f21, f31,
1085 8 f12, f22, f32, f13,
1086 9 f23, f33, f14, f24,
1087 a f34, f15, f25, f35,
1088 b f16, f26, f36, f17,
1089 c f27, f37, f18, f28,
1090 d f38, voln, qvis, n1x,
1091 e n2x, n3x, n4x, n5x,
1092 f n6x, n1y, n2y, n3y,
1093 g n4y, n5y, n6y, n1z,
1094 h n2z, n3z, n4z, n5z,
1095 i n6z, bid, p, ixs,
1096 j nel, nft, jale, jeul,
1097 k svis)
1098C
1099c===========================================================================
1100c Computation of the internal non-local forces
1101c===========================================================================
1102 IF (inloc > 0) THEN
1103 CALL sfint_reg(
1104 1 nloc_dmg ,var_reg ,nel ,off ,
1105 2 voln ,nc1 ,nc2 ,nc3 ,
1106 3 nc4 ,nc5 ,nc6 ,nc7 ,
1107 4 nc8 ,px1 ,px2 ,px3 ,
1108 5 px4 ,py1 ,py2 ,py3 ,
1109 6 py4 ,pz1 ,pz2 ,pz3 ,
1110 7 pz4 ,imat ,itask ,dt2t ,
1111 8 gbuf%VOL ,nft )
1112 ENDIF
1113c===========================================================================
1114C
1115C Finite element heat transfert
1116 IF (jthe < 0) THEN
1117 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
1118 CALL stherm(mat_elem%MAT_PARAM(imat),
1119 1 voln, nc1, nc2, nc3, nc4,
1120 2 nc5, nc6, nc7, nc8, px1,
1121 3 px2, px3, px4, py1,
1122 4 py2, py3, py4, pz1,
1123 5 pz2, pz3, pz4, dt1,
1124 6 temp, tempel, fheat, them,
1125 7 gbuf%OFF,lbuf%OFF,partsav, iparts,
1126 8 gbuf%VOL,nel ,numnod ,glob_therm%THEACCFACT)
1127 9
1128 ELSE
1129 CALL stherm(mat_elem%MAT_PARAM(imat),
1130 1 voln, nc1, nc2, nc3, nc4,
1131 2 nc5, nc6, nc7, nc8, px1,
1132 3 px2, px3, px4, py1,
1133 4 py2, py3, py4, pz1,
1134 5 pz2, pz3, pz4, dt1,
1135 7 temp, tempel, die, them,
1136 8 gbuf%OFF,lbuf%OFF,partsav, iparts,
1137 9 gbuf%VOL,nel ,numnod ,glob_therm%THEACCFACT)
1138 END IF
1139 ENDIF
1140C
1141C Transform forces from convected frame to global frame
1142 CALL srrota3(
1143 1 r11, r21, r31, r12,
1144 2 r22, r32, r13, r23,
1145 3 r33, f11, f12, f13,
1146 4 f14, f15, f16, f17,
1147 5 f18, f21, f22, f23,
1148 6 f24, f25, f26, f27,
1149 7 f28, f31, f32, f33,
1150 8 f34, f35, f36, f37,
1151 9 f38, nel)
1152C----------------------------
1153C distortion control
1154C----------------------------
1155 IF (isctl > 0) THEN ! think about degenerated element
1156 CALL sdistor_ini(
1157 1 nel ,sti_c ,npropm ,nummat ,
1158 2 ismstr ,mxt ,istab ,pm ,
1159 3 gbuf%SIG ,gbuf%RHO ,cxx ,off ,
1160 4 gbuf%OFF ,ll ,voln ,fld ,
1161 5 cns2 ,fqmax )
1162C
1163! x,v sould be in global sys
1164 CALL s8get_x3(
1165 . nc1, nc2, nc3, nc4,
1166 . nc5, nc6, nc7, nc8,
1167 . x1, x2, x3, x4,
1168 . x5, x6, x7, x8,
1169 . y1, y2, y3, y4,
1170 . y5, y6, y7, y8,
1171 . z1, z2, z3, z4,
1172 . z5, z6, z7, z8,
1173 . x, xdp, numnod, nel )
1174 DO i=1,nel
1175 vx1(i)=v(1,nc1(i))
1176 vy1(i)=v(2,nc1(i))
1177 vz1(i)=v(3,nc1(i))
1178 vx2(i)=v(1,nc2(i))
1179 vy2(i)=v(2,nc2(i))
1180 vz2(i)=v(3,nc2(i))
1181 vx3(i)=v(1,nc3(i))
1182 vy3(i)=v(2,nc3(i))
1183 vz3(i)=v(3,nc3(i))
1184 vx4(i)=v(1,nc4(i))
1185 vy4(i)=v(2,nc4(i))
1186 vz4(i)=v(3,nc4(i))
1187 vx5(i)=v(1,nc5(i))
1188 vy5(i)=v(2,nc5(i))
1189 vz5(i)=v(3,nc5(i))
1190 vx6(i)=v(1,nc6(i))
1191 vy6(i)=v(2,nc6(i))
1192 vz6(i)=v(3,nc6(i))
1193 vx7(i)=v(1,nc7(i))
1194 vy7(i)=v(2,nc7(i))
1195 vz7(i)=v(3,nc7(i))
1196 vx8(i)=v(1,nc8(i))
1197 vy8(i)=v(2,nc8(i))
1198 vz8(i)=v(3,nc8(i))
1199 ENDDO
1200 CALL s8for_distor(
1201 . x1, x2, x3, x4,
1202 . x5, x6, x7, x8,
1203 . y1, y2, y3, y4,
1204 . y5, y6, y7, y8,
1205 . z1, z2, z3, z4,
1206 . z5, z6, z7, z8,
1207 . vx1, vx2, vx3, vx4,
1208 . vx5, vx6, vx7, vx8,
1209 . vy1, vy2, vy3, vy4,
1210 . vy5, vy6, vy7, vy8,
1211 . vz1, vz2, vz3, vz4,
1212 . vz5, vz6, vz7, vz8,
1213 . f11, f12, f13, f14,
1214 . f15, f16, f17, f18,
1215 . f21, f22, f23, f24,
1216 . f25, f26, f27, f28,
1217 . f31, f32, f33, f34,
1218 . f35, f36, f37, f38,
1219 . sti, sti_c, fld , cns2,
1220 . ll , istab, fqmax, nel,
1221 . gbuf%EINT_DISTOR, dt1)
1222 ENDIF
1223C----------------------------
1224C
1225 IF(nfilsol/=0) CALL sfillopt(
1226 1 gbuf%FILL,sti, f11, f21,
1227 2 f31, f12, f22, f32,
1228 3 f13, f23, f33, f14,
1229 4 f24, f34, f15, f25,
1230 5 f35, f16, f26, f36,
1231 6 f17, f27, f37, f18,
1232 7 f28, f38, nel)
1233C
1234C Assemble internal forces
1235 IF(iparit == 0)THEN
1236 CALL scumu3(
1237 1 gbuf%OFF,a, nc1, nc2,
1238 2 nc3, nc4, nc5, nc6,
1239 3 nc7, nc8, stifn, sti,
1240 4 f11, f21, f31, f12,
1241 5 f22, f32, f13, f23,
1242 6 f33, f14, f24, f34,
1243 7 f15, f25, f35, f16,
1244 8 f26, f36, f17, f27,
1245 9 f37, f18, f28, f38,
1246 a nvc, bid, bid, bid,
1247 b bid, bid, bid, bid,
1248 c bid, bid, bid, bid,
1249 d bid, bid, bid, bid,
1250 e bid, bid, bid, bid,
1251 f bid, bid, bid, bid,
1252 g bid, bid, bid, bid,
1253 h them, fthe, condn, conde,
1254 i nel, jthe, isrot, ipartsph,glob_therm%NODADT_THERM)
1255 ELSE
1256 CALL scumu3p(
1257 1 gbuf%OFF,sti, fsky, fsky,
1258 2 iads, f11, f21, f31,
1259 3 f12, f22, f32, f13,
1260 4 f23, f33, f14, f24,
1261 5 f34, f15, f25, f35,
1262 6 f16, f26, f36, f17,
1263 7 f27, f37, f18, f28,
1264 8 f38, nc1, nc2, nc3,
1265 9 nc4, nc5, nc6, nc7,
1266 a nc8, bid, bid, bid,
1267 b bid, bid, bid, bid,
1268 c bid, bid, bid, bid,
1269 d bid, bid, bid, bid,
1270 e bid, bid, bid, bid,
1271 f bid, bid, bid, bid,
1272 g bid, bid, bid, bid,
1273 h them, fthesky, condnsky,conde,
1274 i nel, nft, jthe, isrot,
1275 j ipartsph,glob_therm%NODADT_THERM)
1276 ENDIF
1277 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
1278 RETURN
1279 END
subroutine amass3(ms, rho, volgp, tag22, volu, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, msnf, nvc, off, ixs, nel, jeul)
Definition amass3.F:39
subroutine amass3p(fskym, rho, volgp, tag22, volu, iads, off, ixs, nel, nft, jeul)
Definition amass3p.F:38
subroutine amomt3(pm, rho, vol, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, vdx1, vdx2, vdx3, vdx4, vdx5, vdx6, vdx7, vdx8, vdy1, vdy2, vdy3, vdy4, vdy5, vdy6, vdy7, vdy8, vdz1, vdz2, vdz3, vdz4, vdz5, vdz6, vdz7, vdz8, vdx, vdy, vdz, deltax, vis, mat, qmv, bufmat, iparg1, ixs, iad22, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, nale, nel, nft, mtn, ipm)
Definition amomt3.F:72
subroutine boltst(ip, bpreld, sig, tt, nel, npt, nsensor, sensor_tab, fun_id, sens_id)
Definition boltst.F:39
subroutine check_off_ale(f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, off, lft, llt, nel)
subroutine emomt3b(pm, rho, volgp, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px5, px6, px7, px8, py5, py6, py7, py8, pz5, pz6, pz7, pz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, vdx, vdy, vdz, mat, qmv, bufmat, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, iparg1, nel, mtn, ipm)
Definition emomt3b.F:56
subroutine szderito3(off, det, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, jac_i, nel, jlag)
Definition szderi3.F:530
subroutine szderit3(off, det, ngl, nel, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, jac1, jac2, jac3, jac4, jac5, jac6, jac9, jlag)
Definition szderi3.F:343
subroutine epxle3(vol, veul, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px5, px6, px7, px8, py5, py6, py7, py8, pz5, pz6, pz7, pz8, px1h1, px1h2, px1h3, px2h1, px2h2, px2h3, px3h1, px3h2, px3h3, px4h1, px4h2, px4h3, det, deltax, n1x, n2x, n3x, n4x, n5x, n6x, n1y, n2y, n3y, n4y, n5y, n6y, n1z, n2z, n3z, n4z, n5z, n6z, nel, nft, jhbe)
Definition epxle3.F:55
subroutine fe_close(hh, rho, voln, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel)
Definition fe_close.F:43
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine mmain(pm, elbuf_str, ix, nix, x, geo, iparg, nel, skew, bufmat, ipart, ipartel, nummat, matparam, imat, ipm, ngl, pid, npf, tf, mfxx, mfxy, mfxz, mfyx, mfyy, mfyz, mfzx, mfzy, mfzz, rx, ry, rz, sx, sy, sz, gama, voln, dvol, s1, s2, s3, s4, s5, s6, dxx, dyy, dzz, d4, d5, d6, wxx, wyy, wzz)
Definition mmain.F:43
type(ale_) ale
Definition ale_mod.F:253
subroutine nsvis_sm12(offg, mu, ssp, vol, d1, d2, d3, d4, d5, d6, vol0, rho0, sti, nel, svis)
Definition nsvis_sm12.F:33
subroutine s11defo3(pm, v, veul, x, ixs, ale_connect, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, bufmat, nel, nft, ipm, nummat, numels)
Definition s11defo3.F:40
subroutine s8for_distor(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f12, f13, f14, f15, f16, f17, f18, f21, f22, f23, f24, f25, f26, f27, f28, f31, f32, f33, f34, f35, f36, f37, f38, sti, sti_c, fld, mu, ll, istab, fqmax, nel, e_distor, dt1)
subroutine s8get_x3(nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, x, xdp, numnod, nel)
Definition s8get_x3.F:42
subroutine s8sav12(offg, offg0, sav, x, xdp, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, nel, jcvt)
Definition s8sav12.F:36
subroutine s8sav3(offg, sav, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, nel)
Definition s8sav3.F:41
subroutine s8upd11t12(offg, offg0, x, xdp, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, jac_1, sig, sigl, nel)
Definition s8upd11t12.F:34
subroutine scoor_cp2sp(x0, y0, z0, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
Definition scoor_cp2sp.F:39
subroutine scumu3(offg, e, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, stifn, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nvc, ar, fr_wave, fr_wav, mx1, my1, mz1, mx2, my2, mz2, mx3, my3, mz3, mx4, my4, mz4, mx5, my5, mz5, mx6, my6, mz6, mx7, my7, mz7, mx8, my8, mz8, them, fthe, condn, conde, nel, jthe, isrot, ipartsph, nodadt_therm)
Definition scumu3.F:55
subroutine scumu3p(offg, sti, fsky, fskyv, iads, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, ar, fr_wave, fr_wav, mx1, my1, mz1, mx2, my2, mz2, mx3, my3, mz3, mx4, my4, mz4, mx5, my5, mz5, mx6, my6, mz6, mx7, my7, mz7, mx8, my8, mz8, them, fthesky, condnsky, conde, nel, nft, jthe, isrot, ipartsph, nodadt_therm)
Definition scumu3p.F:56
subroutine sdlen8(deltax, volg, ixs, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
Definition sdlen8.F:42
subroutine sdlen_sms(deltax, volg, ixs, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, iparts, tagprt_sms, tagelem_sms, nel)
Definition sdlen_sms.F:44
subroutine sdlenmax(lm_max, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
Definition sdlenmax.F:40
subroutine sfillopt(fill, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel)
Definition sfillopt.F:43
subroutine sfint3(sig, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px5, px6, px7, px8, py5, py6, py7, py8, pz5, pz6, pz7, pz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, vol, qvis, n1x, n2x, n3x, n4x, n5x, n6x, n1y, n2y, n3y, n4y, n5y, n6y, n1z, n2z, n3z, n4z, n5z, n6z, dfe, pbak, ixs, nel, nft, jale, jeul, svis)
Definition sfint3.F:54
subroutine sfint_reg(nloc_dmg, var_reg, nel, off, vol, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, imat, itask, dt2t, vol0, nft)
Definition sfint_reg.F:41
subroutine sgcoor3(time, npe, x, ixs, x0, y0, z0, vx0, vy0, vz0, sav, d, off, off0, nel, xdp, mtn, ismstr)
Definition sgcoor3.F:40
subroutine sgeodel3(ngl, offg, volg, deltax, volg0, geo, l_max, dt, nel, idel7nok)
Definition sgeodel3.F:42
subroutine smallb3(offg, off, nel, ismstr)
Definition smallb3.F:45
subroutine smallgeo3(ngl, offg, volg, deltax, volg0, itet, nel, ismstr, dt)
Definition smallgeo3.F:41
subroutine srbilan(partsav, eint, rho, rk, vol, vxa, vya, vza, va2, vnew, iparts, gresav, grth, igrth, off, iexpan, eintth, fill, xx, yy, zz, xx2, yy2, zz2, xy, yz, zx, itask, iparg, sensors, nel, g_wpla, wpla)
Definition srbilan.F:45
subroutine sdefot3(nel, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz)
Definition srefsta3.F:665
subroutine sordeft3(nel, mxx, mxy, mxz, myx, myy, myz, mzx, mzy, mzz, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
Definition srefsta3.F:744
subroutine srmalla3(sig, s1, s2, s3, s4, s5, s6, offg, off, nel)
Definition srmall3.F:31
subroutine srmalla11(sav, offg, wxx, wyy, wzz, r11, r12, r13, r21, r22, r23, r31, r32, r33, nel, ismstr)
Definition srmalla11.F:34
subroutine srrotadp(r11, r12, r13, r21, r22, r23, r31, r32, r33, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, nel)
Definition srrotadp.F:41
subroutine sstra3(dxx, dyy, dzz, d4, d5, d6, strain, wxx, wyy, wzz, off, nel, jcvt)
Definition sstra3.F:47
subroutine mod_close(geo, ngeo, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
Definition mod_close.F:34
subroutine sdefo3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz)
Definition sdefo3.F:37
subroutine sdlen3(x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, deltax, voln)
Definition sdlen3.F:41
subroutine srcoor3(x, xrefs, ixs, geo, mxt, ngeo, ngl, jhbe, ix1, ix2, ix3, ix4, ix5, ix6, ix7, ix8, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, rx, ry, rz, sx, sy, sz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, f1x, f1y, f1z, f2x, f2y, f2z, temp0, temp, nintemp, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8)
Definition srcoor3.F:52
subroutine srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
Definition srho3.F:31
subroutine srrota3(r11, r12, r13, r21, r22, r23, r31, r32, r33, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8)
Definition srrota3.F:33
subroutine szderi3(vol, veul, geo, igeo, xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, jac1, jac2, jac3, jac4, jac5, jac6, jac9, ngl, ngeo, det, voldp, nel, jeul, nxref)
Definition szderi3.F:42
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135
subroutine stherm(mat_param, vol, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, dt1, tempnc, tempel, heat, fphi, offg, off, partsav, iparts, vol0, nel, numnod, theaccfact)
Definition stherm.F:40
subroutine szforc3(timers, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, icp, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, nel, fskym, msnf, nvc, ipm, itask, qmv, istrain, imatvis, temp, fthe, fthesky, iexpan, gresav, grth, igrth, mssa, dmels, table, igeo, xdp, condn, condnsky, d, tagprt_sms, sensors, ioutprt, nale, nloc_dmg, mat_elem, h3d_strain, dt, output, nsvois, sz_bufvois, snpc, stf, sbufmat, svis, iresp, maxfunc, userl_avail, glob_therm, impl_s, idyna)
Definition szforc3.F:125
subroutine szhour3(elbuf_str, pm, rho, off, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, vol, mat, cxx, vis, vd2, deltax, pid, geo, partsav, iparts, dxx, dyy, dzz, d4, d5, d6, fhour, jr0, js0, jt0, eint, vol0, sigy, sig0, sigold, icp, defp, matvis, et, d_max, nel, strhg, istrain, mtn, ismstr, jlag, iint)
Definition szhour3.F:63
subroutine szhour3_or(elbuf_str, pm, rho, off, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1h1, px1h2, px1h3, px1h4, px2h1, px2h2, px2h3, px2h4, px3h1, px3h2, px3h3, px3h4, px4h1, px4h2, px4h3, px4h4, vol, mat, cxx, vis, vd2, deltax, pid, geo, partsav, iparts, dxx, dyy, dzz, d4, d5, d6, fhour, jr0, js0, jt0, eint, vol0, sigy, sig0, sigold, icp, defp, matvis, et, d_max, nel, gama, uparam, strhg, strain, istrain, mtn, ismstr, jlag, iint, mat_param)
Definition szhour3_or.F:68
subroutine szhour_ctl(pm, rho, off, vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8, vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, f17, f27, f37, f18, f28, f38, px1h1, px1h2, px1h3, px2h1, px2h2, px2h3, px3h1, px3h2, px3h3, px4h1, px4h2, px4h3, vol, fhour, mtn, dt1, mat, cxx, eint, npropm, nummat, strhg, jr, js, jt, vol0, dn, sti, nel)
Definition szhour_ctl.F:54
subroutine storth3(isorth, nel, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z, gama)
Definition szorth3.F:30
subroutine sroto3(nel, sig, sign, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
Definition szorth3.F:136
subroutine szordef3(nel, dxx, dyy, dzz, d4, d5, d6, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z)
Definition szorth3.F:84
subroutine sztorth3(jft, jlt, isorth, nel, e1x, e2x, e3x, e1y, e2y, e3y, e1z, e2z, e3z, g1x, g1y, g1z, g2x, g2y, g2z, g3x, g3y, g3z, gama)
Definition sztorth3.F:32
subroutine visc_et(nel, visc, rho, nu, cxx, et)
Definition visc_et.F:31