57
58
59
60 USE elbufdef_mod
61 use glob_therm_mod
62
63
64
65#include "implicit_f.inc"
66
67
68
69#include "mvsiz_p.inc"
70
71
72
73#include "com08_c.inc"
74#include "param_c.inc"
75
76
77
78 INTEGER, INTENT(IN) :: ISMSTR
79 INTEGER, INTENT(IN) :: JSMS
80 INTEGER, INTENT(IN) :: ITY
81 INTEGER, INTENT(IN) :: JTUR
82 INTEGER, INTENT(IN) :: JTHE
83 INTEGER, INTENT(IN) :: JHBE
84 INTEGER, INTENT(IN) :: JCVT
85 INTEGER, INTENT(IN) :: JSPH,NPG
86 INTEGER MAT(NEL),NGL(NEL),PID(NEL),G_DT, IPM(NPROPMI,*)
87 INTEGER NELTST,ITYPTST,OFFSET,NEL
90 . pm(npropm,*), off(nel), sig(nel,6), eint(nel), rho(nel), qold(nel),
91 . vol(nel), stifn(nel),offg(nel),geo(npropg,*), gama(mvsiz,6),
92 . voln(nel), vd2(nel), deltax(nel), ssp(nel), aire(nel), vis(nel),
93 . psh(nel), pnew(mvsiz),q(nel) ,ssp_eq(nel), dvol(nel),mumax(nel),
94 . d1(nel), d2(nel), d3(nel), d4(nel), d5(nel), d6(nel),
95 . mssa(nel), dmels(nel),d_max(nel),epsd(nel),
96 . rx(nel),ry(nel),rz(nel),sx(nel),sy(nel),sz(nel),
97 . sold1(nel),sold2(nel),sold3(nel),sold4(nel),
98 . sold5(nel), sold6(nel), conde(nel), vol_avg(nel),
dtel(nel),
99 . rhoref(*) ,rhosp(*)
100 my_real,
DIMENSION(MVSIZ,6),
INTENT(INOUT) :: svis
101 TYPE(L_BUFEL_) :: LBUF
102 type (glob_therm_) ,intent(inout) :: glob_therm
103
104
105
106 INTEGER I, IMAT,IBID,ISVIS
107 my_real e1, e2, e3, e4, e5, e6,bid1,bid2,bid3,facq0
108 my_real,
DIMENSION(NEL) :: r11,r12,r13,r21,r22,r23,r31,r32,r33,volg
109
110 isvis = 0
111 facq0 = one
112 imat = mat(1)
113
114
115
116 DO i=1,nel
117 epsd(i) =
max( abs(d1(i)), abs(d2(i)), abs(d3(i)),
118 . half*abs(d4(i)),half*abs(d5(i)),half*abs(d6(i)))
119 ENDDO
120
122 1 pm(1,imat),off, sig, eint,
123 2 lbuf%SIGA, lbuf%EPSA, gama, lbuf%DAM,
124 3 lbuf%ANG, lbuf%SF, lbuf%VK, lbuf%STRA,
125 4 lbuf%CRAK, lbuf%DSUM, lbuf%ROB, lbuf%SIGC,
126 5 lbuf%RK, lbuf%PLA, ngl, d1,
127 6 d2, d3, d4, d5,
128 7 d6, rx, ry, rz,
129 8 sx, sy, sz, lbuf%SEQ,
130 9 rho, lbuf%EPE, nel, r11,
131 a r12, r13, r21, r22,
132 b r23, r31, r32, r33,
133 c jcvt, jsph)
134
135
136
137 IF (pm(56,mat(1)) == one)
138 .
CALL m24anim(lbuf%DAM,lbuf%ANG,lbuf%DGLO,nel,
139 . r11,r12,r13,r21,r22,
140 . r23,r31,r32,r33)
141
142 IF (jhbe == 24)
CALL m24dmax(lbuf%DAM,d_max,nel)
143
144 DO i=1,nel
145 ssp(i)=sqrt(pm(24,imat)/pm(1,imat))
146 vis(i)=zero
147 ENDDO
148
149 IF(jsph==0)THEN
151 1 pm, off, rho, bid1,
152 2 bid2, ssp, bid3, stifn,
153 3 dt2t, neltst, ityptst, aire,
154 4 offg, geo, pid, voln,
155 5 vd2, deltax, vis, d1,
156 6 d2, d3, pnew, psh,
157 7 mat, ngl, q, ssp_eq,
158 8 vol, mssa, dmels, ibid,
159 9 facq0, conde,
dtel, g_dt,
160 a ipm, rhoref, rhosp, nel,
161 b ity, ismstr, jtur, jthe,
162 c jsms, npg , glob_therm)
163
164 volg(1:nel)=npg*voln(1:nel)
166 1 pm, off, rho, geo,
167 2 pid, ssp, aire, volg,
168 3 d1, d2, d3, d4,
169 4 d5, d6, mat, isvis,
170 5 rhoref, nel, svis)
171
172
173
174 DO 500 i=1,nel
175 e1=d1(i)*(sold1(i)+sig(i,1)+svis(i,1))
176 e2=d2(i)*(sold2(i)+sig(i,2)+svis(i,2))
177 e3=d3(i)*(sold3(i)+sig(i,3)+svis(i,3))
178 e4=d4(i)*(sold4(i)+sig(i,4)+svis(i,4))
179 e5=d5(i)*(sold5(i)+sig(i,5)+svis(i,5))
180 e6=d6(i)*(sold6(i)+sig(i,6)+svis(i,6))
181 eint(i)=eint(i)
182 . -(q(i)+qold(i))*dvol(i)*half
183 . +(e1+e2+e3+e4+e5+e6)*vol_avg(i)*dt1*half
184
185 eint(i)=eint(i)/vol(i)
186 qold(i)=q(i)
187 500 CONTINUE
188 ELSE
190 1 pm, off, rho, bid1,
191 2 bid2, bid3, stifn, dt2t,
192 3 neltst, ityptst, offg, geo,
193 4 pid, mumax, ssp, voln,
194 5 vd2, deltax, vis, d1,
195 6 d2, d3, pnew, psh,
196 7 mat, ngl, q, ssp_eq,
197 8 g_dt,
dtel, nel, ity,
198 9 jtur, jthe)
199
201 1 pm, off, rho, geo,
202 2 pid, ssp, aire, voln,
203 3 d1, d2, d3, d4,
204 4 d5, d6, mat, isvis,
205 5 rhoref, nel, svis)
206
207
208
209 DO 510 i=1,nel
210 e1=d1(i)*(sold1(i)+sig(i,1)+svis(i,1))
211 e2=d2(i)*(sold2(i)+sig(i,2)+svis(i
212 e3=d3(i)*(sold3(i)+sig(i,3)+svis(i,3))
213 e4=d4(i)*(sold4(i)+sig(i,4)+svis(i,4))
214 e5=d5(i)*(sold5(i)+sig(i,5)+svis(i,5))
215 e6=d6(i)*(sold6(i)+sig(i,6)+svis(i,6))
216 eint(i)=eint(i)+(e1+e2+e3+e4+e5+e6)*vol_avg(i)*dt1*half
217 eint(i)=eint(i)/vol(i)
218 510 CONTINUE
219 ENDIF
220
221 RETURN
subroutine conc24(pm, off, sig, eint, siga, epxa, gama, dam, ang, eps_f, vk0, strain, crak, damsum, rob, sigc, vk, pla, ngl, d1, d2, d3, d4, d5, d6, rx, ry, rz, sx, sy, sz, seq, rho, epsvp, nel, r11, r12, r13, r21, r22, r23, r31, r32, r33, jcvt, jsph)
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
subroutine m24anim(dam, ang, damglo, nel, r11, r12, r13, r21, r22, r23, r31, r32, r33)
subroutine m24dmax(d, dmax, nel)
subroutine mdtsph(pm, off, rho, rk, t, re, sti, dt2t, neltst, ityptst, offg, geo, pid, mumax, ssp, vol, vd2, deltax, vis, d1, d2, d3, pnew, psh, mat, ngl, qvis, ssp_eq, g_dt, dtsph, nel, ity, jtur, jthe)
subroutine mnsvis(pm, off, rho, geo, pid, ssp, aire, vol, d1, d2, d3, d4, d5, d6, mat, isvis, rhoref, nel, svis)
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)