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
81 . pm(npropm,*), off(*), sig(nel,6), eint(*), rho(*), qold(*),
82 . vol(*),stifn(*), offg(*),geo(npropg,*),mumax(*)
84 . vnew(*), vd2(*), deltax(*), ssp(*), aire(*), vis(*),
85 . psh(*), pnew(*),qnew(*) ,ssp_eq(*), dvol(*),
86 . sold1(*), sold2(*), sold3(*), sold4(*), sold5(*), sold6(*),
87 . d1(*), d2(*), d3(*), d4(*), d5(*), d6(*),
88 . mssa(*), dmels(*),conde(*),amu(*),vol_avg(*),
dtel(*), rhoref(*), rhosp(*)
89 type (glob_therm_) ,intent(inout) :: glob_therm
90
91
92
93 INTEGER I, MX, J,IBID
95 . rho0(mvsiz),
96 . g(mvsiz), g1(mvsiz), g2(mvsiz),
97 . c1(mvsiz),
98 . df,dav, dpdm, p,
99 . e1, e2, e3, e4, e5, e6, einc, p2,
100 . bid1, bid2, bid3, dta, ym, dpdmp,facq0,
101 . rho0_1,c1_1
102
103 facq0 = one
104 mx = mat(1)
105 rho0_1 =pm( 1,mx)
106 c1_1 =pm(32,mx)
107 DO 10 i=1,nel
108 rho0(i) =rho0_1
109 g(i) =pm(22,mx)*off(i)
110 c1(i) =c1_1
111 10 CONTINUE
112
113 DO i=1,nel
114 g1(i)=dt1*g(i)
115 g2(i)=two*g1(i)
116
117
118
119
120
121
122 ssp(i) =sqrt((onep333*g(i)+c1(i))/rho0(i))
123 rhosp(i)=rho0(i)
124
125
126
127 p =-third*(sig(i,1)+sig(i,2)+sig(i,3))
128 dav=-third*(d1(i)+d2(i)+d3(i))
129 sig(i,1)=sig(i,1)+p+g2(i)*(d1(i)+dav)
130 sig(i,2)=sig(i,2)+p+g2(i)*(d2(i)+dav)
131 sig(i,3)=sig(i,3)+p+g2(i)*(d3(i)+dav)
132 sig(i,4)=sig(i,4)+g1(i)*d4(i)
133 sig(i,5)=sig(i,5)+g1(i)*d5(i)
134 sig(i,6)=sig(i,6)+g1(i)*d6(i)
135 ENDDO
136
137 IF (jsph==0)THEN
139 1 pm, off, rho, bid1,
140 2 bid2, ssp, bid3, stifn,
141 3 dt2t, neltst, ityptst, aire,
142 4 offg, geo, pid, vnew,
143 5 vd2, deltax, vis, d1,
144 6 d2, d3, pnew, psh,
145 7 mat, ngl, qnew, ssp_eq,
146 8 vol, mssa, dmels, ibid,
147 9 facq0, conde,
dtel, g_dt,
148 a ipm, rhoref, rhosp, nel,
149 b ity, ismstr, jtur, jthe,
150 c jsms, npg , glob_therm)
151 ELSE
153 1 pm, off, rho, bid1,
154 2 bid2, bid3, stifn, dt2t,
155 3 neltst, ityptst, offg, geo,
156 4 pid, mumax, ssp, vnew,
157 5 vd2, deltax, vis, d1,
158 6 d2, d3, pnew, psh,
159 7 mat, ngl, qnew, ssp_eq,
160 8 g_dt,
dtel, nel, ity,
161 9 jtur, jthe)
162 ENDIF
163
164 dta =half*dt1
165
166 DO i=1,nel
167 pnew(i)=c1(i)*amu(i)
168 sig(i,1)=(sig(i,1)-pnew(i))*off(i)
169 sig(i,2)=(sig(i,2)-pnew(i))*off(i)
170 sig(i,3)=(sig(i,3)-pnew(i))*off(i)
171 sig(i,4)=sig(i,4)*off(i)
172 sig(i,5)=sig(i,5)*off(i)
173 sig(i,6)=sig(i,6)*off(i)
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 ENDDO
185
186 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)