38 SUBROUTINE mulaw(LFT ,LLT ,NFT ,MTN ,JCVT ,
39 2 PM ,OFF ,SIG ,EINT ,RHO ,
41 4 UVAR ,BUFMAT,TF ,NPF ,
42 5 IMAT ,NGL ,NUVAR ,NVARTMP,VARTMP,
44 8 WXX ,WYY ,WZZ ,JSPH ,SSP ,
46 A D2 ,D3 ,D4 ,D5 ,D6 ,
47 B DVOL ,SOLD1 ,SOLD2 ,SOLD3 ,SOLD4 ,
48 C SOLD5 ,SOLD6 ,RX ,RY ,RZ ,
49 D SX ,SY ,SZ ,TX ,TY ,
51 F MFXX ,MFXY ,MFXZ ,MFYX ,MFYY ,
52 G MFYZ ,MFZX ,MFZY ,MFZZ ,IPM ,
53 H ISORTH,NEL ,MATPARAM)
58 USE sigeps01_mod,
only : sigeps01
62#include "implicit_f.inc"
76 INTEGER LFT,LLT,NFT,MTN,NUVAR,JCVT,ISORTH,JSPH,ISMSTR,NEL,IMAT,NVARTMP
77 INTEGER NPF(*), NGL(MVSIZ),PID(MVSIZ),IPM(NPROPMI,NUMMAT)
80 . PM(NPROPM,NUMMAT), GAMA(*),
81 . OFF(*), SIG(NEL,6), STRAIN(NEL,6), EINT(*),
82 . RHO(*), VOL(*), UVAR(*), BUFMAT(*), TF(*),
83 . GEO(NPROPG,*),EPSD(MVSIZ),
84 . WXX(*), WYY(*), WZZ(*), SSP(*),
86 . SOLD1(MVSIZ) ,SOLD2(MVSIZ) ,SOLD3(MVSIZ) ,
87 . SOLD4(MVSIZ) ,SOLD5(MVSIZ) ,SOLD6(MVSIZ),
88 . D1(*) ,D2(*),D3(*),D4(*),D5(*),D6(*) ,
90 . RX(MVSIZ) ,RY(MVSIZ) ,RZ(MVSIZ),
91 . sx(mvsiz) ,sy(mvsiz) ,sz(mvsiz) ,
92 . tx(mvsiz) ,ty(mvsiz) ,tz(mvsiz) ,
93 . mfxx(*) ,mfxy(*) ,mfxz(*) ,mfyx(*) ,mfyy(*) ,mfyz(*) ,
94 . mfzx(*) ,mfzy(*) ,mfzz(*)
95 INTEGER ,
DIMENSION(NEL,NVARTMP) ,
INTENT(INOUT):: VARTMP
96 TYPE(MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MATPARAM
100 INTEGER I,J,NVPHAS, N0PHAS, NPH, IFLG,NPAR,
101 . IADBUF, NFUNC, IFUNC(100)
103 . EP1(MVSIZ), EP2(MVSIZ), EP3(MVSIZ),E7(MVSIZ),
104 . EP4(2*MVSIZ),EP5(2*MVSIZ),EP6(2*MVSIZ),
105 . S1(MVSIZ) ,S2(MVSIZ) ,S3(MVSIZ) ,
106 . S4(2*MVSIZ) ,S5(2*MVSIZ) ,S6(2*MVSIZ),
107 . DE1(MVSIZ),DE2(MVSIZ),DE3(MVSIZ),
108 . DE4(2*MVSIZ),DE5(2*MVSIZ),DE6(2*MVSIZ),
109 . SO1(MVSIZ),SO2(MVSIZ),SO3(MVSIZ),
110 . so4(2*mvsiz),so5(2*mvsiz),so6(2*mvsiz),
111 .es1(mvsiz),es2(mvsiz),es3(mvsiz),es4(mvsiz),es5(mvsiz),es6(mvsiz),
112 .sv1(mvsiz),sv2(mvsiz),sv3(mvsiz),sv4(mvsiz),sv5(mvsiz),sv6(mvsiz),
113 .r11(mvsiz),r12(mvsiz),r13(mvsiz),r21(mvsiz),r22(mvsiz),r23(mvsiz),
114 .r31(mvsiz),r32(mvsiz),r33(mvsiz)
115 my_real rho0(mvsiz),vol_avg(mvsiz)
116 my_real rbid, e1, e2, e3, e4, e5, e6, p2, time, timestep
119 timestep=one/float(nitrs)
125 ifunc(i) = ipm(10+i,imat)
172 strain(i,1)= strain(i,1) + de1(i)
173 strain(i,2)= strain(i,2) + de2(i)
174 strain(i,3)= strain(i,3) + de3(i)
175 strain(i,4)= strain(i,4) + de4(i)
176 strain(i,5)= strain(i,5) + de5(i)
177 strain(i,6)= strain(i,6) + de6(i)
187 IF (ismstr == 10.OR.ismstr == 12)
THEN
190 es1(i)=mfxx(i)*(two+mfxx(i))+mfxy(i)*mfxy(i)+mfxz(i)*mfxz(i)
191 es2(i)=mfyy(i)*(two+mfyy(i))+mfyx(i)*mfyx(i)+mfyz(i)*mfyz(i)
192 es3(i)=mfzz(i)*(two+mfzz(i))+mfzx(i)*mfzx(i)+mfzy(i)*mfzy(i)
193 es4(i)=two*(mfxy(i)+mfyx(i)+mfxx(i)*mfyx(i)+mfxy(i)*mfyy(i)+mfxz(i)*mfyz(i))
194 es6(i)=two*(mfxz(i)+mfzx(i)+mfxx(i)*mfzx(i)+mfxy(i)*mfzy(i)+mfxz(i)*mfzz(i))
195 es5(i)=two*(mfzy(i)+mfyz(i)+mfzx(i)*mfyx(i)+mfzy(i)*mfyy(i)+mfzz(i)*mfyz(i))
197 ELSEIF(ismstr == 11)
THEN
202 es4(i)=mfxy(i)+mfyx(i)
203 es6(i)=mfxz(i)+mfzx(i)
204 es5(i)=mfzy(i)+mfyz(i)
222 CALL sigeps01(llt ,pm(1,imat),npropm, rho,rho0,ismstr,
223 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
224 . es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
225 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
226 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
229 CALL sigeps35(llt ,npar,nuvar,nfunc,ifunc,
230 . npf ,tf ,time,timestep,bufmat(iadbuf),
231 . rho0,rho ,voln,eint,
232 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
233 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
234 . es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
235 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
236 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
237 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
238 . ssp ,vis ,uvar,off )
240 CALL sigeps37(llt ,npar,nuvar,nfunc,ifunc,
241 . npf ,tf ,time,timestep,bufmat(iadbuf),
242 . rho0,rho ,voln,eint,
243 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
244 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
245 . es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
246 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
247 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
248 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
249 . ssp ,vis ,uvar,off )
251 CALL sigeps38(llt ,npar,nuvar,nfunc,ifunc ,
252 . npf ,tf ,time,timestep,bufmat(iadbuf),
253 . rho0,rho ,voln ,eint ,
254 . ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
255 . de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
256 . es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
257 . so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
258 . s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
259 . sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
260 . ssp ,vis ,uvar,off ,
261 . rbid,ismstr,mfxx,mfxy,mfxz,mfyx,
262 . mfyy ,mfyz ,mfzx ,mfzy,mfzz)
264 CALL sigeps42(matparam(imat),llt ,nuvar,nfunc,ifunc ,
265 2 npf ,tf ,time,timestep,rho0,rho ,
266 3 ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
267 4 de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
268 5 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
269 6 so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
270 7 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
271 8 ssp ,vis ,uvar,off ,wxx ,wyy ,
272 a wzz ,ismstr,mfxx,mfxy,mfxz,mfyx,
273 . mfyy ,mfyz ,mfzx ,mfzy,mfzz)
276 CALL sigeps70(llt ,npar,nuvar,nfunc,ifunc,
277 2 npf ,tf ,time,timestep,bufmat,
278 3 rho0,rho ,voln,eint,nvartmp ,vartmp ,
279 4 de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
280 5 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
281 6 so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
282 7 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
283 8 sv1 ,sv2 ,sv3 ,sv4 ,sv5 ,sv6 ,
284 9 ssp ,vis ,uvar,off ,ngl ,
285 a pm ,ipm ,imat ,matparam(imat))
287 CALL sigeps90(llt ,npar,nuvar,nfunc,ifunc,
288 2 npf ,tf ,time,timestep,bufmat,
289 3 rho0,rho ,voln,eint,
290 4 ep1 ,ep2 ,ep3 ,ep4 ,ep5 ,ep6 ,
291 5 de1 ,de2 ,de3 ,de4 ,de5 ,de6 ,
292 6 es1 ,es2 ,es3 ,es4 ,es5 ,es6 ,
293 7 so1 ,so2 ,so3 ,so4 ,so5 ,so6 ,
294 8 s1 ,s2 ,s3 ,s4 ,s5 ,s6 ,
295 a ssp ,vis ,uvar,off ,ngl ,ismstr)
299 sig(i,1) = s1(i)*off(i)
300 sig(i,2) = s2(i)*off(i)
301 sig(i,3) = s3(i)*off(i)
302 sig(i,4) = s4(i)*off(i)
303 sig(i,5) = s5(i)*off(i)
304 sig(i,6) = s6(i)*off(i)
307 IF (ismstr == 1.OR.ismstr == 11)
THEN
313 vol_avg(i) = voln(i)- half*dvol(i)
317 p2 = -(sold1(i)+sig(i,1)+sold2(i)+sig(i,2)+sold3(i)+sig(i,3))
319 e1=d1(i)*(sold1(i)+sig(i,1)+p2)
320 e2=d2(i)*(sold2(i)+sig(i,2)+p2)
321 e3=d3(i)*(sold3(i)+sig(i,3)+p2)
322 e4=d4(i)*(sold4(i)+sig(i,4))
323 e5=d5(i)*(sold5(i)+sig(i,5))
324 e6=d6(i)*(sold6(i)+sig(i,6))
327 . +(e1+e2+e3+e4+e5+e6+e7(i))*vol_avg(i)*half
328 eint(i)=eint(i)/
max(vol(i),em20)