OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
scforc3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "com08_c.inc"
#include "vect01_c.inc"
#include "parit_c.inc"
#include "param_c.inc"
#include "scr18_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine scforc3 (timers, output, elbuf_tab, ng, pm, geo, ixs, x, a, v, ms, w, flux, flu1, veul, fv, ale_connect, iparg, tf, npf, bufmat, partsav, nloc_dmg, dt2t, neltst, ityptst, stifn, fsky, iads, offset, eani, iparts, 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, icp, icsig, nvc, ipm, istrain, temp, fthe, fthesky, iexpan, igeo, gresav, grth, igrth, mssa, dmels, table, xdp, voln, condn, condnsky, itask, ioutprt, mat_elem, h3d_strain, dt, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, idel7ng, idel7nok, maxfunc, imon_mat, userl_avail, glob_therm, impl_s, idyna, sensors)

Function/Subroutine Documentation

◆ scforc3()

subroutine scforc3 ( type(timer_), intent(inout) timers,
type(output_), intent(inout) output,
type (elbuf_struct_), dimension(ngroup), target elbuf_tab,
integer ng,
pm,
geo,
integer, dimension(nixs,*) ixs,
x,
a,
v,
ms,
w,
flux,
flu1,
veul,
fv,
type(t_ale_connectivity), intent(in) ale_connect,
integer, dimension(nparg,ngroup) iparg,
tf,
integer, dimension(*) npf,
bufmat,
partsav,
type (nlocal_str_), target nloc_dmg,
dt2t,
integer neltst,
integer ityptst,
stifn,
fsky,
integer, dimension(8,*) iads,
integer offset,
eani,
integer, dimension(*) iparts,
f11,
f21,
f31,
f12,
f22,
f32,
f13,
f23,
f33,
f14,
f24,
f34,
f15,
f25,
f35,
f16,
f26,
f36,
f17,
f27,
f37,
f18,
f28,
f38,
integer nel,
integer icp,
integer icsig,
integer nvc,
integer, dimension(npropmi,*) ipm,
integer istrain,
temp,
fthe,
fthesky,
integer iexpan,
integer, dimension(npropgi,*) igeo,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
mssa,
dmels,
type(ttable), dimension(*) table,
double precision, dimension(3,*) xdp,
voln,
condn,
condnsky,
integer itask,
integer ioutprt,
type (mat_elem_), intent(inout) mat_elem,
integer h3d_strain,
type(dt_), intent(inout) dt,
integer, intent(in) snpc,
integer, intent(in) stf,
integer, intent(in) sbufmat,
intent(inout) svis,
integer, intent(in) nsvois,
integer, intent(in) idtmins,
integer, intent(in) iresp,
integer, intent(in) idel7ng,
integer, intent(inout) idel7nok,
integer, intent(in) maxfunc,
integer, intent(in) imon_mat,
integer, intent(in) userl_avail,
type (glob_therm_), intent(inout) glob_therm,
integer, intent(in) impl_s,
integer, intent(in) idyna,
type (sensors_), intent(inout) sensors )

Definition at line 77 of file scforc3.F.

