OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s6cforc3.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 "com04_c.inc"
#include "com06_c.inc"
#include "scr18_c.inc"
#include "impl1_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine s6cforc3 (timers, output, 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, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, nel, icp, icsig, nloc_dmg, ipm, istrain, igeo, gresav, grth, igrth, table, mssa, dmels, voln, itask, ioutprt, mat_elem, h3d_strain, temp, fthe, fthesky, condn, condnsky, iexpan, ifthe, icondn, dt, snpc, stf, sbufmat, svis, nsvois, idtmins, iresp, idel7ng, idel7nok, maxfunc, imon_mat, userl_avail, glob_therm, xdp, sensors)

Function/Subroutine Documentation

◆ s6cforc3()

subroutine s6cforc3 ( 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,
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,
integer nel,
integer icp,
integer icsig,
type (nlocal_str_), target nloc_dmg,
integer, dimension(npropmi,*) ipm,
integer istrain,
integer, dimension(npropgi,*) igeo,
gresav,
integer, dimension(*) grth,
integer, dimension(*) igrth,
type (ttable), dimension(*) table,
mssa,
dmels,
voln,
integer itask,
integer ioutprt,
type (mat_elem_), intent(inout) mat_elem,
integer h3d_strain,
dimension(numnod), intent(inout) temp,
dimension(ifthe), intent(inout) fthe,
dimension(lsky), intent(inout) fthesky,
dimension(icondn), intent(inout) condn,
dimension(lsky), intent(inout) condnsky,
integer, intent(in) iexpan,
integer, intent(in) ifthe,
integer, intent(in) icondn,
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,
double precision, dimension(3,numnod), intent(in) xdp,
type (sensors_), intent(inout) sensors )

Definition at line 81 of file s6cforc3.F.

