41 D F18, F28, F38, PX1H1,
42 E PX1H2, PX1H3, PX2H1, PX2H2,
43 F PX2H3, PX3H1, PX3H2, PX3H3,
44 G PX4H1, PX4H2, PX4H3, VOL,
45 I FHOUR,PARTSAV, IPARTS, NFT,
46 J MTN, JLAG, EANI , PID,
47 K IVECTOR ,DT1 , MAT, GEO,
48 L NEL ,ISCTL, STI ,CXX )
55#include "implicit_f.inc"
67#include "tabsiz_c.inc"
71 INTEGER,
INTENT(IN) :: NEL
72 INTEGER,
INTENT(IN) :: NFT
73 INTEGER,
INTENT(IN) :: MTN
74 INTEGER,
INTENT(IN) :: JLAG,IVECTOR
75 INTEGER,
INTENT(IN) :: ISCTL
76 INTEGER,
DIMENSION(MVSIZ) :: MAT,PID
77 INTEGER,
DIMENSION(NUMELS) :: IPARTS
78 my_real,
DIMENSION(NPROPG,NUMGEO) ,
INTENT(IN):: GEO
79 my_real,
DIMENSION(NPROPM,NUMMAT) ,
INTENT(IN):: PM
80 my_real,
DIMENSION(NEL,3,4) ,
INTENT(INOUT):: FHOUR
81 my_real,
DIMENSION(NPSAV,NPART) ,
INTENT(INOUT):: PARTSAV
82 my_real,
DIMENSION(SEANI) ,
INTENT(INOUT):: EANI
83 my_real,
DIMENSION(NEL) ,
INTENT(IN):: RHO
84 my_real,
DIMENSION(MVSIZ) ,
INTENT(IN):: OFF,VOL,
85 . VX1,VX2,VX3,VX4,VX5,VX6,,VX8,
86 . VY1,VY2,VY3,VY4,VY5,VY6,VY7,VY8,
87 . VZ1,VZ2,VZ3,VZ4,VZ5,VZ6,VZ7,VZ8,
91 . px4h1, px4h2, px4h3,cxx
92 my_real,
DIMENSION(MVSIZ) ,
INTENT(INOUT)::
93 . f11,f21,f31,f12,f22,f32,
94 . f13,f23,f33,f14,f24,f34,
95 . f15,f25,f35,f16,f26,f36,
96 . f17,f27,f37,f18,f28,f38,sti
97 my_real,
INTENT(IN):: dt1
101 INTEGER I, FLUID,MX, J, II, IC, JST(MVSIZ+1)
104 . caq(mvsiz), fcl(mvsiz), fcq(mvsiz),ehou(mvsiz),
105 . h11(mvsiz), h12(mvsiz), h13
106 . h15(mvsiz), h16(mvsiz), h17(mvsiz), h18(mvsiz),
107 . h21(mvsiz), h22(mvsiz), h23(mvsiz), h24(mvsiz),
108 . h25(mvsiz), h26(mvsiz), h27(mvsiz), h28(mvsiz),
109 . h31(mvsiz), h32(mvsiz), h33(mvsiz), h34(mvsiz),
110 . h35(mvsiz), h36(mvsiz), h37(mvsiz), h38(mvsiz),
111 . hx1(mvsiz), hx2(mvsiz), hx3(mvsiz), hx4(mvsiz),
112 . hy1(mvsiz), hy2(mvsiz), hy3(mvsiz), hy4(mvsiz),
113 . hz1(mvsiz), hz2(mvsiz), hz3(mvsiz), hz4(mvsiz),
114 . hgx1(mvsiz), hgx2(mvsiz), hgx3(mvsiz), hgx4(mvsiz),
115 . hgy1(mvsiz), hgy2(mvsiz), hgy3(mvsiz), hgy4(mvsiz),
116 . hgz1(mvsiz), hgz2(mvsiz), hgz3(mvsiz), hgz4(mvsiz),
117 . g11(mvsiz),g21(mvsiz),g31(mvsiz),g41(mvsiz),
118 . g51(mvsiz),g61(mvsiz),g71(mvsiz),g81(mvsiz),
119 . g12(mvsiz),g22(mvsiz),g32(mvsiz),g42(mvsiz),
120 . g52(mvsiz),g62(mvsiz),g72(mvsiz),g82(mvsiz),
121 . g13(mvsiz),g23(mvsiz),g33(mvsiz),g43(mvsiz),
122 . g53(mvsiz),g63(mvsiz),g73(mvsiz),g83(mvsiz),
123 . e0,g0,c1,nu,ehourt ,qh,lamg,sfac,fdamp,dt05,
124 . lamgt(mvsiz),f_et(mvsiz),f_sti(mvsiz),e_max,s_max,fac1,sfac1
134 IF (isctl>0 .AND. nu>0.48999) qh = zep5*qh
135 lamgt(1:nel)=cxx(1:nel)*cxx(1:nel)*rho(1:nel)
140 lamg = third*(e0/(1-two*nu)+two*e0/(1+nu))
142 c1 = third*e0/(1-two*nu)
144 lamg = c1+four_over_3*g0
145 f_et(1:nel)=
max(one,lamgt(1:nel)/lamg)
146 f_gt(1:nel)=
max(one,(lamgt(1:nel)-c1)/g0/four_over_3)
148 lamg = c1+four_over_3*g0
151 lamg = c1+four_over_3*g0
152 f_et(1:nel)=
max(one,lamgt(1:nel)/lamg)
154 c1 = third*e0/(1-two*nu)
155 lamg = c1+four_over_3*g0
156 f_et(1:nel)=
max(one,lamgt(1:nel)/lamg)
158 IF (qh==one) qh = fourth
159 lamg = c1+four_over_3*g0
160 f_et(1:nel)=
max(one,qh*lamgt(1:nel)/lamg)
163 lamg = c1+four_over_3*g0
164 f_et(1:nel)=
max(one,lamgt(1:nel)/lamg)
167 f_sti(1:nel) =
max(one,qh)
169! special
case for stiffing
172 sfac1 =
min(ten,f_et(i))
173 IF (sfac1>two) sfac1=ten
174 f_et(i)=sfac1*f_et(i)
175 f_sti(i)=sfac1*f_sti(i)
177 ELSEIF (mtn==42.OR.mtn==
THEN
179 IF (f_et(i)>one)
THEN
180 sfac1 =
min(four,f_gt(i))
181 f_et(i)=sfac1*f_et(i)
182 f_sti(i)=sfac1*f_sti(i)
188 IF (mtn==1.OR.mtn==62)
THEN
194 fac1 = sfac*vol(i)**two_third
196 sfac1 =
min(ten,2500*e_max)
197 sfac1 =
max(one,sfac1)
198 f_et(i)=sfac1*f_et(i)
199 f_sti(i)=sfac1*f_sti(i)
203 IF (isctl==0) f_et(1:nel)=one
205 caq(i)=sfac*dt1*off(i)
206 fcl(i)=f_et(i)*caq(i)*vol(i)**third
207 sti(i)=f_sti(i)*sti(i)
221 & g11(i)*vx1(i)+g21(i)*vx2(i)+g31(i)*vx3(i)+g41(i)*vx4(i)
222 & +g51(i)*vx5(i)+g61(i)*vx6(i)+g71(i)*vx7(i)+g81(i)*vx8(i)
224 & g11(i)*vy1(i)+g21(i)*vy2(i)+g31(i)*vy3(i)+g41(i)*vy4(i)
225 & +g51(i)*vy5(i)+g61(i)*vy6(i)+g71(i)*vy7(i)+g81(i)*vy8(i)
227 & g11(i)*vz1(i)+g21(i)*vz2(i)+g31(i)*vz3(i)+g41(i)*vz4(i)
228 & +g51(i)*vz5(i)+g61(i)*vz6(i)+g71(i)*vz7(i)+g81(i)*vz8(i)
242 & g12(i)*vx1(i)+g22(i)*vx2(i)+g32(i)*vx3(i)+g42(i)*vx4(i)
243 & +g52(i)*vx5(i)+g62(i)*vx6(i)+g72(i)*vx7(i)+g82(i)*vx8(i)
245 & g12(i)*vy1(i)+g22(i)*vy2(i)+g32(i)*vy3(i)+g42(i)*vy4(i)
246 & +g52(i)*vy5(i)+g62(i)*vy6(i)+g72(i)*vy7(i)+g82(i)*vy8(i)
248 & g12(i)*vz1(i)+g22(i)*vz2(i)+g32(i)*vz3(i)+g42(i)*vz4(i)
249 & +g52(i)*vz5(i)+g62(i)*vz6(i)+g72(i)*vz7(i)+g82(i)*vz8(i)
262 & g13(i)*vx1(i)+g23(i)*vx2(i)+g33(i)*vx3(i)+g43(i)*vx4(i)
263 & +g53(i)*vx5(i)+g63(i)*vx6(i)+g73(i)*vx7(i)+g83(i)*vx8(i)
265 & g13(i)*vy1(i)+g23(i)*vy2(i)+g33(i)*vy3(i)+g43(i)*vy4(i)
266 & +g53(i)*vy5(i)+g63(i)*vy6(i)+g73(i)*vy7(i)+g83(i)*vy8(i)
268 & g13(i)*vz1(i)+g23(i)*vz2(i)+g33(i)*vz3(i)+g43(i)*vz4(i)
269 & +g53(i)*vz5(i)+g63(i)*vz6(i)+g73(i)*vz7(i)+g83(i)*vz8(i)
274 hgx4(i)=vx1(i)-vx2(i)+vx3(i)-vx4(i)-vx5(i)+vx6(i)-vx7(i)+vx8(i)
275 hgy4(i)=vy1(i)-vy2(i)+vy3(i)-vy4(i)-vy5(i)+vy6(i)-vy7(i)+vy8(i)
276 hgz4(i)=vz1(i)-vz2(i)+vz3(i)-vz4(i)-vz5(i)+vz6(i)-vz7(i)+vz8(i)
298 & hz1(i)*hgz1(i) + hz2(i)*hgz2(i) +
299 & hz3(i)*hgz3(i) + hz4(i)*hgz4(i
300 & hx1(i)*hgx1(i) + hx2
301 & hx3(i)*hgx3(i) + hx4(i)*hgx4(i) +
302 & hy1(i)*hgy1(i) + hy2(i)*hgy2
303 & hy3(i)*hgy3(i) + hy4(i)*hgy4(i) )
306 fhour(i,1:3,1:4) = fhour(i,1:3,1:4)*off(i)
311 fhour(i,1,1) = fhour(i,1,1) + fcl(i)*hgx1(i)
312 fhour(i,1,2) = fhour(i,1,2) + fcl(i)*hgx2(i)
313 fhour(i,1,3) = fhour(i,1,3) + fcl(i)*hgx3(i)
315 fhour(i,2,1) = fhour(i,2,1) + fcl(i)*hgy1(i)
316 fhour(i,2,2) = fhour(i,2,2) + fcl(i)*hgy2(i)
317 fhour(i,2,3) = fhour(i,2,3) + fcl(i)*hgy3(i)
318 fhour(i,2,4) = fhour(i,2,4) + fcl(i)*hgy4(i)
319 fhour(i,3,1) = fhour(i,3,1) + fcl(i)*hgz1(i)
320 fhour(i,3,2) = fhour(i,3,2) + fcl(i)*hgz2(i)
321 fhour(i,3,3) = fhour(i,3,3) + fcl(i)*hgz3(i)
322 fhour(i,3,4) = fhour(i,3,4) + fcl(i)*hgz4(i)
342 f11(i) =-g11(i)*hx1(i)-g12(i)*hx2(i)-g13(i)*hx3(i)-hx4(i)
343 f12(i) =-g21(i)*hx1(i)-g22(i)*hx2(i
344 f13(i) =-g31(i)*hx1(i)-g32(i)*hx2(i)-g33(i)*hx3(i)-hx4(i)
345 f14(i) =-g41(i)*hx1(i)-g42(i)*hx2(i)-g43(i)*hx3(i)+hx4(i)
346 f15(i) =-g51(i)*hx1(i)-g52(i)*hx2(i)-g53(i)*hx3(i)+hx4(i)
347 f16(i) =-g61(i)*hx1(i)-g62(i)*hx2(i)-g63(i)*hx3(i)-hx4(i)
348 f17(i) =-g71(i)*hx1(i)-g72(i)*hx2(i)-g73(i)*hx3(i)+hx4(i)
349 f18(i) =-g81(i)*hx1(i)-g82(i)*hx2(i)-g83(i)*hx3(i)-hx4(i)
351 f21(i) =-g11(i)*hy1(i)-g12(i)*hy2(i)-g13(i)*hy3(i)-hy4(i)
352 f22(i) =-g21(i)*hy1(i)-g22(i)*hy2(i)-g23(i)*hy3(i)+hy4(i)
353 f23(i) =-g31(i)*hy1(i)-g32(i)*hy2(i)-g33(i)*hy3(i)-hy4(i)
354 f24(i) =-g41(i)*hy1(i)-g42(i)*hy2(i)-g43(i)*hy3(i)+hy4(i)
355 f25(i) =-g51(i)*hy1(i)-g52(i)*hy2(i)-g53(i)*hy3(i)+hy4(i)
356 f26(i) =-g61(i)*hy1(i)-g62(i)*hy2(i)-g63(i)*hy3(i)-hy4(i)
357 f27(i) =-g71(i)*hy1(i)-g72(i)*hy2(i)-g73(i)*hy3(i)+hy4(i)
358 f28(i) =-g81(i)*hy1(i)-g82(i)*hy2(i)-g83(i)*hy3(i)-hy4(i)
360 f31(i) =-g11(i)*hz1(i)-g12(i)*hz2(i)-g13(i)*hz3(i)-hz4(i)
361 f32(i) =-g21(i)*hz1(i)-g22(i)*hz2(i)-g23(i)*hz3(i)+hz4(i)
362 f33(i) =-g31(i)*hz1(i)-g32(i)*hz2(i)-g33(i)*hz3(i)-hz4(i)
363 f34(i) =-g41(i)*hz1(i)-g42(i)*hz2(i)-g43(i)*hz3(i)+hz4(i)
364 f35(i) =-g51(i)*hz1(i)-g52(i)*hz2(i)-g53(i)*hz3(i)+hz4(i)
365 f36(i) =-g61(i)*hz1(i)-g62(i)*hz2(i)-g63(i)*hz3(i)-hz4(i)
366 f37(i) =-g71(i)*hz1(i)-g72(i)*hz2(i)-g73(i)*hz3(i)+hz4(i)
367 f38(i) =-g81(i)*hz1(i)-g82(i)*hz2(i)-g83
371 ehou(i)= ehou(i) +dt05*(
372 & hz1(i)*hgz1(i) + hz2(i)*hgz2(i) +
373 & hz3(i)*hgz3(i) + hz4(i)*hgz4(i) +
374 & hx1(i)*hgx1(i) + hx2(i)*hgx2(i) +
375 & hx3(i)*hgx3(i) + hx4(i)*hgx4(i) +
376 & hy1(i)*hgy1(i) + hy2(i)*hgy2(i) +
377 & hy3(i)*hgy3(i) + hy4(i)*hgy4(i) )
382 ehourt= ehourt+ehou(i)
392 partsav(8,mx)=partsav(8,mx) + ehou(i)
398 IF (iparts(j)/=iparts(j-1))
THEN
406 IF (jst(ii+1)-jst(ii)>15)
THEN
407#include "vectorize.inc"
408 DO j=jst(ii),jst(ii+1)-1
409 partsav(8,mx)=partsav(8,mx) + ehou(j)
412 DO j=jst(ii),jst(ii+1)-1
413 partsav(8,mx)=partsav(8,mx) + ehou(j)
419 ehour = ehour + ehourt
422#include "vectorize.inc"
424 eani(nft+i) = eani(nft+i)+ehou(i)/
max(em30,rho(i)*vol(i))
subroutine s_hg5(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, partsav, iparts, nft, mtn, jlag, eani, pid, ivector, dt1, mat, geo, nel, isctl, sti, cxx)