54
55
56
58 use glob_therm_mod
59 USE prop_param_mod , only : n_var_igeo
60
61
62
63#include "implicit_f.inc"
64
65
66
67#include "mvsiz_p.inc"
68
69
70
71#include "param_c.inc"
72#include "com04_c.inc"
73#include "com08_c.inc"
74#include "scr06_c.inc"
75
76
77
78 INTEGER, INTENT(IN) :: ISMSTR
79 INTEGER, INTENT(IN) :: ITY
80 INTEGER, INTENT(IN) :: JSMS
81 INTEGER, INTENT(IN) :: JTUR
82 INTEGER, INTENT(IN) :: JTHE,NPG
83 INTEGER LFT,LLT,NFT,MTN, NUVAR,MAT(MVSIZ),NGL(MVSIZ),PID(MVSIZ),IPM(NPROPMI,NUMMAT),G_DT,NEL
84 INTEGER NELTST, ITYPTST,JLAG
86 my_real pm(npropm,nummat),off(*), sig(nel,6), eint(*),
87 . rho(*),qold(*), vol(*), uvar(*), bufmat(*),
88 . offg(*),stifn(*),geo(*) ,ssp(*) ,
89 . aire(*) ,voln(*) ,vd2(*) ,deltax(*) ,vis(*) , d1(*) ,
90 . d2(*) ,d3(*) ,pnew(*) ,psh(*) ,q(*) ,ssp_eq(*) ,
91 . wxx(mvsiz), wyy(mvsiz), wzz(mvsiz),rho0(mvsiz),
92 . mssa(*), dmels(*),sold1(*) ,sold2(*) ,sold3(*) ,
93 . sold4(*) ,sold5(*) ,sold6(*), dvol(mvsiz),conde(*),
94 . vol_avg(*),
dtel(*),d4(mvsiz),d5(mvsiz),d6(mvsiz),
95 . rhoref(*) ,rhosp(*)
96 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
97 type (glob_therm_) ,intent(inout) :: glob_therm
98 integer,dimension(n_var_igeo,numgeo),intent(in) :: igeo
99
100
101
103 . e1,e2,e3,e4,e5,e6,p2,bid1,bid2,bid3,c1(mvsiz),
104 . ep1(mvsiz),ep2(mvsiz),ep3(mvsiz),ep4(mvsiz),ep5(mvsiz),ep6(mvsiz),
105 . s1(mvsiz) ,s2(mvsiz) ,s3(mvsiz) ,s4(mvsiz) ,s5(mvsiz) ,s6(mvsiz),
106 . de1(mvsiz),de2(mvsiz),de3(mvsiz),de4(mvsiz),de5(mvsiz),de6(mvsiz),
107 . sv1(mvsiz),sv2(mvsiz),sv3(mvsiz),sv4(mvsiz),sv5(mvsiz),sv6(mvsiz),
108 . so1(mvsiz),so2(mvsiz),so3(mvsiz),so4(mvsiz),so5(mvsiz),so6(mvsiz)
109 INTEGER NPAR,IADBUF,I,IBID,MX
111
112
113
114 mx = mat(1)
115 npar = ipm(9,mx)
116 iadbuf = ipm(7,mx)
117 facq0 = one
118
119
120 DO i=lft,llt
121 vis(i) = zero
122 ep1(i) = d1(i)*off(i)
123 ep2(i) = d2(i)*off(i)
124 ep3(i) = d3(i)*off(i)
125 ep4(i) = d4(i)*off(i)
126 ep5(i) = d5(i)*off(i)
127 ep6(i) = d6(i)*off(i)
128 de1(i) = ep1(i)*dt1
129 de2(i) = ep2(i)*dt1
130 de3(i) = ep3(i)*dt1
131 de4(i) = ep4(i)*dt1
132 de5(i) = ep5(i)*dt1
133 de6(i) = ep6(i)*dt1
134 ENDDO
135 DO i=lft,llt
136 so1(i) = sig(i,1)
137 so2(i) = sig(i,2)
138 so3(i) = sig(i,3)
139 so4(i) = sig(i,4)
140 so5(i) = sig(i,5)
141 so6(i) = sig(i,6)
142 ENDDO
143
145 . tt,dt1,bufmat,
146 . rho0,rho ,voln,eint,
147 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
148 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
149 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
150 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
151 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
152 . ssp ,vis ,uvar,off ,ngl ,0 ,
153 . ipm ,mat ,wxx,wyy,wzz,mtn,deltax,
154 . aire)
155 DO i=lft,llt
156 sig(i,1) = s1(i)*off(i)
157 sig(i,2) = s2(i)*off(i)
158 sig(i,3) = s3(i)*off(i)
159 sig(i,4) = s4(i)*off(i)
160 sig(i,5) = s5(i)*off(i)
161 sig(i,6) = s6(i)*off(i)
162 svis(i,1)= sv1(i)*off(i)
163 svis(i,2)= sv2(i)*off(i)
164 svis(i,3)= sv3(i)*off(i)
165 svis(i,4)= sv4(i)*off(i)
166 svis(i,5)= sv5(i)*off(i)
167 svis(i,6)= sv6(i)*off(i)
168 ENDDO
169
170
171
172
174 1 pm, off, rho, bid1,
175 2 bid2, ssp, bid3, stifn,
176 3 dt2t, neltst, ityptst, aire,
177 4 offg, geo, pid, voln,
178 5 vd2, deltax, vis, d1,
179 6 d2, d3, pnew, psh,
180 7 mat, ngl, q, ssp_eq,
181 8 vol, mssa, dmels, igeo,
182 9 facq0, conde,
dtel, g_dt,
183 a ipm, rhoref, rhosp, nel,
184 b ity, ismstr, jtur, jthe,
185 c jsms, npg , glob_therm)
186
187 DO i=lft,llt
188 p2 = -(sold1(i)+sig(i,1)+sold2(i)+sig(i,2)+sold3(i)+sig(i,3))/three
189 eint(i)=eint(i)-(q(i)+qold(i)+p2)*dvol(i)*half
190 qold(i)=q(i)
191 ENDDO
192 IF(
ale%GLOBAL%INCOMP==0 .OR. jlag==1)
THEN
193 DO i=lft,llt
194 e1=d1(i)*svis(i,1)
195 e2=d2(i)*svis(i,2)
196 e3=d3(i)*svis(i,3)
197 e4=d4(i)*svis(i,4)
198 e5=d5(i)*svis(i,5)
199 e6=d6(i)*svis(i,6)
200 eint(i)=eint(i)+(e1+e2+e3+e4+e5+e6)*vol_avg(i)*dt1
201 ENDDO
202 ENDIF
203 DO i=lft,llt
204 eint(i)=eint(i)/vol(i)
205 ENDDO
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237 RETURN
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
subroutine mqviscb(pm, off, rho, rk, temp, ssp, re, sti, dt2t, neltst, ityptst, aire, offg, geo, pid, vol, vd2, deltax, vis, d1, d2, d3, pnew, psh, mat, ngl, qvis, ssp_eq, vol0, mssa, dmels, igeo, facq0, conde, dtel, g_dt, ipm, rhoref, rhosp, nel, ity, ismstr, jtur, jthe, jsms, npg, glob_therm)
subroutine sigeps46(nel, nuparam, nuvar, time, timestep, uparam, rho0, rho, volume, eint, epspxx, epspyy, epspzz, epspxy, epspyz, epspzx, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx, sigvxx, sigvyy, sigvzz, sigvxy, sigvyz, sigvzx, soundsp, viscmax, uvar, off, ngl, ipt, ipm, mat, wxx, wyy, wzz, mtn, deltax, aire)