49
50
51
52 use glob_therm_mod
53
54
55
56#include "implicit_f.inc"
57
58
59
60#include "mvsiz_p.inc"
61
62
63
64#include "com08_c.inc"
65#include "param_c.inc"
66
67
68
69 INTEGER, INTENT(IN) :: ISMSTR
70 INTEGER, INTENT(IN) :: JSMS
71 INTEGER, INTENT(IN) :: ITY
72 INTEGER, INTENT(IN) :: JTUR
73 INTEGER, INTENT(IN) :: JTHE
74 INTEGER, INTENT(IN) :: JSPH,NPG
75
76 INTEGER NELTST,ITYPTST,PID(*),G_DT,NEL
77 INTEGER MAT(*),NGL(*), IPM(NPROPMI,*)
79 . dt2t
80
82 . pm(npropm,*), off(*), sig(nel,6), eint(*), rho(*), qold(*),
83 . vol(*),stifn(*), offg(*),geo(npropg,*),mumax(*)
85 . vnew(*), vd2(*), deltax(*), ssp(*), aire(*), vis(*),
86 . psh(*), pnew(*),qnew(*) ,ssp_eq(*), dvol(*),
87 . sold1(*), sold2(*), sold3(*), sold4(*), sold5(*), sold6(*),
88 . d1(*), d2(*), d3(*), d4(*), d5(*), d6(*),
89 . mssa(*), dmels(*),conde(*),amu(*),vol_avg(*),
dtel(*), rhoref(*), rhosp(*)
90 type (glob_therm_) ,intent(inout) :: glob_therm
91
92
93
94 INTEGER I, MX, J,IBID
96 . rho0(mvsiz),
97 . g(mvsiz), g1(mvsiz), g2(mvsiz),
98 . c1(mvsiz),
99 . df,dav, dpdm, p,
100 . e1, e2, e3, e4, e5, e6, einc, p2,
101 . bid1, bid2, bid3, dta, ym, dpdmp,facq0,
102 . rho0_1,c1_1
104 . lmb(mvsiz),epsm
105
106 facq0 = one
107 mx = mat(1)
108 rho0_1 =pm( 1,mx)
109 c1_1 =pm(32,mx)
110 DO 10 i=1,nel
111 rho0(i) =rho0_1
112 g(i) =pm(22,mx)*off(i)
113 c1(i) =c1_1
114 lmb(i) =(three*c1(i)-two*g(i))
115 10 CONTINUE
116
117
118 DO i=1,nel
119 g1(i)=dt1*g(i)
120 g2(i)=two*g1(i)
121
122
123
124
125
126
127 ssp(i)=sqrt((onep333*g(i)+c1(i))/rho0(i))
128 rhosp(i)=rho0(i)
129
130
131
132 p =-third*(sig(i,1)+sig(i,2)+sig(i,3))
133 dav=-third*(d1(i)+d2(i)+d3(i))
134 ENDDO
135
136 IF (jsph==0)THEN
138 1 pm, off, rho, bid1,
139 2 bid2, ssp, bid3, stifn,
140 3 dt2t, neltst, ityptst, aire,
141 4 offg, geo, pid, vnew,
142 5 vd2, deltax, vis, d1,
143 6 d2, d3, pnew, psh,
144 7 mat, ngl, qnew, ssp_eq,
145 8 vol, mssa, dmels, ibid,
146 9 facq0, conde,
dtel, g_dt,
147 a ipm, rhoref, rhosp, nel,
148 b ity, ismstr, jtur, jthe,
149 c jsms, npg , glob_therm)
150 ELSE
152 1 pm, off, rho, bid1,
153 2 bid2, bid3, stifn, dt2t,
154 3 neltst, ityptst, offg, geo,
155 4 pid, mumax, ssp, vnew,
156 5 vd2, deltax, vis, d1,
157 6 d2, d3, pnew, psh,
158 7 mat, ngl, qnew, ssp_eq,
159 8 g_dt,
dtel, nel, ity,
160 9 jtur, jthe)
161 ENDIF
162
163 dta =half*dt1
164
165 DO i=1,nel
166 epsm = third*(d1(i)+d2(i)+d3(i))
167 sig(i,1)=sig(i,1)+ (two*g(i)*d1(i)+lmb(i)*epsm) *dt1
168 sig(i,2)=sig(i,2)+ (two*g(i)*d2(i)+lmb(i)*epsm) *dt1
169 sig(i,3)=sig(i,3)+ (two*g(i)*d3(i)+lmb(i)*epsm) *dt1
170 sig(i,4)=sig(i,4)+ g(i)*d4(i) *dt1
171 sig(i,5)=sig(i,5)+ g(i)*d5(i) *dt1
172 sig(i,6)=sig(i,6)+ g(i)*d6(i) *dt1
173 pnew(i) =- (sig(i,1)+sig(i,2)+sig(i,3))
174 p2 = -(sold1(i)+sig(i,1)+sold2(i)+sig(i,2)+sold3(i)+sig(i,3))* third
175 e1=d1(i)*(sold1(i)+sig(i,1)+p2)
176 e2=d2(i)*(sold2(i)+sig(i,2)+p2)
177 e3=d3(i)*(sold3(i)+sig(i,3)+p2)
178 e4=d4(i)*(sold4(i)+sig(i,4))
179 e5=d5(i)*(sold5(i)+sig(i,5))
180 e6=d6(i)*(sold6(i)+sig(i,6))
181 einc= vol_avg(i)*(e1+e2+e3+e4+e5+e6)*dta - half*dvol(i)*(qold(i)+qnew(i)+p2)
182 eint(i)=(eint(i)+einc*off(i)) /
max(em15,vol(i))
183 qold(i)=qnew(i)
184
185 ENDDO
186
187 RETURN
subroutine dtel(ssp, pm, geo, pid, mat, rho0, vis, deltax, aire, vol, dtx)
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 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)