101C-----------------------------------------------
102C M o d u l e s
103C-----------------------------------------------
104 USE timer_mod
105 USE output_mod, only : output_
106 USE mmain_mod
107 USE table_mod
108 USE mat_elem_mod
111 USE dt_mod
112 USE elbufdef_mod
113 USE sdistor_ini_mod, ONLY : sdistor_ini
114 USE s6get_xv_mod, ONLY : s6get_xv
115 USE s6for_distor_mod,ONLY : s6for_distor
116 USE s6chour_ctl_mod ,ONLY : s6chour_ctl
117 use glob_therm_mod
118 USE sensor_mod
119 use element_mod , only : nixs
120C-----------------------------------------------
121C I m p l i c i t T y p e s
122C-----------------------------------------------
123#include "implicit_f.inc"
124C-----------------------------------------------
125C G l o b a l P a r a m e t e r s
126C-----------------------------------------------
127#include "mvsiz_p.inc"
128C-----------------------------------------------
129C C o m m o n B l o c k s
130C-----------------------------------------------
131#include "com01_c.inc"
132#include "com08_c.inc"
133#include "vect01_c.inc"
134#include "parit_c.inc"
135#include "param_c.inc"
136#include "com04_c.inc"
137#include "com06_c.inc"
138#include "scr18_c.inc"
139#include "impl1_c.inc"
140C-----------------------------------------------
141C D u m m y A r g u m e n t s
142C-----------------------------------------------
143 TYPE(TIMER_), INTENT(inout) :: TIMERS
144 TYPE(OUTPUT_), INTENT(inout) :: OUTPUT
145 INTEGER,INTENT(IN):: SNPC
146 INTEGER,INTENT(IN):: STF
147 INTEGER, INTENT(IN) :: SBUFMAT
148 INTEGER, INTENT(IN) :: NSVOIS
149 INTEGER, INTENT(IN) :: IDTMINS
150 INTEGER ,INTENT(IN) :: IRESP
151 INTEGER ,INTENT(IN) :: IDEL7NG
152 INTEGER ,INTENT(INOUT) :: IDEL7NOK
153 INTEGER ,INTENT(IN) :: MAXFUNC
154 INTEGER, INTENT(IN) :: USERL_AVAIL
155 INTEGER, INTENT(IN) :: IMON_MAT
156 INTEGER IXS(NIXS,*),IPARG(NPARG,NGROUP),NPF(*),IADS(8,*),GRTH(*),
157 . IPARTS(*),IPM(NPROPMI,*),IGEO(NPROPGI,*),IGRTH(*), ITASK,IOUTPRT
158 INTEGER NELTST,ITYPTST,OFFSET,NG,NEL,ICP,ICSIG,ISTRAIN,H3D_STRAIN
159 INTEGER, INTENT(IN) :: IEXPAN,IFTHE,ICONDN
160 my_real
161 . dt2t
162 my_real
163 . pm(npropm,*), x(*), a(*), v(*), ms(*), w(*),
164 . flux(6,*),geo(npropg,*),
165 . flu1(*), veul(*), fv(*), tf(*), bufmat(*),
166 . partsav(*),stifn(*), fsky(*),eani(*),
167 . f11(mvsiz),f21(mvsiz),f31(mvsiz),
168 . f12(mvsiz),f22(mvsiz),f32(mvsiz),
169 . f13(mvsiz),f23(mvsiz),f33(mvsiz),
170 . f14(mvsiz),f24(mvsiz),f34(mvsiz),
171 . f15(mvsiz),f25(mvsiz),f35(mvsiz),
172 . f16(mvsiz),f26(mvsiz),f36(mvsiz),gresav(*),
173 . mssa(*), dmels(*), voln(mvsiz)
174 my_real, INTENT(INOUT) :: temp(numnod),fthe(ifthe),fthesky(lsky),
175 . condn(icondn),condnsky(lsky)
176 my_real, DIMENSION(MVSIZ,6), INTENT(INOUT) :: svis
177 DOUBLE PRECISION, DIMENSION(3,NUMNOD), INTENT(IN ) :: XDP
178 TYPE (TTABLE) TABLE(*)
179 TYPE (ELBUF_STRUCT_), TARGET, DIMENSION(NGROUP) :: ELBUF_TAB
180 TYPE (NLOCAL_STR_) , TARGET :: NLOC_DMG
181 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
182 TYPE (MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
183 TYPE(DT_) , INTENT(INOUT) :: DT
184 type (glob_therm_) ,intent(inout) :: glob_therm
185 type (sensors_),INTENT(INOUT) :: SENSORS
186C-----------------------------------------------
187C L o c a l V a r i a b l e s
188C-----------------------------------------------
189 INTEGER I,J,NF1,IFLAG,CURRENT_LAYER,IMAT,
190 . ILAY,NLAY,IR,IS,IT,IBID,MX,L_PLA,L_EPSD
191 INTEGER MXT(MVSIZ),NGL(MVSIZ),NGEO(MVSIZ),IBIDON(1)
192c variables used only in solid routines (as arguments).
193 INTEGER NC1(MVSIZ), NC2(MVSIZ), NC3(MVSIZ), NC4(MVSIZ),
194 . NC5(MVSIZ), NC6(MVSIZ)
195C----------
196 my_real
197 . c1,dti
198 my_real
199 . vd2(mvsiz) , dvol(mvsiz),deltax(mvsiz),
200 . vis(mvsiz) , qvis(mvsiz), cxx(mvsiz) ,
201 . s1(mvsiz) , s2(mvsiz) , s3(mvsiz) ,
202 . s4(mvsiz) , s5(mvsiz) , s6(mvsiz) ,
203 . dxx(mvsiz) , dyy(mvsiz) , dzz(mvsiz) ,
204 . d4(mvsiz) , d5(mvsiz) , d6(mvsiz) ,
205 . jac1(mvsiz), jac2(mvsiz), jac3(mvsiz),
206 . jac4(mvsiz), jac5(mvsiz), jac6(mvsiz),
207 . vdx(mvsiz) , vdy(mvsiz) , vdz(mvsiz),ssp_eq(mvsiz),aire(mvsiz)
208C-----
209 my_real
210 . sti(mvsiz),wxx(mvsiz),wyy(mvsiz),wzz(mvsiz),conde(mvsiz)
211C
212 my_real
213 . muvoid(mvsiz)
214 my_real
215 . off(mvsiz) , rhoo(mvsiz), offg(mvsiz) ,
216 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
217 . x5(mvsiz), x6(mvsiz),
218 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
219 . y5(mvsiz), y6(mvsiz),
220 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
221 . z5(mvsiz), z6(mvsiz),
222 . vx1(mvsiz),vx2(mvsiz),vx3(mvsiz),vx4(mvsiz),
223 . vx5(mvsiz),vx6(mvsiz),
224 . vy1(mvsiz),vy2(mvsiz),vy3(mvsiz),vy4(mvsiz),
225 . vy5(mvsiz),vy6(mvsiz),
226 . vz1(mvsiz),vz2(mvsiz),vz3(mvsiz),vz4(mvsiz),
227 . vz5(mvsiz),vz6(mvsiz),
228 . px1(mvsiz),px2(mvsiz),px3(mvsiz),px4(mvsiz),
229 .
230 . py1(mvsiz),py2(mvsiz),py3(mvsiz),py4(mvsiz),
231 .
232 . pz1(mvsiz),pz2(mvsiz),pz3(mvsiz),pz4(mvsiz),
233 .
234 . px1h(mvsiz),px2h(mvsiz),px3h(mvsiz),
235 . py1h(mvsiz),py2h(mvsiz),py3h(mvsiz),
236 . pz1h(mvsiz),pz2h(mvsiz),pz3h(mvsiz),
237 . vgxa(mvsiz),vgya(mvsiz),vgza(mvsiz), vga2(mvsiz),
238 . xgxa(mvsiz),xgya(mvsiz),xgza(mvsiz),
239 . xgxya(mvsiz),xgyza(mvsiz),xgzxa(mvsiz),
240 . xgxa2(mvsiz),xgya2(mvsiz),xgza2(mvsiz)
241 my_real
242 . dxy(mvsiz),dyx(mvsiz),
243 . dyz(mvsiz),dzy(mvsiz),
244 . dzx(mvsiz),dxz(mvsiz),divde(mvsiz)
245 my_real
246 . r11(mvsiz),r12(mvsiz),r13(mvsiz),
247 . r21(mvsiz),r22(mvsiz),r23(mvsiz),
248 . r31(mvsiz),r32(mvsiz),r33(mvsiz),gama(mvsiz,6)
249C 12
250 my_real
251 . nu(mvsiz),volg(mvsiz),sigy(mvsiz),
252 . b1122(mvsiz),b1221(mvsiz),b2212(mvsiz),b1121(mvsiz),
253 . b1122h(mvsiz),b1221h(mvsiz),b2212h(mvsiz),b1121h(mvsiz),
254 . b1x(mvsiz,2),b1y(mvsiz,2),b2x(mvsiz,2),b2y(mvsiz,2),
255 . b1xh(mvsiz,2),b1yh(mvsiz,2),b2xh(mvsiz,2),b2yh(mvsiz,2),
256 . dcxx(mvsiz),dcxy(mvsiz),dcxz(mvsiz),dcyx(mvsiz),dcyy(mvsiz),
257 . dcyz(mvsiz),dczx(mvsiz),dczy(mvsiz),dczz(mvsiz),dc4(mvsiz),
258 . dc5(mvsiz),dc6(mvsiz),vzl(mvsiz),jaci33(mvsiz),
259 . dhxx(mvsiz),dhxy(mvsiz),dhyx(mvsiz),dhyy(mvsiz),dhyz(mvsiz),
260 . dhzx(mvsiz),dhzy(mvsiz),dhzz(mvsiz),dh4(mvsiz),dhxz(mvsiz),
261 . dh5(mvsiz),dh6(mvsiz),ddhv(mvsiz),dd(mvsiz,6),
262 . sigzm(mvsiz),volm(mvsiz),usb(mvsiz),et(mvsiz),
263 . r1_free(mvsiz),r3_free(mvsiz),
264 . stin(mvsiz),bid(mvsiz),dsv(mvsiz),alpha_e(mvsiz),llsh(mvsiz)
265C
266 INTEGER PID,MTN0,IPTHK,IPPOS,IPMAT,NLYMAX,MID,IPANG,IOFFS
267 INTEGER MXT0(MVSIZ),NN_DEL,IPRES,ISCTL,ISTAB(MVSIZ)
268 my_real
269 . dir(mvsiz,2),sign(nel,6),shf(mvsiz),zt,wt,offs(mvsiz),
270 . rx(mvsiz), ry(mvsiz), rz(mvsiz),nu1(mvsiz),fac(mvsiz),
271 . sx(mvsiz), sy(mvsiz), sz(mvsiz),
272 . tx(mvsiz), ty(mvsiz), tz(mvsiz),e0(mvsiz),
273 . n1x(mvsiz), n2x(mvsiz), n3x(mvsiz),
274 . n1y(mvsiz), n2y(mvsiz), n3y(mvsiz),
275 . n1z(mvsiz), n2z(mvsiz), n3z(mvsiz),
276 . n4x(mvsiz), n5x(mvsiz), n6x(mvsiz),
277 . n4y(mvsiz), n5y(mvsiz), n6y(mvsiz),
278 . n4z(mvsiz), n5z(mvsiz), n6z(mvsiz),amu(mvsiz),area(mvsiz)
279 my_real them(mvsiz,6),tempel(mvsiz),die(mvsiz),conden(mvsiz)
280 my_real, dimension(mvsiz) :: fheat
281 DOUBLE PRECISION
282 . VOLDP(MVSIZ),FACDP
283 INTEGER INLOC,L_NLOC,IPOS(6),INOD(6)
284 iNTEGER SZ_R1_FREE,SZ_IX
285 my_real, DIMENSION(:,:), ALLOCATABLE :: var_reg
286 my_real, DIMENSION(:), POINTER :: dnl
287 my_real :: sti_c(mvsiz),ll(mvsiz),fld(mvsiz),
288 . cns2,fqmax,dn
289C-----
290 TYPE(G_BUFEL_) ,POINTER :: GBUF
291 TYPE(L_BUFEL_) ,POINTER :: LBUF
292C-----------------------------------------------
293 my_real
294 . w_gauss(9,9),a_gauss(9,9)
295 DATA w_gauss /
296 1 2. ,0. ,0. ,
297 1 0. ,0. ,0. ,
298 1 0. ,0. ,0. ,
299 2 1. ,1. ,0. ,
300 2 0. ,0. ,0. ,
301 2 0. ,0. ,0. ,
302 3 0.555555555555556,0.888888888888889,0.555555555555556,
303 3 0. ,0. ,0. ,
304 3 0. ,0. ,0. ,
305 4 0.347854845137454,0.652145154862546,0.652145154862546,
306 4 0.347854845137454,0. ,0. ,
307 4 0. ,0. ,0. ,
308 5 0.236926885056189,0.478628670499366,0.568888888888889,
309 5 0.478628670499366,0.236926885056189,0. ,
310 5 0. ,0. ,0. ,
311 6 0.171324492379170,0.360761573048139,0.467913934572691,
312 6 0.467913934572691,0.360761573048139,0.171324492379170,
313 6 0. ,0. ,0. ,
314 7 0.129484966168870,0.279705391489277,0.381830050505119,
315 7 0.417959183673469,0.381830050505119,0.279705391489277,
316 7 0.129484966168870,0. ,0. ,
317 8 0.101228536290376,0.222381034453374,0.313706645877887,
318 8 0.362683783378362,0.362683783378362,0.313706645877887,
319 8 0.222381034453374,0.101228536290376,0. ,
320 9 0.081274388361574,0.180648160694857,0.260610696402935,
321 9 0.312347077040003,0.330239355001260,0.312347077040003,
322 9 0.260610696402935,0.180648160694857,0.081274388361574/
323 DATA a_gauss /
324 1 0. ,0. ,0. ,
325 1 0. ,0. ,0. ,
326 1 0. ,0. ,0. ,
327 2 -.577350269189626,0.577350269189626,0. ,
328 2 0. ,0. ,0. ,
329 2 0. ,0. ,0. ,
330 3 -.774596669241483,0. ,0.774596669241483,
331 3 0. ,0. ,0. ,
332 3 0. ,0. ,0. ,
333 4 -.861136311594053,-.339981043584856,0.339981043584856,
334 4 0.861136311594053,0. ,0. ,
335 4 0. ,0. ,0. ,
336 5 -.906179845938664,-.538469310105683,0. ,
337 5 0.538469310105683,0.906179845938664,0. ,
338 5 0. ,0. ,0. ,
339 6 -.932469514203152,-.661209386466265,-.238619186083197,
340 6 0.238619186083197,0.661209386466265,0.932469514203152,
341 6 0. ,0. ,0. ,
342 7 -.949107912342759,-.741531185599394,-.405845151377397,
343 7 0. ,0.405845151377397,0.741531185599394,
344 7 0.949107912342759,0. ,0. ,
345 8 -.960289856497536,-.796666477413627,-.525532409916329,
346 8 -.183434642495650,0.183434642495650,0.525532409916329,
347 8 0.796666477413627,0.960289856497536,0. ,
348 9 -.968160239507626,-.836031107326636,-.613371432700590,
349 9 -.324253423403809,0. ,0.324253423403809,
350 9 0.613371432700590,0.836031107326636,0.968160239507626/
351C-----------------------------------------------
352C S o u r c e L i n e s
353C=======================================================================
354 mtn0 = 0
355 nlymax= 0
356 ipang = 0
357 ipthk = 0
358 ippos = 0
359 ipmat = 0
360
361 gbuf => elbuf_tab(ng)%GBUF
362 nlay = elbuf_tab(ng)%NLAY
363 ir = 1
364 is = 1
365 it = 1
366 inloc = iparg(78,ng)
367 ALLOCATE(var_reg(nel,nlay))
368 sz_r1_free=mvsiz
369 sz_ix=numelq+numels+nsvois
370C-----------
371 ibid = 0
372 ibidon(1) = 0
373 IF (igtyp /= 22) THEN
374 isorthg = 0
375 END IF
376C-----------
377 nf1=nft+1
378C--------------------------
379C-----------
380 IF (isorth > 0) THEN
381 CALL sgparav3(
382 1 6, x, ixs(1,nf1),rx,
383 2 ry, rz, sx, sy,
384 3 sz, tx, ty, tz,
385 4 nel)
386 ENDIF
387C-----------------------------------------------------------
388C Gather nodal variables and compute intinsic rotations
389C-----------------------------------------------------------
390 CALL s6rcoor3(x,ixs(1,nf1),v,w,gbuf%GAMA,gama,
391 . x1, x2, x3, x4, x5, x6,
392 . y1, y2, y3, y4, y5, y6,
393 . z1, z2, z3, z4, z5, z6,
394 . vx1, vx2, vx3, vx4, vx5, vx6,
395 . vy1, vy2, vy3, vy4, vy5, vy6,
396 . vz1, vz2, vz3, vz4, vz5, vz6,
397 . vd2,vis,gbuf%OFF,offg,gbuf%SMSTR,gbuf%RHO,rhoo,
398 . r11, r12, r13, r21, r22, r23, r31, r32, r33,
399 . nc1,nc2,nc3,nc4,nc5,nc6,ngl,mxt,ngeo,
400 . ioutprt, vgxa, vgya, vgza, vga2,dd,
401 . nel, xgxa, xgya, xgza,xgxa2,xgya2,xgza2,
402 . xgxya,xgyza,xgzxa,iparg(1,ng),gbuf%GAMA_R)
403C
404 nn_del = 0
405 pid = ngeo(1)
406 IF (geo(190,pid)+geo(191,pid)+geo(192,pid)+geo(192,pid)>zero)
407 . nn_del=6
408 IF (nn_del ==0 .AND. dt%IDEL_BRICK>0) nn_del=6
409 mx = mxt(1)
410 c1 =pm(32,mx)
411 ipres = mat_elem%MAT_PARAM(mx)%IPRES
412 isctl = igeo(97,pid)
413 DO i=1,nel
414 sigzm(i) = zero
415 volm(i) = zero
416 nu(i)=min(half,pm(21,mx))
417 e0(i) =three*(one-two*nu(i))*c1
418 usb(i)=em01/c1
419 stin(i)=zero
420 conden(i)= zero
421 ENDDO
422C
423 IF (icp==1) THEN
424 DO i=1,nel
425 nu1(i)=half
426 ENDDO
427 ELSEIF (icp==2) THEN
428 CALL s8csigp3(gbuf%SIG,e0 ,gbuf%PLA,fac,gbuf%G_PLA,nel)
429 DO i=1,nel
430 nu1(i)=nu(i)+(half-nu(i))*fac(i)
431 ENDDO
432 ELSE
433 DO i=1,nel
434 nu1(i) =nu(i)
435 ENDDO
436 ENDIF
437C
438 CALL s6cderi3(
439 1 offg, voln, ngl, x1,
440 2 x2, x3, x4, x5,
441 3 x6, y1, y2, y3,
442 4 y4, y5, y6, z1,
443 5 z2, z3, z4, z5,
444 6 z6, px1, px2, px3,
445 7 px4, py1, py2, py3,
446 8 py4, pz1, pz2, pz3,
447 9 pz4, px1h, px2h, px3h,
448 a py1h, py2h, py3h, pz1h,
449 b pz2h, pz3h, jac1, jac2,
450 c jac3, jac4, jac5, jac6,
451 d jaci33, b1x, b1y, b2y,
452 e b2x, b1122, b1221, b2212,
453 f b1121, b1xh, b1yh, b2xh,
454 g b2yh, b1122h, b1221h, b2212h,
455 h b1121h, vzl, volg, gbuf%SMSTR,
456 i gbuf%OFF, nel, ismstr)
457 CALL sdlen3(
458 1 volg, deltax, x1, x2,
459 2 x5, x4, x3, x3,
460 3 x6, x6, y1, y2,
461 4 y5, y4, y3, y3,
462 5 y6, y6, z1, z2,
463 6 z5, z4, z3, z3,
464 7 z6, z6, n1x, n2x,
465 8 n3x, n4x, n5x, n6x,
466 9 n1y, n2y, n3y, n4y,
467 a n5y, n6y, n1z, n2z,
468 b n3z, n4z, n5z, n6z,
469 c nel, mtn, jale, jeul)
470 IF (ntsheg > 0.AND.isctl == 0) THEN
471 CALL sdlensh3n(volg,llsh,area ,
472 . x1, x2, x3, x4, x5, x6,
473 . y1, y2, y3, y4, y5, y6,
474 . z1, z2, z3, z4, z5, z6,nel)
475 alpha_e(1:nel) = one
476 DO i=1,nel
477 IF (gbuf%IDT_TSH(i)<=0) cycle
478 facdp = 1.343*llsh(i)/deltax(i)
479 alpha_e(i) = facdp*facdp
480 deltax(i)=max(llsh(i),deltax(i))
481 ENDDO
482 END IF
483 CALL s6cdefc3(
484 1 px1, px2, px3, px4,
485 2 py1, py2, py3, py4,
486 3 pz1, pz2, pz3, pz4,
487 4 vx1, vx2, vx3, vx4,
488 5 vx5, vx6, vy1, vy2,
489 6 vy3, vy4, vy5, vy6,
490 7 vz1, vz2, vz3, vz4,
491 8 vz5, vz6, dcxx, dcxy,
492 9 dcxz, dcyx, dcyy, dcyz,
493 a dczx, dczy, dczz, dc4,
494 b dc5, dc6, wxx, wyy,
495 c wzz, dhxx, dhxy, dhxz,
496 d dhyx, dhyy, dhyz, dhzx,
497 e dhzy, dhzz, dh4, dh5,
498 f dh6, px1h, px2h, px3h,
499 g py1h, py2h, py3h, pz1h,
500 h pz2h, pz3h, jaci33, b1x,
501 i b1y, b2y, b2x, b1122,
502 j b1221, b2212, b1121, b1xh,
503 k b1yh, b2xh, b2yh, b1122h,
504 l b1221h, b2212h, b1121h, ddhv,
505 m nu1, nel)
506 CALL s6czero3(
507 1 f11, f21, f31, f12,
508 2 f22, f32, f13, f23,
509 3 f33, f14, f24, f34,
510 4 f15, f25, f35, f16,
511 5 f26, f36, gbuf%SIG, gbuf%EINT,
512 6 gbuf%RHO, gbuf%QVIS, gbuf%PLA, gbuf%EPSD,
513 7 gbuf%G_PLA, gbuf%G_EPSD,nel,nlay)
514C ------------------------------------------------------------------------------
515C Update reference configuration (possible future change to small strain option)
516C -------------------------------------------------------------------------------
517 IF (ismstr <= 3.OR.(ismstr==4.AND.jlag>0)) THEN
518 CALL s6sav3(
519 1 gbuf%OFF, gbuf%SMSTR,x1, x2,
520 2 x3, x4, x5, x6,
521 3 y1, y2, y3, y4,
522 4 y5, y6, z1, z2,
523 5 z3, z4, z5, z6,
524 6 nel)
525 END IF !(ISMSTR <= 3) THEN
526c
527 IF (isorth > 0) THEN
528 pid = ngeo(1)
529 IF (igtyp == 21) THEN
530 CALL sgetdir3(nel,rx,ry,rz,tx,ty,tz,
531 . r11,r21,r31,r12,r22,r32,
532 . gbuf%GAMA,dir,irep)
533 ENDIF
534 IF (igtyp == 22) THEN
535 nlymax= 200
536 ipang = 200
537 ipthk = ipang+nlymax
538 ippos = ipthk+nlymax
539 ipmat = 100
540 mtn0=mtn
541 DO i=1,nel
542 mxt0(i)=mxt(i)
543 shf(i)=geo(38,ngeo(i))
544 ENDDO
545 ENDIF
546 ENDIF
547c
548C---------------------------------------------------------
549C Compute non-local variable increment at each Gauss point
550C---------------------------------------------------------
551 IF (inloc > 0) THEN
552 l_nloc = nloc_dmg%L_NLOC
553 dnl => nloc_dmg%DNL(1:l_nloc) ! DNL = non local variable increment
554 DO ilay=1,nlay
555 DO i=1,nel
556 inod(1) = nloc_dmg%IDXI(nc1(i))
557 inod(2) = nloc_dmg%IDXI(nc2(i))
558 inod(3) = nloc_dmg%IDXI(nc3(i))
559 inod(4) = nloc_dmg%IDXI(nc4(i))
560 inod(5) = nloc_dmg%IDXI(nc5(i))
561 inod(6) = nloc_dmg%IDXI(nc6(i))
562 DO j = 1,6
563 ipos(j) = nloc_dmg%POSI(inod(j))+ilay-1
564 ENDDO
565 var_reg(i,ilay) = dnl(ipos(1)) + dnl(ipos(2)) + dnl(ipos(3)) +
566 . dnl(ipos(4)) + dnl(ipos(5)) + dnl(ipos(6))
567 var_reg(i,ilay) = var_reg(i,ilay)*one_over_6
568 ENDDO
569 ENDDO
570 ENDIF
571C---------------------------------------------------------
572c
573C--------------------------------------
574C Constant stress through the thickness
575C--------------------------------------
576 DO ilay=1,nlay
577 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
578 IF (igtyp == 22) THEN
579 mid=igeo(ipmat+ilay,pid)
580 mtn=nint(pm(19,mid))
581 ENDIF
582 DO i=1,nel
583 sigzm(i) = sigzm(i)+lbuf%VOL(i)*lbuf%SIG(i+2*nel)
584 volm(i) = volm(i) +lbuf%VOL(i)
585 ENDDO
586 ENDDO
587 IF (dt1 == zero) THEN
588 dti =zero
589 ELSE
590 dti = one/dt1
591 ENDIF
592C-------------------------------------------
593C Element temperature
594C-------------------------------------------
595 tempel(:) = zero
596 fheat(:) = zero
597 IF (jthe < 0) THEN
598 DO i=1,nel
599 tempel(i) = one_over_6 *(temp(nc1(i)) + temp(nc2(i))
600 . + temp(nc3(i)) + temp(nc4(i))
601 . + temp(nc5(i)) + temp(nc6(i)))
602 gbuf%TEMP(i) = tempel(i)
603 ENDDO
604 ENDIF
605 ioffs=0
606 DO i=1,nel
607 offs(i) = ep20
608 ENDDO
609 IF (jthe < 0) them(1:nel,1:6) = zero
610C---------------------------------------------
611C Loop on integration points through thickness
612C---------------------------------------------
613 DO ilay=1,nlay
614 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
615 IF (igtyp == 22) THEN
616 zt = geo(ippos+ilay,pid)
617 wt = geo(ipthk+ilay,pid)
618 mid=igeo(ipmat+ilay,pid)
619 mtn=nint(pm(19,mid))
620 DO i=1,nel
621 mxt(i)=mid
622 ENDDO
623 ELSE
624 zt = a_gauss(ilay,nlay)
625 wt = w_gauss(ilay,nlay)
626 ENDIF
627C
628 CALL scdefo3(
629 1 dxx, dxy, dxz, dyx,
630 2 dyy, dyz, dzx, dzy,
631 3 dzz, d4, d5, d6,
632 4 dcxx, dcxy, dcxz, dcyx,
633 5 dcyy, dcyz, dczx, dczy,
634 6 dczz, dc4, dc5, dc6,
635 7 dhxx, dhxy, dhxz, dhyx,
636 8 dhyy, dhyz, dhzx, dhzy,
637 9 dhzz, dh4, dh5, dh6,
638 a zt, wt, vzl, voln,
639 b volg, lbuf%VOL, ddhv, lbuf%SIG,
640 c sigzm, volm, usb, lbuf%EINT,
641 d off, offg, dti, gbuf%OFF,
642 e dsv, lbuf%VOL0DP,voldp, ipres,
643 f nel )
644 DO i=1,nel
645 rhoo(i)= lbuf%RHO(i)
646 ENDDO
647 IF (isorth > 0) THEN
648 IF (igtyp == 22)
649 . CALL sgetdir3(nel,rx,ry,rz,tx,ty,tz,
650 . r11,r21,r31,r12,r22,r32,
651 . lbuf%GAMA,dir,irep)
652 CALL scordef3(nel,dxx,dyy,dzz,d4,d5,d6,dir)
653 IF (igtyp == 22) THEN
654 DO i=1,nel
655 d5(i)=shf(i)*d5(i)
656 d6(i)=shf(i)*d6(i)
657 ENDDO
658 ENDIF
659 ENDIF
660C
661 divde(1:nel) = dt1*(dxx(1:nel)+ dyy(1:nel)+ dzz(1:nel))+dsv(1:nel)
662 CALL srho3(
663 1 pm, lbuf%VOL, lbuf%RHO, lbuf%EINT,
664 2 divde, flux(1,nf1),flu1(nf1), voln,
665 3 dvol, ngl, mxt, off,
666 4 0, gbuf%TAG22, voldp, lbuf%VOL0DP,
667 5 amu, gbuf%OFF, nel, mtn,
668 6 jale, ismstr, jeul, jlag)
669C
670C-----------------------------
671C Gather stresses
672C-----------------------------
673 CALL csmall3(lbuf%SIG,s1,s2,s3,s4,s5,s6,
674 . gbuf%OFF,off,nel)
675C------------------------------------------------------
676C Compute new stresses according to constitutive laws
677C------------------------------------------------------
678 current_layer=ilay ! one treatment pass LAY to negative
679 CALL mmain(timers, output,
680 1 elbuf_tab, ng, pm, geo,
681 2 ale_connect, ixs, iparg,
682 3 v, tf, npf, bufmat,
683 4 sti, x, dt2t, neltst,
684 5 ityptst, offset, nel, w,
685 6 off, ngeo, mxt, ngl,
686 7 voln, vd2, dvol, deltax,
687 8 vis, qvis, cxx, s1,
688 9 s2, s3, s4, s5,
689 a s6, dxx, dyy, dzz,
690 b d4, d5, d6, wxx,
691 c wyy, wzz, jac1, jac2,
692 d jac3, jac4, jac5, jac6,
693 e vdx, vdy, vdz, muvoid,
694 f ssp_eq, aire, sigy, et,
695 g r1_free, lbuf%PLA, r3_free, amu,
696 h dxx, dxy, dxz, dyx,
697 i dyy, dyz, dzx, dzy,
698 j dzz, ipm, gama, bid,
699 k bid, bid, bid, bid,
700 l bid, bid, istrain, tempel,
701 m die, iexpan, current_layer,mssa,
702 n dmels, ir, is, it,
703 o table, bid, bid, bid,
704 p bid, iparg(1,ng), igeo, conde,
705 q itask, nloc_dmg, var_reg(1,ilay),mat_elem,
706 r h3d_strain, jplasol, jsph, sz_r1_free,
707 * snpc, stf, sbufmat ,glob_therm,
708 * svis, sz_ix, iresp,
709 * n2d, th_strain, ngroup, tt,
710 . dt1, ntable, numelq, nummat,
711 . numgeo, numnod, numels,
712 . idel7nok, idtmin, maxfunc,
713 . imon_mat, userl_avail, impl_s,
714 . idyna, dt, fheat ,sensors, opt_mtn=mtn,opt_jcvt=jcvt,
715 . opt_isorth=isorth,opt_isorthg=isorthg)
716C
717 DO i=1,nel
718 stin(i) = stin(i)+sti(i)
719 ENDDO
720C
721 IF(glob_therm%NODADT_THERM == 1) THEN
722 DO i=1,nel
723 conden(i)= conden(i)+ conde(i)
724 ENDDO
725 ENDIF
726 IF (istrain == 1) THEN
727 CALL sstra3(
728 1 dxx, dyy, dzz, d4,
729 2 d5, d6, lbuf%STRA,wxx,
730 3 wyy, wzz, off, nel,
731 4 jcvt)
732 ENDIF
733C----------------------------
734C Internal forces
735C----------------------------
736 l_pla = elbuf_tab(ng)%BUFLY(ilay)%L_PLA
737 l_epsd = elbuf_tab(ng)%BUFLY(ilay)%L_EPSD
738 IF (isorth > 0) THEN
739 CALL scroto_sig(nel,lbuf%SIG,sign,dir)
740!! SCROTO() temporary replaced by (the same) SCROTO_SIG() in order to do not affect
741!! the other multidimensional buffer ARRAYS which are still not modified
742 CALL s6cfint3(
743 1 sign, px1, px2, px3,
744 2 px4, py1, py2, py3,
745 3 py4, pz1, pz2, pz3,
746 4 pz4, px1h, px2h, px3h,
747 5 py1h, py2h, py3h, pz1h,
748 6 pz2h, pz3h, jaci33, b1x,
749 7 b1y, b2y, b2x, b1122,
750 8 b1221, b2212, b1121, b1xh,
751 9 b1yh, b2xh, b2yh, b1122h,
752 a b1221h, b2212h, b1121h, f11,
753 b f21, f31, f12, f22,
754 c f32, f13, f23, f33,
755 d f14, f24, f34, f15,
756 e f25, f35, f16, f26,
757 f f36, voln, qvis, lbuf%EINT,
758 g lbuf%RHO, lbuf%QVIS, lbuf%PLA, lbuf%EPSD,
759 h gbuf%EPSD, gbuf%SIG, gbuf%EINT, gbuf%RHO,
760 i gbuf%QVIS, gbuf%PLA, zt, wt,
761 j volg, off, nu1, lbuf%VOL,
762 k gbuf%VOL, l_pla, l_epsd, nel,
763 l svis, gbuf%WPLA, lbuf%WPLA, gbuf%G_WPLA )
764 ELSE
765 CALL s6cfint3(
766 1 lbuf%SIG, px1, px2, px3,
767 2 px4, py1, py2, py3,
768 3 py4, pz1, pz2, pz3,
769 4 pz4, px1h, px2h, px3h,
770 5 py1h, py2h, py3h, pz1h,
771 6 pz2h, pz3h, jaci33, b1x,
772 7 b1y, b2y, b2x, b1122,
773 8 b1221, b2212, b1121, b1xh,
774 9 b1yh, b2xh, b2yh, b1122h,
775 a b1221h, b2212h, b1121h, f11,
776 b f21, f31, f12, f22,
777 c f32, f13, f23, f33,
778 d f14, f24, f34, f15,
779 e f25, f35, f16, f26,
780 f f36, voln, qvis, lbuf%EINT,
781 g lbuf%RHO, lbuf%QVIS, lbuf%PLA, lbuf%EPSD,
782 h gbuf%EPSD, gbuf%SIG, gbuf%EINT, gbuf%RHO,
783 i gbuf%QVIS, gbuf%PLA, a_gauss(ilay,nlay),w_gauss(ilay,nlay),
784 j volg, off, nu1, lbuf%VOL,
785 k gbuf%VOL, l_pla, l_epsd, nel,
786 l svis, gbuf%WPLA, lbuf%WPLA, gbuf%G_WPLA )
787 ENDIF ! IF (ISORTH > 0)
788C-------------------------
789C Finite element heat transfert
790C--------------------------
791 IF (jthe < 0) THEN
792 imat = mxt(1)
793 IF (mat_elem%MAT_PARAM(imat)%HEAT_FLAG == 1) THEN
794 CALL s6ctherm(
795 1 pm ,imat ,voln ,nc1 ,
796 2 nc2 ,nc3 ,nc4 ,nc5 ,
797 3 nc6 ,px1 ,px2 ,px3 ,
798 4 px4 ,py1 ,py2 ,py3 ,
799 5 py4 ,pz1 ,pz2 ,pz3 ,
800 6 pz4 ,dt1 ,temp ,tempel ,
801 7 fheat ,them ,gbuf%OFF ,lbuf%OFF ,
802 8 nel ,glob_therm%THEACCFACT)
803 ELSE
804 END IF
805 CALL s6ctherm(
806 1 pm ,imat ,voln ,nc1 ,
807 2 nc2 ,nc3 ,nc4 ,nc5 ,
808 3 nc6 ,px1 ,px2 ,px3 ,
809 4 px4 ,py1 ,py2 ,py3 ,
810 5 py4 ,pz1 ,pz2 ,pz3 ,
811 6 pz4 ,dt1 ,temp ,tempel ,
812 7 die ,them ,gbuf%OFF ,lbuf%OFF ,
813 8 nel ,glob_therm%THEACCFACT)
814 ENDIF
815 DO i=1,nel
816 offg(i)=min(offg(i),off(i))
817 IF (lbuf%OFF(i) > one .AND. gbuf%OFF(i) == one) THEN
818 offs(i) = min(lbuf%OFF(i),offs(i))
819 ioffs = 1
820 END IF
821 ENDDO
822C-----------------------------
823 ENDDO ! ILAY=1,NLAY
824C-----------------------------
825c
826C-------------------------------
827C Non-local specific computation
828C-------------------------------
829 IF (inloc > 0) THEN
830 ! Computation of thickshell area
831 CALL sdlensh3n(volg,llsh,area ,
832 . x1, x2, x3, x4, x5, x6,
833 . y1, y2, y3, y4, y5, y6,
834 . z1, z2, z3, z4, z5, z6,nel)
835 ! Non-local internal forces
836 CALL s6cfint_reg(
837 1 nloc_dmg ,var_reg ,nel ,off ,
838 2 volg ,nc1 ,nc2 ,nc3 ,
839 3 nc4 ,nc5 ,nc6 ,px1 ,
840 4 px2 ,px3 ,px4 ,py1 ,
841 5 py2 ,py3 ,py4 ,pz1 ,
842 6 pz2 ,pz3 ,pz4 ,mxt(lft),
843 7 itask ,dt2t ,gbuf%VOL,nft ,
844 8 nlay ,w_gauss ,a_gauss ,area ,
845 9 elbuf_tab(ng)%NLOCTS(1,1))
846 ENDIF
847C--------------------------
848c
849 IF (ioffs == 1) THEN
850 DO i=1,nel
851 IF (offs(i)<=two)gbuf%OFF(i) = offs(i)
852 END DO
853 DO ilay=1,nlay
854 lbuf => elbuf_tab(ng)%BUFLY(ilay)%LBUF(ir,is,it)
855 IF (igtyp == 22) THEN
856 mid=igeo(ipmat+ilay,pid)
857 mtn=nint(pm(19,mid))
858 ENDIF
859 DO i=1,nel
860 IF (gbuf%OFF(i) > one) lbuf%OFF(i)=gbuf%OFF(i)
861 END DO
862 END DO
863 END IF
864 IF (igtyp == 22) THEN
865 mtn = mtn0 !MTN0 may not be initialized if ISORTH == 0
866 DO i=1,nel
867 mxt(i)=mxt0(i)
868 ENDDO
869 ENDIF
870 IF ( nn_del> 0) THEN
871 CALL sdlensh3n2(volg,llsh,area ,
872 . x1, x2, x3, x4, x5, x6,
873 . y1, y2, y3, y4, y5, y6,
874 . z1, z2, z3, z4, z5, z6, nel)
875 CALL tshgeodel3(ngl,gbuf%OFF,volg,area,gbuf%VOL,
876 . llsh,geo(1,pid),nn_del,dt,nel )
877 ENDIF
878C-----------------------------
879C Hourglass
880C-----------------------------
881 IF ( impl_s == 0) THEN
882 IF (isctl > 0) THEN
883 dn = geo(13,pid)
884 CALL s6chour_ctl(
885 . x1, x2, x3, x4, x5, x6,
886 . y1, y2, y3, y4, y5, y6,
887 . z1, z2, z3, z4, z5, z6,
888 . vx1, vx2, vx3, vx4, vx5, vx6,
889 . vy1, vy2, vy3, vy4, vy5, vy6,
890 . vz1, vz2, vz3, vz4, vz5, vz6,
891 . f11, f12, f13, f14, f15, f16,
892 . f21, f22, f23, f24, f25, f26,
893 . f31, f32, f33, f34, f35, f36,
894 . pm,npropm, nummat,mtn,mxt,dn,
895 . gbuf%RHO,volg,cxx,gbuf%HOURG,
896 . off,gbuf%VOL,gbuf%EINT,dt1,stin,nel)
897 ELSE
898C
899 CALL s6chour3(gbuf%RHO,volg,cxx,
900 . x1, x2, x3, x3, x4, x5, x6, x6,
901 . y1, y2, y3, y3, y4, y5, y6, y6,
902 . z1, z2, z3, z3, z4, z5, z6, z6,
903 . vz1, vz2, vz3, vz3, vz4, vz5, vz6, vz6,
904 . f31,f32,f33,f34,f35,f36,
905 . nu,gbuf%HOURG,off,gbuf%VOL,gbuf%EINT,nel)
906 END IF !(ISCTL > 0) THEN
907 ENDIF
908C-----------------------------
909C Small strain
910C-----------------------------
911 CALL smallb3(
912 1 gbuf%OFF,offg, nel, ismstr)
913C--------------------------------------
914C Balance per part in case of print out
915C--------------------------------------
916 iflag=mod(ncycle,ncpri)
917 IF (ioutprt>0) THEN
918 CALL s6cbilan(partsav,gbuf%EINT,gbuf%RHO,gbuf%RK ,gbuf%VOL,
919 . vgxa, vgya, vgza, vga2, volg,iparts,
920 . gresav,grth,igrth,gbuf%OFF,iexpan,gbuf%EINTTH,
921 . gbuf%FILL, xgxa, xgya, xgza,xgxa2,xgya2,xgza2,
922 . xgxya,xgyza,xgzxa,itask,iparg(1,ng),gbuf%OFF,
923 . sensors,nel,gbuf%G_WPLA,gbuf%WPLA)
924 ENDIF
925C--------------------------------
926C Convected frame to global frame
927C--------------------------------
928 CALL s6proj3(
929 1 x1, x2, x3, x4,
930 2 x5, x6, y1, y2,
931 3 y3, y4, y5, y6,
932 4 z1, z2, z3, z4,
933 5 z5, z6, f11, f12,
934 6 f13, f14, f15, f16,
935 7 f21, f22, f23, f24,
936 8 f25, f26, f31, f32,
937 9 f33, f34, f35, f36,
938 a dd, nel)
939 CALL vrrota3(
940 1 r11, r21, r31, r12,
941 2 r22, r32, r13, r23,
942 3 r33, f11, f21, f31,
943 4 nel)
944 CALL vrrota3(
945 1 r11, r21, r31, r12,
946 2 r22, r32, r13, r23,
947 3 r33, f12, f22, f32,
948 4 nel)
949 CALL vrrota3(
950 1 r11, r21, r31, r12,
951 2 r22, r32, r13, r23,
952 3 r33, f13, f23, f33,
953 4 nel)
954 CALL vrrota3(
955 1 r11, r21, r31, r12,
956 2 r22, r32, r13, r23,
957 3 r33, f14, f24, f34,
958 4 nel)
959 CALL vrrota3(
960 1 r11, r21, r31, r12,
961 2 r22, r32, r13, r23,
962 3 r33, f15, f25, f35,
963 4 nel)
964 CALL vrrota3(
965 1 r11, r21, r31, r12,
966 2 r22, r32, r13, r23,
967 3 r33, f16, f26, f36,
968 4 nel)
969C----------------------------
970C distortion control
971C----------------------------
972 IF (isctl > 0) THEN
973 alpha_e(1:nel) = one
974 CALL sdistor_ini(
975 1 nel ,sti_c ,npropm ,nummat ,
976 2 ismstr ,mxt ,istab ,pm ,
977 3 gbuf%SIG ,gbuf%RHO ,cxx ,offg ,
978 4 gbuf%OFF ,ll ,voln ,fld ,
979 5 cns2 ,fqmax )
980! all in global system
981 CALL s6get_xv(
982 . nc1, nc2, nc3,
983 . nc4, nc5, nc6,
984 . x1, x2, x3,
985 . x4, x5, x6,
986 . y1, y2, y3,
987 . y4, y5, y6,
988 . z1, z2, z3,
989 . z4, z5, z6,
990 . vx1, vx2, vx3,
991 . vx4, vx5, vx6,
992 . vy1, vy2, vy3,
993 . vy4, vy5, vy6,
994 . vz1, vz2, vz3,
995 . vz4, vz5, vz6,
996 . x, xdp, v,
997 . numnod, ismstr, nel )
998 CALL s6for_distor(
999 . x1, x2, x3,
1000 . x4, x5, x6,
1001 . y1, y2, y3,
1002 . y4, y5, y6,
1003 . z1, z2, z3,
1004 . z4, z5, z6,
1005 . vx1, vx2, x3,
1006 . vx4, vx5, x6,
1007 . vy1, vy2, y3,
1008 . vy4, vy5, y6,
1009 . vz1, vz2, z3,
1010 . vz4, vz5, z6,
1011 . f11, f12, f13,
1012 . f14, f15, f16,
1013 . f21, f22, f23,
1014 . f24, f25, f26,
1015 . f31, f32, f33,
1016 . f34, f35, f36,
1017 . stin, sti_c, fld,
1018 . cns2, ll , istab,
1019 . fqmax,gbuf%EINT_DISTOR,dt1,
1020 . nel )
1021 ENDIF
1022C----------------------------
1023 IF(nfilsol/=0) CALL s6fillopt(
1024 1 gbuf%FILL,sti, f11, f21,
1025 2 f31, f12, f22, f32,
1026 3 f13, f23, f33, f14,
1027 4 f24, f34, f15, f25,
1028 5 f35, f16, f26, f36,
1029 6 nel)
1030C----------------------------
1031C Assemble nodal forces
1032C----------------------------
1033 IF (iparit == 0) THEN
1034 CALL s6cumu3(
1035 1 gbuf%OFF,a, nc1, nc2,
1036 2 nc3, nc4, nc5, nc6,
1037 3 stifn, stin, f11, f21,
1038 4 f31, f12, f22, f32,
1039 5 f13, f23, f33, f14,
1040 6 f24, f34, f15, f25,
1041 7 f35, f16, f26, f36,
1042 8 nel, jthe, fthe, them,
1043 9 condn,conden, ifthe, icondn,
1044 . glob_therm%NODADT_THERM)
1045 ELSE
1046 CALL s6cumu3p(
1047 1 gbuf%OFF,stin, fsky, fsky,
1048 2 iads, f11, f21, f31,
1049 3 f12, f22, f32, f13,
1050 4 f23, f33, f14, f24,
1051 5 f34, f15, f25, f35,
1052 6 f16, f26, f36, nel,
1053 7 nft, jthe, fthesky, them,
1054 8 condnsky,conden,
1055 . glob_therm%NODADT_THERM)
1056 ENDIF
1057 IF (ntsheg > 0)
1058 + CALL scumualpha6(
1059 1 gbuf%OFF,alpha_e, nc1, nc2,
1060 2 nc3, nc4, nc5, nc6,
1061 3 nel)
1062C-----------
1063 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine csmall3(sig, s1, s2, s3, s4, s5, s6, offg, off, nel)
Definition csmall3.F:36
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
subroutine s6cbilan(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, offg, sensors, nel, g_wpla, wpla)
Definition s6cbilan.F:40
subroutine s6cdefc3(px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, vx1, vx2, vx3, vx4, vx5, vx6, vy1, vy2, vy3, vy4, vy5, vy6, vz1, vz2, vz3, vz4, vz5, vz6, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, d4, d5, d6, wxx, wyy, wzz, dhxx, dhxy, dhxz, dhyx, dhyy, dhyz, dhzx, dhzy, dhzz, dh4, dh5, dh6, px1h, px2h, px3h, py1h, py2h, py3h, pz1h, pz2h, pz3h, ji33, b1x, b1y, b2y, b2x, b1122, b1221, b2212, b1121, b1xh, b1yh, b2xh, b2yh, b1122h, b1221h, b2212h, b1121h, ddhv, nu, nel)
Definition s6cdefo3.F:51
subroutine s6cfint3(sig, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, px1h, px2h, px3h, py1h, py2h, py3h, pz1h, pz2h, pz3h, ji33, b1x, b1y, b2y, b2x, b1122, b1221, b2212, b1121, b1xh, b1yh, b2xh, b2yh, b1122h, b1221h, b2212h, b1121h, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, vol, qvis, eint, rho, q, epla, epsd, epsdm, sigm, eintm, rhom, qm, eplasm, zi, wi, volg, off, nu, vol0, vol0g, g_pla, g_epsd, nel, svis, g_wpla, l_wpla, g_wpla_flag)
Definition s6cfint3.F:50
subroutine s6cfint_reg(nloc_dmg, var_reg, nel, off, vol, nc1, nc2, nc3, nc4, nc5, nc6, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, imat, itask, dt2t, vol0, nft, nlay, ws, as, area, bufnlts)
Definition s6cfint_reg.F:41
subroutine s6chour3(rho, vol, ssp, x1, x2, x3, x4, x5, x6, x7, x8, y1, y2, y3, y4, y5, y6, y7, y8, z1, z2, z3, z4, z5, z6, z7, z8, vz1, vz2, vz3, vz4, vz5, vz6, vz7, vz8, f31, f32, f33, f35, f36, f37, nu, fhour, off, vol0, eint, nel)
Definition s6chourg3.F:35
subroutine sdlensh3n(nel, llsh3n, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6)
Definition s6cinit3.F:481
subroutine s6ctherm(pm, imat, vol, nc1, nc2, nc3, nc4, nc5, nc6, px1, px2, px3, px4, py1, py2, py3, py4, pz1, pz2, pz3, pz4, dt1, tempnc, tel, heat, fphi, offg, off, nel, theaccfact)
Definition s6ctherm.F:37
subroutine s6cumu3(offg, e, nc1, nc2, nc3, nc4, nc5, nc6, stifn, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, nel, jthe, fthe, them, condn, conde, ifthe, icondn, nodadt_therm)
Definition s6cumu3.F:40
subroutine s6cumu3p(offg, sti, fsky, fskyv, iads, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, nel, nft, jthe, fthesky, them, condnsky, conde, nodadt_therm)
Definition s6cumu3p.F:38
subroutine s6czero3(fx1, fy1, fz1, fx2, fy2, fz2, fx3, fy3, fz3, fx4, fy4, fz4, fx5, fy5, fz5, fx6, fy6, fz6, sigm, eintm, rhom, qm, eplasm, epsdm, g_pla, g_epsd, nel, nlay)
Definition s6czero3.F:37
subroutine s6fillopt(fill, sti, f11, f21, f31, f12, f22, f32, f13, f23, f33, f14, f24, f34, f15, f25, f35, f16, f26, f36, nel)
Definition s6fillopt.F:36
subroutine s6proj3(x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, vx1, vx2, vx3, vx4, vx5, vx6, vy1, vy2, vy3, vy4, vy5, vy6, vz1, vz2, vz3, vz4, vz5, vz6, di, nel)
Definition s6proj3.F:40
subroutine s6rcoor3(x, ixs, v, w, gama0, gama, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, vx1, vx2, vx3, vx4, vx5, vx6, vy1, vy2, vy3, vy4, vy5, vy6, vz1, vz2, vz3, vz4, vz5, vz6, vd2, vis, offg, off, sav, rho, rhoo, r11, r12, r13, r21, r22, r23, r31, r32, r33, nc1, nc2, nc3, nc4, nc5, nc6, ngl, mxt, ngeo, ioutprt, vgax, vgay, vgaz, vga2, di, nel, xgax, xgay, xgaz, xgxa2, xgya2, xgza2, xgxya, xgyza, xgzxa, iparg, gama_r)
Definition s6rcoor3.F:48
subroutine s6sav3(offg, sav, xd1, xd2, xd3, xd4, xd5, xd6, yd1, yd2, yd3, yd4, yd5, yd6, zd1, zd2, zd3, zd4, zd5, zd6, nel)
Definition s6sav3.F:36
subroutine s8csigp3(sig, e0, defp, fac, g_pla, nel)
Definition s8csigp3.F:32
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 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 scumualpha6(offg, alpha_e, nc1, nc2, nc3, nc4, nc5, nc6, nel)
Definition scumualpha6.F:34
subroutine sdlensh3n2(voln, llsh3n, area, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6, nel)
Definition sdlensh3n2.F:35
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:37
subroutine smallb3(offg, off, nel, ismstr)
Definition smallb3.F:45
subroutine sstra3(dxx, dyy, dzz, d4, d5, d6, strain, wxx, wyy, wzz, off, nel, jcvt)
Definition sstra3.F:47
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 srho3(pm, volo, rhon, eint, dxx, dyy, dzz, voln, dvol, mat)
Definition srho3.F:31
subroutine s6cderi3(nel, vol, geo, vzl, ngl, deltax, det, x1, x2, x3, x4, x5, x6, y1, y2, y3, y4, y5, y6, z1, z2, z3, z4, z5, z6)
Definition s6cderi3.F:39
subroutine tshgeodel3(ngl, offg, volg, area, volg0, l_sh, geo, nnod, dt, nel)
Definition tshgeodel3.F:36
subroutine vrrota3(r11, r12, r13, r21, r22, r23, r31, r32, r33, x1, y1, z1, nel)
Definition vrrota3.F:35