97C-----------------------------------------------
98C M o d u l e s
99C-----------------------------------------------
100 USE timer_mod
101 USE output_mod, only : output_
102 USE mmain_mod
103 USE table_mod
104 USE mat_elem_mod
107 USE dt_mod
108 USE elbufdef_mod
109 USE sdistor_ini_mod, ONLY : sdistor_ini
110 USE shour_ctl_mod, ONLY : shour_ctl
111 use glob_therm_mod
112 use sensor_mod
113C-----------------------------------------------
114C I m p l i c i t T y p e s
115C-----------------------------------------------
116#include "implicit_f.inc"
117C-----------------------------------------------
118C G l o b a l P a r a m e t e r s
119C-----------------------------------------------
120#include "mvsiz_p.inc"
121C-----------------------------------------------
122C C o m m o n B l o c k s
123C-----------------------------------------------
124#include "com01_c.inc"
125#include "com08_c.inc"
126#include "vect01_c.inc"
127#include "parit_c.inc"
128#include "param_c.inc"
129#include "scr18_c.inc"
130#include "com04_c.inc"
131C-----------------------------------------------
132C D u m m y A r g u m e n t s
133C-----------------------------------------------
134 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
135 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
136 INTEGER, INTENT(IN) :: SNPC
137 INTEGER, INTENT(IN) :: STF
138 INTEGER, INTENT(IN) :: SBUFMAT
139 INTEGER, INTENT(IN) :: NSVOIS
140 INTEGER, INTENT(IN) :: IDTMINS
141 INTEGER ,INTENT(IN) :: IRESP
142 INTEGER ,INTENT(IN) :: IDEL7NG
143 INTEGER ,INTENT(INOUT) :: IDEL7NOK
144 INTEGER ,INTENT(IN) :: MAXFUNC
145 INTEGER, INTENT(IN) :: IMPL_S
146 INTEGER, INTENT(IN) :: IDYNA
147 INTEGER, INTENT(IN) :: USERL_AVAIL
148 INTEGER, INTENT(IN) :: IMON_MAT
149 INTEGER IXS(NIXS,*),IPARG(NPARG,NGROUP),NPF(*),IADS(8,*),
150 . IPARTS(*), IPM(NPROPMI,*),IGEO(NPROPGI,*),GRTH(*),
151 . IGRTH(*),ITASK,IOUTPRT
152 INTEGER NELTST,ITYPTST,OFFSET,ICP,ICSIG,NVC,NEL,ISTRAIN,IEXPAN,NG,H3D_STRAIN
153 DOUBLE PRECISION
154 . XDP(3,*)
155 my_real
156 . dt2t
157 my_real
158 . pm(npropm,*), x(*), a(*), v(3,*), ms(*), w(*),
159 . flux(6,*),geo(npropg,*),
160 . flu1(*), veul(*), fv(*), tf(*), bufmat(*),
161 . partsav(*),stifn(*), fsky(*),eani(*),
162 . f11(mvsiz),f21(mvsiz),f31(mvsiz),
163 . f12(mvsiz),f22(mvsiz),f32(mvsiz),
164 . f13(mvsiz),f23(mvsiz),f33(mvsiz),
165 . f14(mvsiz),f24(mvsiz),f34(mvsiz),
166 . f15(mvsiz),f25(mvsiz),f35(mvsiz),
167 . f16(mvsiz),f26(mvsiz),f36(mvsiz),
168 . f17(mvsiz),f27(mvsiz),f37(mvsiz),
169 . f18(mvsiz),f28(mvsiz),f38(mvsiz),
170 . temp(*),fthe(*), fthesky(*),gresav(*), mssa(*), dmels(*), voln(mvsiz),
171 . condn(*),condnsky(*)
172 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
173 TYPE(TTABLE) TABLE(*)
174 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
175 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
176 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
177 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
178 TYPE(DT_), INTENT(INOUT) :: DT
179 type (glob_therm_) ,intent(inout) :: glob_therm
180 type (sensors_),INTENT(INOUT) :: SENSORS
181C-----------------------------------------------
182C L o c a l V a r i a b l e s
183C-----------------------------------------------
184 INTEGER I,J,ILAY,IR,IS,IT,IP,NF1,IFLAG,L_PLA,L_EPSD,
185 . PID,MTN0,IPTHK,IPPOS,IPMAT,NLYMAX,MID,IPANG,IBID,NLAY,IMAT,
186 . JJ(6),SZ_IX,CURRENT_LAYER
187 INTEGER MXT0(MVSIZ),MX
188C-----
189 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),IBIDV(1)
190
191 DOUBLE PRECISION
192 . XD1(MVSIZ), XD2(MVSIZ), XD3(MVSIZ), XD4(MVSIZ),
193 . XD5(MVSIZ), XD6(MVSIZ), XD7(MVSIZ), XD8(MVSIZ),
194 . YD1(MVSIZ), YD2(MVSIZ), YD3(MVSIZ), YD4(MVSIZ),
195 . YD5(MVSIZ), YD6(MVSIZ), YD7(MVSIZ), YD8(MVSIZ),
196 . ZD1(MVSIZ), ZD2(MVSIZ), ZD3(MVSIZ), ZD4(MVSIZ),
197 . ZD5(MVSIZ), ZD6(MVSIZ), ZD7(MVSIZ), ZD8(MVSIZ),VOLDP(MVSIZ)
198
199 my_real
200 . vd2(mvsiz) , dvol(mvsiz),deltax(mvsiz),
201 . vis(mvsiz) , qvis(mvsiz), cxx(mvsiz) ,
202 . s1(mvsiz) , s2(mvsiz) , s3(mvsiz) ,
203 . s4(mvsiz) , s5(mvsiz) , s6(mvsiz) ,
204 . dxx(mvsiz) , dyy(mvsiz) , dzz(mvsiz) ,
205 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
206 . jac1(mvsiz), jac2(mvsiz), jac3(mvsiz),
207 . jac4(mvsiz), jac5(mvsiz), jac6(mvsiz),
208 . vdx(mvsiz) , vdy(mvsiz) , vdz(mvsiz),ssp_eq(mvsiz),aire(mvsiz),
209 . conde(mvsiz)
210C-----
211C
212 my_real
213 . sti(mvsiz) ,gama(mvsiz,6),
214 . wxx(mvsiz) , wyy(mvsiz) , wzz(mvsiz)
215C
216 my_real
217 . muvoid(mvsiz) ! used for SPH
218C-----
219C
220 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
221 . NC5(MVSIZ), NC6(MVSIZ), NC7(MVSIZ), NC8(MVSIZ)
222 INTEGER IOFFS,G_PLA,G_EPSD,NN_DEL,IPRES,ISCTL,ISTAB(MVSIZ)
223 my_real
224 . offs(mvsiz)
225 my_real
226 . off(mvsiz) , rhoo(mvsiz),rhom(mvsiz),offg(mvsiz) ,
227 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
228 . x5(mvsiz), x6(mvsiz), x7(mvsiz), x8(mvsiz),
229 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
230 . y5(mvsiz), y6(mvsiz), y7(mvsiz), y8(mvsiz),
231 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
232 . z5(mvsiz), z6(mvsiz), z7(mvsiz), z8(mvsiz),
233 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
234 . vx5(mvsiz),vx6(mvsiz),vx7(mvsiz),vx8(mvsiz),
235 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
236 . vy5(mvsiz),vy6(mvsiz),vy7(mvsiz),vy8(mvsiz),
237 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
238 . vz5(mvsiz),vz6(mvsiz),vz7(mvsiz),vz8(mvsiz),
239 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
240 . px5(mvsiz),px6(mvsiz),px7(mvsiz),px8(mvsiz),
241 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
242 . py5(mvsiz),py6(mvsiz),py7(mvsiz),py8(mvsiz),
243 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
244 . pz5(mvsiz),pz6(mvsiz),pz7(mvsiz),pz8(mvsiz),
245 . px1h1(mvsiz),px2h1(mvsiz),px3h1(mvsiz),px4h1(mvsiz),
246 . px1h2(mvsiz),px2h2(mvsiz),px3h2(mvsiz),px4h2(mvsiz),
247 . px1h3(mvsiz),px2h3(mvsiz),px3h3(mvsiz),px4h3(mvsiz),
248 . px1h4(mvsiz),px2h4(mvsiz),px3h4(mvsiz),px4h4(mvsiz),
249 . hgx1(mvsiz),hgy2(mvsiz),hgz1(mvsiz),hgz2(mvsiz),
250 . vdx1(mvsiz),vdx2(mvsiz),vdx3(mvsiz),vdx4(mvsiz),
251 . vdx5(mvsiz),vdx6(mvsiz),vdx7(mvsiz),vdx8(mvsiz),
252 . vdy1(mvsiz),vdy2(mvsiz),vdy3(mvsiz),vdy4(mvsiz),
253 . vdy5(mvsiz),vdy6(mvsiz),vdy7(mvsiz),vdy8(mvsiz),
254 . vdz1(mvsiz),vdz2(mvsiz),vdz3(mvsiz),vdz4(mvsiz),
255 . vdz5(mvsiz),vdz6(mvsiz),vdz7(mvsiz),vdz8(mvsiz),
256 . vgxa(mvsiz),vgya(mvsiz),vgza(mvsiz), vga2(mvsiz),
257 . xgxa(mvsiz),xgya(mvsiz),xgza(mvsiz),
258 . xgxya(mvsiz),xgyza(mvsiz),xgzxa(mvsiz),
259 . xgxa2(mvsiz),xgya2(mvsiz),xgza2(mvsiz)
260 my_real
261 . dxy(mvsiz),dyx(mvsiz),
262 . dyz(mvsiz),dzy(mvsiz),
263 . dzx(mvsiz),dxz(mvsiz),
264 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
265 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
266 . r31(mvsiz),r32(mvsiz),r33(mvsiz),hh(mvsiz),
267 . n1x(mvsiz), n2x(mvsiz), n3x(mvsiz),
268 . n1y(mvsiz), n2y(mvsiz), n3y(mvsiz),
269 . n1z(mvsiz), n2z(mvsiz), n3z(mvsiz),
270 . n4x(mvsiz), n5x(mvsiz), n6x(mvsiz),
271 . n4y(mvsiz), n5y(mvsiz), n6y(mvsiz),
272 . n4z(mvsiz), n5z(mvsiz), n6z(mvsiz),
273 . sigym(mvsiz),nu(mvsiz),volg(mvsiz),sigy(mvsiz),
274 . rx0(mvsiz),ry0(mvsiz),sx0(mvsiz),sy0(mvsiz),
275 . dcxx(mvsiz),dcxy(mvsiz),dcxz(mvsiz),dcyx(mvsiz),dcyy(mvsiz),
276 . dcyz(mvsiz),dczx(mvsiz),dczy(mvsiz),dczz(mvsiz),dc4(mvsiz),
277 . dc5(mvsiz),dc6(mvsiz),vzl(mvsiz),
278 . dhxx(mvsiz),dhxy(mvsiz),dhxz(mvsiz),dhyx(mvsiz),dhyy(mvsiz),
279 . dhyz(mvsiz),dhzx(mvsiz),dhzy(mvsiz),dhzz(mvsiz),dh4(mvsiz),
280 . dh5(mvsiz),dh6(mvsiz),eintm(mvsiz),ddhv(mvsiz),einto(mvsiz),
281 . sigzm(mvsiz),volm(mvsiz),mm(mvsiz,2),usb(mvsiz),et(mvsiz),
282 . r1_free(mvsiz),r3_free(mvsiz),r4_free(mvsiz),
283 . tempel(mvsiz),them(mvsiz,8),die(mvsiz),
284 . stin(mvsiz),dsv(mvsiz),bid(mvsiz),conden(mvsiz),dti
285 my_real
286 . nu1(mvsiz),fac(mvsiz),divde(mvsiz),for(mvsiz,6),
287 . alpha_e(mvsiz),llsh(mvsiz),c1,e0(mvsiz),area(mvsiz)
288 INTEGER SZ_R1_FREE
289 DOUBLE PRECISION
290 . FACDP
291 my_real, dimension(mvsiz) :: fheat
292C-----
293 TYPE(G_BUFEL_) ,POINTER :: GBUF
294 TYPE(L_BUFEL_) ,POINTER :: LBUF
295C-----
296 parameter(nlymax = 200,ipmat = 100,ipang = 200)
297 my_real
298 . dir(mvsiz,2),sign(nel,6),shf(mvsiz),zt,wt,
299 . rx(mvsiz), ry(mvsiz), rz(mvsiz),
300 . sx(mvsiz), sy(mvsiz), sz(mvsiz),
301 . tx(mvsiz), ty(mvsiz), tz(mvsiz),amu(mvsiz)
302 INTEGER INLOC,L_NLOC,IPOS(8),INOD(8)
303 my_real, DIMENSION(:,:), ALLOCATABLE :: var_reg
304 my_real, DIMENSION(:), POINTER :: dnl
305 my_real :: nl_nbnod
306 my_real :: sti_c(mvsiz),ll(mvsiz),fld(mvsiz),
307 . cns2,fqmax,dn
308C-----
309 my_real
310 . w_gauss(9,9),a_gauss(9,9),w_newton(9,9),a_newton(9,9)
311 DATA w_gauss /
312 1 2. ,0. ,0. ,
313 1 0. ,0. ,0. ,
314 1 0. ,0. ,0. ,
315 2 1. ,1. ,0. ,
316 2 0. ,0. ,0. ,
317 2 0. ,0. ,0. ,
318 3 0.555555555555556,0.888888888888889,0.555555555555556,
319 3 0. ,0. ,0. ,
320 3 0. ,0. ,0. ,
321 4 0.347854845137454,0.652145154862546,0.652145154862546,
322 4 0.347854845137454,0. ,0. ,
323 4 0. ,0. ,0. ,
324 5 0.236926885056189,0.478628670499366,0.568888888888889,
325 5 0.478628670499366,0.236926885056189,0. ,
326 5 0. ,0. ,0. ,
327 6 0.171324492379170,0.360761573048139,0.467913934572691,
328 6 0.467913934572691,0.360761573048139,0.171324492379170,
329 6 0. ,0. ,0. ,
330 7 0.129484966168870,0.279705391489277,0.381830050505119,
331 7 0.417959183673469,0.381830050505119,0.279705391489277,
332 7 0.129484966168870,0. ,0. ,
333 8 0.101228536290376,0.222381034453374,0.313706645877887,
334 8 0.362683783378362,0.362683783378362,0.313706645877887,
335 8 0.222381034453374,0.101228536290376,0. ,
336 9 0.081274388361574,0.180648160694857,0.260610696402935,
337 9 0.312347077040003,0.330239355001260,0.312347077040003,
338 9 0.260610696402935,0.180648160694857,0.081274388361574/
339C-----
340 DATA a_gauss /
341 1 0. ,0. ,0. ,
342 1 0. ,0. ,0. ,
343 1 0. ,0. ,0. ,
344 2 -.577350269189626,0.577350269189626,0. ,
345 2 0. ,0. ,0. ,
346 2 0. ,0. ,0. ,
347 3 -.774596669241483,0. ,0.774596669241483,
348 3 0. ,0. ,0. ,
349 3 0. ,0. ,0. ,
350 4 -.861136311594053,-.339981043584856,0.339981043584856,
351 4 0.861136311594053,0. ,0. ,
352 4 0. ,0. ,0. ,
353 5 -.906179845938664,-.538469310105683,0. ,
354 5 0.538469310105683,0.906179845938664,0. ,
355 5 0. ,0. ,0. ,
356 6 -.932469514203152,-.661209386466265,-.238619186083197,
357 6 0.238619186083197,0.661209386466265,0.932469514203152,
358 6 0. ,0. ,0. ,
359 7 -.949107912342759,-.741531185599394,-.405845151377397,
360 7 0. ,0.405845151377397,0.741531185599394,
361 7 0.949107912342759,0. ,0. ,
362 8 -.960289856497536,-.796666477413627,-.525532409916329,
363 8 -.183434642495650,0.183434642495650,0.525532409916329,
364 8 0.796666477413627,0.960289856497536,0. ,
365 9 -.968160239507626,-.836031107326636,-.613371432700590,
366 9 -.324253423403809,0. ,0.324253423403809,
367 9 0.613371432700590,0.836031107326636,0.968160239507626/
368 DATA w_newton /
369 1 2. ,0. ,0. ,
370 1 0. ,0. ,0. ,
371 1 0. ,0. ,0. ,
372 2 1. ,1. ,0. ,
373 2 0. ,0. ,0. ,
374 2 0. ,0. ,0. ,
375 3 0.5 ,1. ,0.5 ,
376 3 0. ,0. ,0. ,
377 3 0. ,0. ,0. ,
378 4 0.166666666666667,0.833333333333333,0.833333333333333,
379 4 0.166666666666667,0. ,0. ,
380 4 0. ,0. ,0. ,
381 5 0.25 ,0.5 ,0.5 ,
382 5 0.5 ,0.25 ,0. ,
383 5 0. ,0. ,0. ,
384 6 0.066666666666667,0.37847496 ,0.55485838 ,
385 6 0.55485838 ,0.37847496 ,0.066666666666667,
386 6 0. ,0. ,0. ,
387 7 0.04761904 ,0.27682604 ,0.43174538 ,
388 7 0.48761904 ,0.43174538 ,0.27682604 ,
389 7 0.04761904 ,0. ,0. ,
390 8 0.03571428 ,0.21070422 ,0.34112270 ,
391 8 0.41245880 ,0.41245880 ,0.34112270 ,
392 8 0.21070422 ,0.03571428 ,0. ,
393 9 0.027777777777778,0.1654953616 ,0.2745387126 ,
394 9 0.3464285110 ,0.3715192744 ,0.3464285110 ,
395 9 0.2745387126 ,0.1654953616 ,0.027777777777778/
396 DATA a_newton /
397 1 0. ,0. ,0. ,
398 1 0. ,0. ,0. ,
399 1 0. ,0. ,0. ,
400 2 -1. ,1. ,0. ,
401 2 0. ,0. ,0. ,
402 2 0. ,0. ,0. ,
403 3 -1. ,0. ,1. ,
404 3 0. ,0. ,0. ,
405 3 0. ,0. ,0. ,
406 4 -1. ,-.44721360 ,0.44721360 ,
407 4 1. ,0. ,0. ,
408 4 0. ,0. ,0. ,
409 5 -1. ,-.5 ,0. ,
410 5 0.5 , 1. ,0. ,
411 5 0. ,0. ,0. ,
412 6 -1. ,-.76505532 ,-.28523152 ,
413 6 0.28523152 ,0.76505532 , 1. ,
414 6 0. ,0. ,0. ,
415 7 -1. ,-.83022390 ,-.46884879 ,
416 7 0. ,0.46884879 ,0.83022390 ,
417 7 1. ,0. ,0. ,
418 8 -1. ,-.87174015 ,-.59170018 ,
419 8 -.20929922 ,0.20929922 ,0.59170018 ,
420 8 0.87174015 , 1. ,0. ,
421 9 -1. ,-.8997579954 ,-.6771862795 ,
422 9 -.3631174638 ,0. ,0.3631174638 ,
423 9 0.6771862795 ,0.8997579954 , 1. /
424C-----------------------------------------------
425C S o u r c e L i n e s
426C=======================================================================
427 sz_ix=numelq+numels+nsvois
428 sz_r1_free=mvsiz
429 gbuf => elbuf_tab(ng)%GBUF
430 nlay = elbuf_tab(ng)%NLAY
431 ir = 1
432 is = 1
433 it = 1
434 ipthk = 0
435 ippos = 0
436 mtn0= 0
437
438 tempel(:) = zero
439 fheat(:) = zero
440 inloc = iparg(78,ng)
441 ALLOCATE(var_reg(nel,nlay))
442!
443 DO j=1,6
444 jj(j) = nel*(j-1)
445 ENDDO
446!
447C-----------
448 nf1=nft+1
449C-----
450 IF (igtyp /= 22) THEN
451 isorthg = 0
452 END IF
453C-----------
454 ibid = 0
455 ibidv= 0
456C-----------
457 IF (isorth > 0) THEN
458 CALL sgparav3(
459 1 8, x, ixs(1,nf1),rx,
460 2 ry, rz, sx, sy,
461 3 sz, tx, ty, tz,
462 4 nel)
463 ENDIF
464C
465C Gather nodal variables and compute intrinsic rotations
466 CALL srcoor3(x,ixs(1,nf1),v ,w ,gbuf%GAMA,gama ,
467 . x1, x2, x3, x4, x5, x6, x7, x8,
468 . y1, y2, y3, y4, y5, y6, y7, y8,
469 . z1, z2, z3, z4, z5, z6, z7, z8,
470 . vx1, vx2, vx3, vx4, vx5, vx6, vx7, vx8,
471 . vy1, vy2, vy3, vy4, vy5, vy6, vy7, vy8,
472 . vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8,
473 . vd2,vis,gbuf%OFF,offg,gbuf%SMSTR,gbuf%RHO,rhoo,
474 . r11, r12, r13, r21, r22, r23, r31, r32, r33,
475 . nc1,nc2,nc3,nc4,nc5,nc6,nc7,nc8,ngl,mxt,ngeo,
476 . ioutprt, vgxa, vgya, vgza, vga2,
477 . xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8,
478 . yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8,
479 . zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8,
480 . xdp, bid, bid, bid, nel, xgxa, xgya, xgza,
481 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,iparg(1,ng),
482 . gbuf%GAMA_R)
483C
484 nn_del = 0
485 pid = ngeo(1)
486 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
487 . nn_del=8
488 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=8
489 mx = mxt(1)
490 ipres = mat_elem%MAT_PARAM(mx)%IPRES
491 isctl = igeo(97,pid)
492 DO i=1,nel
493 sigy(i) = ep30
494 sigym(i) = ep30
495 sigzm(i) = zero
496 mm(i,1) = zero
497 mm(i,2) = sigy(i)
498 volm(i) = zero
499 nu(i) = min(half,pm(21,mx))
500 usb(i) = 0.1/pm(32,mx)
501 stin(i)= zero
502 dhxz(i)= zero
503 dhyz(i)= zero
504 conden(i)= zero
505 c1 =pm(32,mxt(i))
506 e0(i) =three*(one-two*nu(i))*c1
507 ENDDO
508 IF (icp == 1) THEN
509 DO i=1,nel
510 nu1(i)=half
511 ENDDO
512 ELSEIF (icp == 2) THEN
513 CALL s8csigp3(gbuf%SIG,e0 ,gbuf%PLA,fac,gbuf%G_PLA,nel)
514 DO i=1,nel
515 nu1(i)=nu(i)+(half-nu(i))*fac(i)
516 ENDDO
517 ELSE
518 DO i=1,nel
519 nu1(i) =nu(i)
520 ENDDO
521 ENDIF
522 CALL scderi3(
523 1 offg, voln, ngl, xd1,
524 2 xd2, xd3, xd4, xd5,
525 3 xd6, xd7, xd8, yd1,
526 4 yd2, yd3, yd4, yd5,
527 5 yd6, yd7, yd8, zd1,
528 6 zd2, zd3, zd4, zd5,
529 7 zd6, zd7, zd8, px1,
530 8 px2, px3, px4, py1,
531 9 py2, py3, py4, pz1,
532 a pz2, pz3, pz4, px1h1,
533 b px1h2, px1h3, px1h4, px2h1,
534 c px2h2, px2h3, px2h4, px3h1,
535 d px3h2, px3h3, px3h4, px4h1,
536 e px4h2, px4h3, px4h4, jac1,
537 f jac2, jac3, jac4, jac5,
538 g jac6, rx0, ry0, sx0,
539 h sy0, vzl, volg, gbuf%SMSTR,
540 i gbuf%OFF, nel, ismstr)
541 CALL sdlen3(
542 1 volg, deltax, x1, x2,
543 2 x3, x4, x5, x6,
544 3 x7, x8, y1, y2,
545 4 y3, y4, y5, y6,
546 5 y7, y8, z1, z2,
547 6 z3, z4, z5, z6,
548 7 z7, z8, n1x, n2x,
549 8 n3x, n4x, n5x, n6x,
550 9 n1y, n2y, n3y, n4y,
551 a n5y, n6y, n1z, n2z,
552 b n3z, n4z, n5z, n6z,
553 c nel, mtn, jale, jeul)
554 IF (ntsheg > 0 .AND.isctl==0) THEN
555 CALL sdlensh(voln,llsh,area ,
556 . x1, x2, x3, x4, x5, x6, x7, x8,
557 . y1, y2, y3, y4, y5, y6, y7, y8,
558 . z1, z2, z3, z4, z5, z6, z7, z8, nel)
559 alpha_e(1:nel) = one
560 DO i=1,nel
561 IF (gbuf%IDT_TSH(i)<=0) cycle
562 facdp = 1.343*llsh(i)/deltax(i)
563 alpha_e(i) = facdp*facdp
564 deltax(i)=max(llsh(i),deltax(i))
565 ENDDO
566 END IF
567 CALL scdefc3(
568 1 px1, px2, px3, px4,
569 2 py1, py2, py3, py4,
570 3 pz1, pz2, pz3, pz4,
571 4 vx1, vx2, vx3, vx4,
572 5 vx5, vx6, vx7, vx8,
573 6 vy1, vy2, vy3, vy4,
574 7 vy5, vy6, vy7, vy8,
575 8 vz1, vz2, vz3, vz4,
576 9 vz5, vz6, vz7, vz8,
577 a dcxx, dcxy, dcxz, dcyx,
578 b dcyy, dcyz, dczx, dczy,
579 c dczz, dc4, dc5, dc6,
580 d wxx, wyy, wzz, dhxx,
581 e dhxy, dhyx, dhyy, dhzx,
582 f dhzy, dhzz, dh4, dh5,
583 g dh6, px1h1, px1h2, px2h1,
584 h px2h2, px3h1, px3h2, px4h1,
585 i px4h2, hgx1, hgy2, hgz1,
586 j hgz2, rx0, ry0, sx0,
587 k sy0, nu1, ddhv, nel)
588 g_pla = gbuf%G_PLA
589 g_epsd = gbuf%G_EPSD
590 CALL sczero3(
591 . f11, f21, f31, f12, f22, f32, f13, f23,
592 . f33, f14, f24, f34, f15, f25, f35, f16,
593 . f26, f36, f17, f27, f37, f18, f28, f38,
594 . gbuf%SIG,eintm,rhom,gbuf%QVIS,gbuf%PLA,
595 . gbuf%EPSD,g_pla,g_epsd,nel)
596C ------------------------------------------------------------------------------
597C Update reference configuration (possible future change to small strain option)
598C Total strain option doesn't change the reference configuration
599C ------------------------------------------------------------------------------
600 IF (ismstr <= 3.OR.(ismstr==4.AND.jlag>0)) THEN
601 CALL s8sav3(
602 1 gbuf%OFF, gbuf%SMSTR,xd1, xd2,
603 2 xd3, xd4, xd5, xd6,
604 3 xd7, xd8, yd1, yd2,
605 4 yd3, yd4, yd5, yd6,
606 5 yd7, yd8, zd1, zd2,
607 6 zd3, zd4, zd5, zd6,
608 7 zd7, zd8, nel)
609 END IF
610c
611 IF (isorth > 0) THEN
612 IF (igtyp == 21) THEN
613 CALL sgetdir3(nel, rx,ry,rz,tx,ty,tz,
614 . r11,r21,r31,r12,r22,r32,gbuf%GAMA,dir,irep)
615 ENDIF
616 IF (igtyp == 22) THEN
617 ipthk = ipang+nlymax
618 ippos = ipthk+nlymax
619 mtn0=mtn
620 DO i=1,nel
621 mxt0(i)=mxt(i)
622 shf(i)=geo(38,ngeo(i))
623 ENDDO
624 ENDIF
625 ENDIF
626C-------------------------------------
627C Uniform stress through the thickness
628C-------------------------------------
629 DO ilay=1,nlay
630 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
631 IF (igtyp == 22) THEN
632 mid=igeo(ipmat+ilay,pid)
633 mtn=nint(pm(19,mid))
634 ENDIF
635 DO i=1,nel
636 sigzm(i) = sigzm(i) + lbuf%VOL(i)*lbuf%SIG(jj(3)+i)
637 volm(i) = volm(i) + lbuf%VOL(i)
638 ENDDO
639 ENDDO
640C-------------------------------------------
641 IF (dt1 == zero) THEN
642 dti =zero
643 ELSE
644 dti = one/dt1
645 ENDIF
646C-------------------------------------------
647C Element temperature
648C-------------------------------------------
649 IF(jthe < 0) THEN
650 DO i=1,nel
651 tempel(i) = one_over_8 *( temp(nc1(i)) + temp(nc2(i))
652 . + temp(nc3(i)) + temp(nc4(i))
653 . + temp(nc5(i)) + temp(nc6(i))
654 . + temp(nc7(i)) + temp(nc8(i)))
655 gbuf%TEMP(i) = tempel(i)
656 ENDDO
657 ENDIF
658 ioffs=0
659 DO i=1,nel
660 offs(i) = ep20
661 ENDDO
662 IF(jthe<0) them(1:nel,1:8) =zero
663c
664c===========================================================================
665c Computation of the non-local variable at Gauss point from nodal d.o.fs
666c===========================================================================
667 IF (inloc > 0) THEN
668 l_nloc = nloc_dmg%L_NLOC
669 dnl => nloc_dmg%DNL(1:l_nloc) ! DNL = non local variable increment
670 DO ilay=1,nlay
671 DO i=1,nel
672 ! Recover non-local d.o.fs position
673 inod(1:8) = 0
674 ipos(1:8) = 0
675 DO j = 1,elbuf_tab(ng)%NLOCS%NL_ISOLNOD(i)
676 inod(j) = nloc_dmg%IDXI(elbuf_tab(ng)%NLOCS%NL_SOLNOD(j,i))
677 ipos(j) = nloc_dmg%POSI(inod(j))+ilay-1
678 ENDDO
679 ! Computation of non-local variable at intg. point
680 var_reg(i,ilay) = zero
681 nl_nbnod = elbuf_tab(ng)%NLOCS%NL_ISOLNOD(i)
682 DO j = 1, elbuf_tab(ng)%NLOCS%NL_ISOLNOD(i)
683 var_reg(i,ilay) = var_reg(i,ilay) + dnl(ipos(j))/nl_nbnod
684 ENDDO
685 ENDDO
686 ENDDO
687 ENDIF
688c===========================================================================
689c
690C-------------------------------------------------
691C Loop on integration points through the thickness
692C-------------------------------------------------
693 DO ilay=1,nlay
694 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
695C
696 IF (igtyp == 22) THEN
697 zt = geo(ippos+ilay,pid)
698 wt = geo(ipthk+ilay,pid)
699 mid=igeo(ipmat+ilay,pid)
700 mtn=nint(pm(19,mid))
701 DO i=1,nel
702 mxt(i)=mid
703 ENDDO
704 ELSE
705 zt = a_gauss(ilay,nlay)
706 wt = w_gauss(ilay,nlay)
707 ENDIF
708 CALL scdefo3(
709 1 dxx, dxy, dxz, dyx,
710 2 dyy, dyz, dzx, dzy,
711 3 dzz, d4, d5, d6,
712 4 dcxx, dcxy, dcxz, dcyx,
713 5 dcyy, dcyz, dczx, dczy,
714 6 dczz, dc4, dc5, dc6,
715 7 dhxx, dhxy, dhxz, dhyx,
716 8 dhyy, dhyz, dhzx, dhzy,
717 9 dhzz, dh4, dh5, dh6,
718 a zt, wt, vzl, voln,
719 b volg, lbuf%VOL, ddhv, lbuf%SIG,
720 c sigzm, volm, usb, lbuf%EINT,
721 d off, offg, dti, gbuf%OFF,
722 e dsv, lbuf%VOL0DP,voldp, ipres,
723 f nel )
724 DO i=1,nel
725 einto(i) = lbuf%EINT(i)
726 rhoo(i) = lbuf%RHO(i)
727 ENDDO
728 IF (isorth > 0) THEN
729 IF (igtyp == 22)
730 . CALL sgetdir3(nel,rx,ry,rz,tx,ty,tz,
731 . r11,r21,r31,r12,r22,r32,
732 . lbuf%GAMA,dir,irep)
733 CALL scordef3(nel,dxx,dyy,dzz,d4,d5,d6,dir)
734 IF (igtyp == 22) THEN
735 DO i=1,nel
736 d5(i)=shf(i)*d5(i)
737 d6(i)=shf(i)*d6(i)
738 ENDDO
739 ENDIF
740 ENDIF
741
742 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))+dsv(1:nel)
743 CALL srho3(
744 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
745 2 divde, flux(1,nf1),flu1(nf1), voln,
746 3 dvol, ngl, mxt, off,
747 4 0, gbuf%TAG22, voldp, lbuf%VOL0DP,
748 5 amu, gbuf%OFF, nel, mtn,
749 6 jale, ismstr, jeul, jlag)
750
751C-----------------------------
752C Gather stresses
753C-----------------------------
754 CALL csmall3(lbuf%SIG,s1,s2,s3,s4,s5,s6,
755 . gbuf%OFF,off,nel)
756C------------------------------------------------------
757C Compute new stresses according to constitutive laws
758C Compute time step DT2T
759C------------------------------------------------------
760 current_layer=ilay
761 CALL mmain(timers, output,
762 1 elbuf_tab, ng, pm, geo,
763 2 ale_connect, ixs, iparg,
764 3 v, tf, npf, bufmat,
765 4 sti, x, dt2t, neltst,
766 5 ityptst, offset, nel, w,
767 6 off, ngeo, mxt, ngl,
768 7 voln, vd2, dvol, deltax,
769 8 vis, qvis, cxx, s1,
770 9 s2, s3, s4, s5,
771 a s6, dxx, dyy, dzz,
772 b d4, d5, d6, wxx,
773 c wyy, wzz, jac1, jac2,
774 d jac3, jac4, jac5, jac6,
775 e vdx, vdy, vdz, muvoid,
776 f ssp_eq, aire, sigy, et,
777 g r1_free, lbuf%PLA, r3_free, amu,
778 h dxx, dxy, dxz, dyx,
779 i dyy, dyz, dzx, dzy,
780 j dzz, ipm, gama, bid,
781 k bid, bid, bid, bid,
782 l bid, bid, istrain, tempel,
783 m die, iexpan, current_layer,mssa,
784 n dmels, ir, is, it,
785 o table, bid, bid, bid,
786 p bid, iparg(1,ng), igeo, conde,
787 q itask, nloc_dmg, var_reg(1,ilay), mat_elem,
788 r h3d_strain, jplasol, jsph, sz_r1_free,
789 * snpc, stf, sbufmat, glob_therm,
790 * svis, sz_ix, iresp,
791 * n2d, th_strain, ngroup, tt,
792 . dt1, ntable, numelq, nummat,
793 . numgeo, numnod, numels,
794 . idel7nok, idtmin, maxfunc,
795 . imon_mat, userl_avail, impl_s,
796 . idyna, dt, fheat ,sensors, opt_mtn=mtn,opt_jcvt=jcvt,
797 . opt_isorth=isorth,opt_isorthg=isorthg)
798C
799 DO i=1,nel
800 sigym(i) = min(sigym(i),sigy(i))
801 stin(i) = stin(i)+sti(i)
802 ENDDO
803C
804 IF (glob_therm%NODADT_THERM == 1) THEN
805 DO i=1,nel
806 conden(i)= conden(i)+ conde(i)
807 ENDDO
808 ENDIF
809 IF (istrain == 1) THEN
810 CALL sstra3(
811 1 dxx, dyy, dzz, d4,
812 2 d5, d6, lbuf%STRA,wxx,
813 3 wyy, wzz, off, nel,
814 4 jcvt)
815 ENDIF
816C----------------------------
817C Internal forces
818C----------------------------
819 l_pla = elbuf_tab(ng)%BUFLY(ilay)%L_PLA
820 l_epsd = elbuf_tab(ng)%BUFLY(ilay)%L_EPSD
821 IF (isorth > 0) THEN
822 CALL scroto_sig(nel,lbuf%SIG,sign,dir)
823!! SCROTO() temporary replaced by (the same) SCROTO_SIG() in order not to affect
824!! the other multidimensional buffer ARRAYS which are still not modified
825 CALL scfint3(sign,
826 . px1, px2, px3, px4,
827 . py1, py2, py3, py4,
828 . pz1, pz2, pz3, pz4,
829 . px5, px6, px7, px8,
830 . py5, py6, py7, py8,
831 . pz5, pz6, pz7, pz8,
832 . f11,f21,f31,f12,f22,f32,f13,f23,f33,f14,f24,f34,
833 . f15,f25,f35,f16,f26,f36,f17,f27,f37,f18,f28,f38,
834 . voln,qvis,
835 . px1h1, px1h2, px2h1, px2h2,
836 . px3h1, px3h2, px4h1, px4h2,
837 . rx0, ry0, sx0, sy0,
838 . lbuf%EINT,lbuf%RHO,lbuf%QVIS,lbuf%PLA,lbuf%EPSD,gbuf%EPSD,
839 . gbuf%SIG,eintm,einto,rhom,gbuf%QVIS,gbuf%PLA,
840 . nu1,zt ,wt ,volg,mm,off,
841 . lbuf%VOL,gbuf%VOL,l_pla,l_epsd,nel,svis,
842 . gbuf%WPLA, lbuf%WPLA, gbuf%G_WPLA )
843 ELSE
844 CALL scfint3(lbuf%SIG,
845 . px1, px2, px3, px4,
846 . py1, py2, py3, py4,
847 . pz1, pz2, pz3, pz4,
848 . px5, px6, px7, px8,
849 . py5, py6, py7, py8,
850 . pz5, pz6, pz7, pz8,
851 . f11,f21,f31,f12,f22,f32,f13,f23,f33,f14,f24,f34,
852 . f15,f25,f35,f16,f26,f36,f17,f27,f37,f18,f28,f38,
853 . voln,qvis,
854 . px1h1, px1h2, px2h1, px2h2,
855 . px3h1, px3h2, px4h1, px4h2,
856 . rx0, ry0, sx0, sy0,
857 . lbuf%EINT,lbuf%RHO,lbuf%QVIS,lbuf%PLA,lbuf%EPSD,gbuf%EPSD,
858 . gbuf%SIG,eintm,einto,rhom,gbuf%QVIS,gbuf%PLA,
859 . nu1,a_gauss(ilay,nlay),w_gauss(ilay,nlay),volg,mm,off,
860 . lbuf%VOL,gbuf%VOL,l_pla,l_epsd,nel,svis,
861 . gbuf%WPLA, lbuf%WPLA, gbuf%G_WPLA )
862 ENDIF
863C-------------------------
864C Finite element heat transfert
865C--------------------------
866 IF (jthe < 0) THEN
867 imat = mxt(1)
868 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
869 CALL sctherm(
870 1 pm, imat, voln, nc1,
871 2 nc2, nc3, nc4, nc5,
872 3 nc6, nc7, nc8, px1,
873 4 px2, px3, px4, py1,
874 5 py2, py3, py4, pz1,
875 6 pz2, pz3, pz4, dt1,
876 7 temp, tempel, fheat, them,
877 8 gbuf%OFF,lbuf%OFF,nel,glob_therm%THEACCFACT)
878 ELSE
879 CALL sctherm(
880 1 pm, imat, voln, nc1,
881 2 nc2, nc3, nc4, nc5,
882 3 nc6, nc7, nc8, px1,
883 4 px2, px3, px4, py1,
884 5 py2, py3, py4, pz1,
885 6 pz2, pz3, pz4, dt1,
886 7 temp, tempel, die, them,
887 8 gbuf%OFF,lbuf%OFF,nel,glob_therm%THEACCFACT)
888 END IF
889 ENDIF
890 DO i=1,nel
891 offg(i)=min(offg(i),off(i))
892 IF (lbuf%OFF(i) > one .AND. gbuf%OFF(i) == one) THEN
893 offs(i) = min(lbuf%OFF(i),offs(i))
894 ioffs = 1
895 ENDIF
896 ENDDO
897C-----------------------------
898 ENDDO ! ILAY=1,NLAY
899C-----------------------------
900c
901c===========================================================================
902c Computation of the internal non-local forces
903c===========================================================================
904 IF (inloc > 0) THEN
905 ! Computation of thickshell area
906 CALL sdlensh(voln,llsh,area ,
907 . x1, x2, x3, x4, x5, x6, x7, x8,
908 . y1, y2, y3, y4, y5, y6, y7, y8,
909 . z1, z2, z3, z4, z5, z6, z7, z8, nel)
910 ! Non-local internal forces
911 CALL scfint_reg(
912 1 nloc_dmg ,var_reg ,nel ,off ,
913 2 volg ,elbuf_tab(ng)%NLOCS,area ,
914 3 px1 ,px2 ,px3 ,px4 ,
915 4 py1 ,py2 ,py3 ,py4 ,
916 5 pz1 ,pz2 ,pz3 ,pz4 ,
917 6 mxt(lft) ,itask ,dt2t ,gbuf%VOL,
918 7 nft ,nlay ,w_gauss ,a_gauss ,
919 8 elbuf_tab(ng)%NLOCTS(1,1))
920 ENDIF
921c===========================================================================
922c
923 IF (ioffs == 1)THEN
924 DO i=1,nel
925 IF (offs(i)<=two) gbuf%OFF(i)=offs(i)
926 END DO
927 DO ilay=1,nlay
928 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
929 IF (igtyp == 22) THEN
930 mid=igeo(ipmat+ilay,pid)
931 mtn=nint(pm(19,mid))
932 ENDIF
933 DO i=1,nel
934 IF (gbuf%OFF(i) > one) lbuf%OFF(i) = gbuf%OFF(i)
935 ENDDO
936 ENDDO ! ILAY=1,NLAY
937 ENDIF
938 DO i=1,nel
939 gbuf%RHO(i) = rhom(i)
940 END DO
941C-----------------------------
942 IF (igtyp == 22) THEN
943 mtn = mtn0 !is MTN0 always initialized here? (initialization only for ISORTH>0)
944 DO i=1,nel
945 mxt(i)=mxt0(i)
946 ENDDO
947 ENDIF
948 IF ( nn_del> 0) THEN
949 CALL sdlensh2(volg,llsh,area ,
950 . x1, x2, x3, x4, x5, x6, x7, x8,
951 . y1, y2, y3, y4, y5, y6, y7, y8,
952 . z1, z2, z3, z4, z5, z6, z7, z8,nel)
953 CALL tshgeodel3(ngl,gbuf%OFF,volg,area,gbuf%VOL,
954 . llsh,geo(1,pid),nn_del,dt,nel )
955 ENDIF
956C-----------------------------
957C Small strain
958C-----------------------------
959 CALL smallb3(
960 1 gbuf%OFF,offg, nel, ismstr)
961C-----------------------------
962C Anti hourglass forces
963C-----------------------------
964 IF (isctl > 0) THEN
965 dn = geo(13,pid)
966 CALL shour_ctl(
967 . pm, gbuf%RHO, offg, vx1,
968 . vx2, vx3, vx4, vx5,
969 . vx6, vx7, vx8, vy1,
970 . vy2, vy3, vy4, vy5,
971 . vy6, vy7, vy8, vz1,
972 . vz2, vz3, vz4, vz5,
973 . vz6, vz7, vz8, f11,
974 . f21, f31, f12, f22,
975 . f32, f13, f23, f33,
976 . f14, f24, f34, f15,
977 . f25, f35, f16, f26,
978 . f36, f17, f27, f37,
979 . f18, f28, f38, px1h1,
980 . px1h2, px1h3, px2h1, px2h2,
981 . px2h3, px3h1, px3h2, px3h3,
982 . px4h1, px4h2, px4h3, volg,
983 . gbuf%HOURG, mtn, dt1 , mxt,
984 . cxx, gbuf%EINT, npropm, nummat,
985 . gbuf%VOL, dn , stin, nel )
986!
987 gbuf%EINT(1:nel) = gbuf%EINT(1:nel) + eintm(1:nel)
988 ELSE
989 CALL schour3_1(
990 1 pm, gbuf%RHO, offg, vx1,
991 2 vx2, vx3, vx4, vx5,
992 3 vx6, vx7, vx8, vy1,
993 4 vy2, vy3, vy4, vy5,
994 5 vy6, vy7, vy8, vz1,
995 6 vz2, vz3, vz4, vz5,
996 7 vz6, vz7, vz8, f11,
997 8 f21, f31, f12, f22,
998 9 f32, f13, f23, f33,
999 a f14, f24, f34, f15,
1000 b f25, f35, f16, f26,
1001 c f36, f17, f27, f37,
1002 d f18, f28, f38, px1h1,
1003 e px1h2, px1h3, px1h4, px2h1,
1004 f px2h2, px2h3, px2h4, px3h1,
1005 g px3h2, px3h3, px3h4, px4h1,
1006 h px4h2, px4h3, px4h4, hgx1,
1007 i hgy2, hgz1, hgz2, volg,
1008 j mxt, cxx, ngeo, geo,
1009 k gbuf%HOURG,rx0, ry0, sx0,
1010 l sy0, jac5, gbuf%EINT, eintm,
1011 m gbuf%VOL, sigym, gbuf%SIG, mm,
1012 n nu, gbuf%PLA, icp, nel,
1013 o mtn, nlay)
1014 END IF
1015C--------------------------------------
1016C Balance per part in case of print out
1017C--------------------------------------
1018 iflag = mod(ncycle,ncpri)
1019 IF(ioutprt>0)THEN
1020 CALL srbilan(partsav,gbuf%EINT,gbuf%RHO,gbuf%RK ,gbuf%VOL,
1021 . vgxa ,vgya ,vgza ,vga2 ,volg ,
1022 . iparts ,gresav ,grth ,igrth ,gbuf%OFF,
1023 . iexpan ,gbuf%EINTTH,gbuf%FILL, xgxa, xgya, xgza,
1024 . xgxa2,xgya2,xgza2,xgxya,xgyza,xgzxa,itask,iparg(1,ng),sensors,
1025 . nel,gbuf%G_WPLA,gbuf%WPLA)
1026 ENDIF
1027C
1028C----------------------------
1029C Covected frame to global frame
1030C----------------------------
1031 CALL srrota3(
1032 1 r11, r21, r31, r12,
1033 2 r22, r32, r13, r23,
1034 3 r33, f11, f12, f13,
1035 4 f14, f15, f16, f17,
1036 5 f18, f21, f22, f23,
1037 6 f24, f25, f26, f27,
1038 7 f28, f31, f32, f33,
1039 8 f34, f35, f36, f37,
1040 9 f38, nel)
1041C----------------------------
1042C distortion control
1043C----------------------------
1044 IF (isctl > 0) THEN
1045 alpha_e(1:nel) = one ! incompatibale
1046 CALL sdistor_ini(
1047 1 nel ,sti_c ,npropm ,nummat ,
1048 2 ismstr ,mxt ,istab ,pm ,
1049 3 gbuf%SIG ,gbuf%RHO ,cxx ,offg ,
1050 4 gbuf%OFF ,ll ,voln ,fld ,
1051 5 cns2 ,fqmax )
1052! all in global system
1053 CALL s8get_x3(
1054 . nc1, nc2, nc3, nc4,
1055 . nc5, nc6, nc7, nc8,
1056 . x1, x2, x3, x4,
1057 . x5, x6, x7, x8,
1058 . y1, y2, y3, y4,
1059 . y5, y6, y7, y8,
1060 . z1, z2, z3, z4,
1061 . z5, z6, z7, z8,
1062 . x, xdp, numnod, nel )
1063 DO i=1,nel
1064 vx1(i)=v(1,nc1(i))
1065 vy1(i)=v(2,nc1(i))
1066 vz1(i)=v(3,nc1(i))
1067 vx2(i)=v(1,nc2(i))
1068 vy2(i)=v(2,nc2(i))
1069 vz2(i)=v(3,nc2(i))
1070 vx3(i)=v(1,nc3(i))
1071 vy3(i)=v(2,nc3(i))
1072 vz3(i)=v(3,nc3(i))
1073 vx4(i)=v(1,nc4(i))
1074 vy4(i)=v(2,nc4(i))
1075 vz4(i)=v(3,nc4(i))
1076 vx5(i)=v(1,nc5(i))
1077 vy5(i)=v(2,nc5(i))
1078 vz5(i)=v(3,nc5(i))
1079 vx6(i)=v(1,nc6(i))
1080 vy6(i)=v(2,nc6(i))
1081 vz6(i)=v(3,nc6(i))
1082 vx7(i)=v(1,nc7(i))
1083 vy7(i)=v(2,nc7(i))
1084 vz7(i)=v(3,nc7(i))
1085 vx8(i)=v(1,nc8(i))
1086 vy8(i)=v(2,nc8(i))
1087 vz8(i)=v(3,nc8(i))
1088 ENDDO
1089 CALL s8for_distor(
1090 . x1, x2, x3, x4,
1091 . x5, x6, x7, x8,
1092 . y1, y2, y3, y4,
1093 . y5, y6, y7, y8,
1094 . z1, z2, z3, z4,
1095 . z5, z6, z7, z8,
1096 . vx1, vx2, vx3, vx4,
1097 . vx5, vx6, vx7, vx8,
1098 . vy1, vy2, vy3, vy4,
1099 . vy5, vy6, vy7, vy8,
1100 . vz1, vz2, vz3, vz4,
1101 . vz5, vz6, vz7, vz8,
1102 . f11, f12, f13, f14,
1103 . f15, f16, f17, f18,
1104 . f21, f22, f23, f24,
1105 . f25, f26, f27, f28,
1106 . f31, f32, f33, f34,
1107 . f35, f36, f37, f38,
1108 . stin, sti_c, fld , cns2,
1109 . ll , istab, fqmax, nel,
1110 . gbuf%EINT_DISTOR, dt1)
1111 ENDIF
1112C----------------------------
1113 IF(nfilsol/=0) CALL sfillopt(
1114 1 gbuf%FILL,sti, f11, f21,
1115 2 f31, f12, f22, f32,
1116 3 f13, f23, f33, f14,
1117 4 f24, f34, f15, f25,
1118 5 f35, f16, f26, f36,
1119 6 f17, f27, f37, f18,
1120 7 f28, f38, nel)
1121C----------------------------
1122C Assemble internal forces
1123C----------------------------
1124 IF(iparit == 0)THEN
1125 CALL scumu3(
1126 1 gbuf%OFF,a, nc1, nc2,
1127 2 nc3, nc4, nc5, nc6,
1128 3 nc7, nc8, stifn, stin,
1129 4 f11, f21, f31, f12,
1130 5 f22, f32, f13, f23,
1131 6 f33, f14, f24, f34,
1132 7 f15, f25, f35, f16,
1133 8 f26, f36, f17, f27,
1134 9 f37, f18, f28, f38,
1135 a nvc, bid, bid, bid,
1136 b bid, bid, bid, bid,
1137 c bid, bid, bid, bid,
1138 d bid, bid, bid, bid,
1139 e bid, bid, bid, bid,
1140 f bid, bid, bid, bid,
1141 g bid, bid, bid, bid,
1142 h them, fthe, condn, conden,
1143 i nel, jthe, isrot, ipartsph,glob_therm%NODADT_THERM)
1144 ELSE
1145 CALL scumu3p(
1146 1 gbuf%OFF,stin, fsky, fsky,
1147 2 iads, f11, f21, f31,
1148 3 f12, f22, f32, f13,
1149 4 f23, f33, f14, f24,
1150 5 f34, f15, f25, f35,
1151 6 f16, f26, f36, f17,
1152 7 f27, f37, f18, f28,
1153 8 f38, nc1, nc2, nc3,
1154 9 nc4, nc5, nc6, nc7,
1155 a nc8, bid, bid, bid,
1156 b bid, bid, bid, bid,
1157 c bid, bid, bid, bid,
1158 d bid, bid, bid, bid,
1159 e bid, bid, bid, bid,
1160 f bid, bid, bid, bid,
1161 g bid, bid, bid, bid,
1162 h them, fthesky, condnsky,conden,
1163 i nel, nft, jthe, isrot,
1164 j ipartsph,glob_therm%NODADT_THERM)
1165 ENDIF
1166 IF (ntsheg > 0)
1167 + CALL scumualpha(
1168 1 gbuf%OFF,alpha_e, nc1, nc2,
1169 2 nc3, nc4, nc5, nc6,
1170 3 nc7, nc8, nel)
1171C-----------
1172 IF (ALLOCATED(var_reg)) DEALLOCATE(var_reg)
1173 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine csmall3(sig, s1, s2, s3, s4, s5, s6, offg, off, nel)
Definition csmall3.F:35
subroutine area(d1, x, x2, y, y2, eint, stif0)
#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
for(i8=*sizetab-1;i8 >=0;i8--)
subroutine s8csigp3(sig, e0, defp, fac, g_pla, nel)
Definition s8csigp3.F:32
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 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 scdefc3(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, dhxx, dhxy, dhyx, dhyy, dhzx, dhzy, dhzz, dh4, dh5, dh6, px1h1, px1h2, px2h1, px2h2, px3h1, px3h2, px4h1, px4h2, hgx1, hgy2, hgz1, hgz2, rx0, ry0, sx0, sy0, nu, ddhv, nel)
Definition scdefc3.F:49
subroutine scdefo3(dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, dcxx, dcxy, dcxz, dcyx, dcyy, dcyz, dczx, dczy, dczz, dc4, dc5, dc6, dhxx, dhxy, dhxz, dhyx, dhyy, dhyz, dhzx, dhzy, dhzz, dh4, dh5, dh6, zi, wi, vzl, vol, volg, volo, ddhv, sig, sigzm, volm, usb, eint, off, offg, dti, offs, dvc, vol0dp, voldp, ipres, nel)
Definition scdefo3.F:45
subroutine scfint3(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, px1h1, px1h2, px2h1, px2h2, px3h1, px3h2, px4h1, px4h2, rx0, ry0, sx0, sy0, eint, rho, q, eplas, epsd, epsdm, sigm, eintm, einto, rhom, qm, eplasm, nu, zi, wi, volg, mm, off, vol0, vol0g, g_pla, g_epsd, nel, svis, g_wpla, l_wpla, g_wpla_flag)
Definition scfint3.F:46
subroutine scfint_reg(nloc_dmg, var_reg, nel, off, vol, nlocs, area, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, imat, itask, dt2t, vol0, nft, nlay, ws, as, bufnlts)
Definition scfint_reg.F:40
subroutine schour3_1(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, hgx1, hgy2, hgz1, hgz2, vol, mat, cxx, pid, geo, fhour, rx0, ry0, sx0, sy0, aj5, eint, eintm, vol0, sigy, sig0, mm, nu, defp, icp, nel, mtn, nlay)
Definition schour3_1.F:53
subroutine sczero3(rhog, sigg, eintg, nel)
Definition scinit3.F:532
subroutine sdlensh(nel, llsh, 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 scinit3.F:571
subroutine scordef3(nel, dxx, dyy, dzz, d4, d5, d6, dir)
Definition scordef3.F:33
subroutine scroto_sig(nel, sig, sign, dir)
Definition scroto_sig.F:30
subroutine sctherm(pm, imat, vol, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, dt1, tempnc, tel, heat, fphi, offg, off, nel, theaccfact)
Definition sctherm.F:37
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 scumualpha(offg, alpha_e, nc1, nc2, nc3, nc4, nc5, nc6, nc7, nc8, nel)
Definition scumualpha.F:35
subroutine sdlensh2(voln, llsh, area, 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 sdlensh2.F:37
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 sgetdir3(nel, rx, ry, rz, tx, ty, tz, e1x, e1y, e1z, e2x, e2y, e2z, dir, dirb, irep)
Definition sgetdir3.F:31
subroutine sgparav3(npe, x, ixs, rx, ry, rz, sx, sy, sz, tx, ty, tz, nel)
Definition sgparav3.F:35
subroutine smallb3(offg, off, nel, ismstr)
Definition smallb3.F:44
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 sstra3(dxx, dyy, dzz, d4, d5, d6, strain, wxx, wyy, wzz, off, nel, jcvt)
Definition sstra3.F:46
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 scderi3(nel, vol, jeul, veul, geo, vzl, vzq, ngl, 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, det)
Definition scderi3.F:37
subroutine tshgeodel3(ngl, offg, volg, area, volg0, l_sh, geo, nnod, dt, nel)
Definition tshgeodel3.F:36