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