31 aero_data, env_state, k)
42 real(kind=
dp),
intent(out) :: k
46 env_state%pressure, k)
56 real(kind=
dp),
intent(in) :: v1
58 real(kind=
dp),
intent(in) :: v2
64 real(kind=
dp),
intent(out) :: k_min
66 real(kind=
dp),
intent(out) :: k_max
69 env_state%pressure, k_min)
82 real(kind=
dp),
intent(in) :: v1
84 real(kind=
dp),
intent(in) :: v2
88 real(kind=
dp),
intent(in) :: temp
90 real(kind=
dp),
intent(in) :: pressure
92 real(kind=
dp),
intent(out) :: k
94 real(kind=
dp) r1, r2, winf1, winf2, ec
102 call effic(r1, r2, ec)
103 k = ec *
const%pi * (r1 + r2)**2 * abs(winf1 - winf2)
113 real(kind=
dp),
intent(in) :: r
115 real(kind=
dp),
intent(out) :: w_inf
118 real(kind=
dp) eta, xlamb, rhow, rhoa, grav, cunh, t0, sigma
119 real(kind=
dp) stok, stb, phy, py, rr, x, y, xrey, bond
121 real(kind=
dp) b(7),c(6)
122 data b /-0.318657d1,0.992696d0,-0.153193d-2,-0.987059d-3, &
123 -0.578878d-3,0.855176d-4,-0.327815d-5/
124 data c /-0.500015d1,0.523778d1,-0.204914d1,0.475294d0, &
125 -0.542819d-1,0.238449d-2/
132 cunh = 1.257d0 * xlamb
134 sigma = 76.1d0 - 0.155d0 * (293.15d0 - t0)
135 stok = 2d0 * grav * (rhow - rhoa) / (9d0 * eta)
136 stb = 32d0 * rhoa * (rhow - rhoa) * grav / (3d0 * eta * eta)
137 phy = sigma * sigma * sigma * rhoa * rhoa &
138 / (eta**4 * grav * (rhow - rhoa))
144 if (rr .le. 1d-3)
then
145 w_inf = stok * (rr * rr + cunh * rr)
146 elseif (rr .gt. 1d-3 .and. rr .le. 5.35d-2)
then
147 x = log(stb * rr * rr * rr)
150 y = y + b(i) * (x**(i - 1))
152 xrey = (1d0 + cunh/rr) * exp(y)
153 w_inf = xrey * eta / (2d0 * rhoa * rr)
154 elseif (rr .gt. 5.35d-2)
then
155 bond = grav * (rhow - rhoa) * rr**2 / sigma
156 if (rr .gt. 0.35d0)
then
157 bond = grav * (rhow - rhoa) * 0.35d0**2 / sigma
159 x = log(16d0 * bond * py / 3d0)
162 y = y + c(i) * (x**(i - 1))
165 w_inf = xrey * eta / (2d0 * rhoa * rr)
166 if (rr .gt. 0.35d0)
then
167 w_inf = xrey * eta / (2d0 * rhoa * 0.35d0)
170 w_inf = w_inf / 100d0
183 real(kind=
dp),
intent(in) :: r1
185 real(kind=
dp),
intent(in) :: r2
187 real(kind=
dp),
intent(out) :: ec
189 real(kind=
dp) :: r_small, r_big, rq, p, q, ek
190 integer :: k, ir, kk, iq
192 real(kind=
dp) :: rat(21),r0(15),ecoll(15,21)
194 data r0 /6.0d0,8.0d0,10.0d0,15.0d0,20.0d0,25.0d0,30.0d0,40.0d0 &
195 ,50.0d0,60.0d0,70.0d0,100.0d0,150.0d0,200.0d0,300.0d0/
196 data rat /0.0d0,0.05d0,0.1d0,0.15d0,0.2d0,0.25d0,0.3d0,0.35d0 &
197 ,0.4d0,0.45d0,0.5d0,0.55d0,0.6d0,0.65d0,0.7d0,0.75d0,0.8d0 &
198 ,0.85d0,0.9d0,0.95d0,1.0d0/
200 data ecoll /0.001d0,0.001d0,0.001d0,0.001d0,0.001d0,0.001d0 &
201 ,0.001d0,0.001d0,0.001d0,0.001d0 ,0.001d0,0.001d0,0.001d0 &
202 ,0.001d0,0.001d0,0.003d0,0.003d0,0.003d0,0.004d0,0.005d0 &
203 ,0.005d0,0.005d0,0.010d0,0.100d0,0.050d0,0.200d0,0.500d0 &
204 ,0.770d0,0.870d0,0.970d0 ,0.007d0,0.007d0,0.007d0,0.008d0 &
205 ,0.009d0,0.010d0,0.010d0,0.070d0,0.400d0,0.430d0 ,0.580d0 &
206 ,0.790d0,0.930d0,0.960d0,1.000d0,0.009d0,0.009d0,0.009d0 &
207 ,0.012d0,0.015d0 ,0.010d0,0.020d0,0.280d0,0.600d0,0.640d0 &
208 ,0.750d0,0.910d0,0.970d0,0.980d0,1.000d0 ,0.014d0,0.014d0 &
209 ,0.014d0,0.015d0,0.016d0,0.030d0,0.060d0,0.500d0,0.700d0 &
210 ,0.770d0 ,0.840d0,0.950d0,0.970d0,1.000d0,1.000d0,0.017d0 &
211 ,0.017d0,0.017d0,0.020d0,0.022d0 ,0.060d0,0.100d0,0.620d0 &
212 ,0.780d0,0.840d0,0.880d0,0.950d0,1.000d0,1.000d0,1.000d0 &
213 ,0.030d0,0.030d0,0.024d0,0.022d0,0.032d0,0.062d0,0.200d0 &
214 ,0.680d0,0.830d0,0.870d0 ,0.900d0,0.950d0,1.000d0,1.000d0 &
215 ,1.000d0,0.025d0,0.025d0,0.025d0,0.036d0,0.043d0 ,0.130d0 &
216 ,0.270d0,0.740d0,0.860d0,0.890d0,0.920d0,1.000d0,1.000d0 &
217 ,1.000d0,1.000d0 ,0.027d0,0.027d0,0.027d0,0.040d0,0.052d0 &
218 ,0.200d0,0.400d0,0.780d0,0.880d0,0.900d0 ,0.940d0,1.000d0 &
219 ,1.000d0,1.000d0,1.000d0,0.030d0,0.030d0,0.030d0,0.047d0 &
220 ,0.064d0 ,0.250d0,0.500d0,0.800d0,0.900d0,0.910d0,0.950d0 &
221 ,1.000d0,1.000d0,1.000d0,1.000d0 ,0.040d0,0.040d0,0.033d0 &
222 ,0.037d0,0.068d0,0.240d0,0.550d0,0.800d0,0.900d0,0.910d0 &
223 ,0.950d0,1.000d0,1.000d0,1.000d0,1.000d0,0.035d0,0.035d0 &
224 ,0.035d0,0.055d0,0.079d0 ,0.290d0,0.580d0,0.800d0,0.900d0 &
225 ,0.910d0,0.950d0,1.000d0,1.000d0,1.000d0,1.000d0 ,0.037d0 &
226 ,0.037d0,0.037d0,0.062d0,0.082d0,0.290d0,0.590d0,0.780d0 &
227 ,0.900d0,0.910d0 ,0.950d0,1.000d0,1.000d0,1.000d0,1.000d0 &
228 ,0.037d0,0.037d0,0.037d0,0.060d0,0.080d0 ,0.290d0,0.580d0 &
229 ,0.770d0,0.890d0,0.910d0,0.950d0,1.000d0,1.000d0,1.000d0 &
230 ,1.000d0 ,0.037d0,0.037d0,0.037d0,0.041d0,0.075d0,0.250d0 &
231 ,0.540d0,0.760d0,0.880d0,0.920d0 ,0.950d0,1.000d0,1.000d0 &
232 ,1.000d0,1.000d0,0.037d0,0.037d0,0.037d0,0.052d0,0.067d0 &
233 ,0.250d0,0.510d0,0.770d0,0.880d0,0.930d0,0.970d0,1.000d0 &
234 ,1.000d0,1.000d0,1.000d0 ,0.037d0,0.037d0,0.037d0,0.047d0 &
235 ,0.057d0,0.250d0,0.490d0,0.770d0,0.890d0,0.950d0 ,1.000d0 &
236 ,1.000d0,1.000d0,1.000d0,1.000d0,0.036d0,0.036d0,0.036d0 &
237 ,0.042d0,0.048d0 ,0.230d0,0.470d0,0.780d0,0.920d0,1.000d0 &
238 ,1.020d0,1.020d0,1.020d0,1.020d0,1.020d0 ,0.040d0,0.040d0 &
239 ,0.035d0,0.033d0,0.040d0,0.112d0,0.450d0,0.790d0,1.010d0 &
240 ,1.030d0 ,1.040d0,1.040d0,1.040d0,1.040d0,1.040d0,0.033d0 &
241 ,0.033d0,0.033d0,0.033d0,0.033d0 ,0.119d0,0.470d0,0.950d0 &
242 ,1.300d0,1.700d0,2.300d0,2.300d0,2.300d0,2.300d0,2.300d0 &
243 ,0.027d0,0.027d0,0.027d0,0.027d0,0.027d0,0.125d0,0.520d0 &
244 ,1.400d0,2.300d0,3.000d0 ,4.000d0,4.000d0,4.000d0,4.000d0 &
247 r_small = min(r1 * 1d6, r2 * 1d6)
248 r_big = max(r1 * 1d6, r2 * 1d6)
253 if (r_big .gt. r0(k))
then
260 if (rq .gt. rat(kk))
then
267 p = (r_big - r0(ir - 1)) / (r0(ir) - r0(ir - 1))
268 q = (rq - rat(iq - 1)) / (rat(iq) - rat(iq - 1))
269 ec = (1d0 - p) * (1d0 - q) * ecoll(ir - 1, iq - 1) &
270 + p * (1d0 - q) * ecoll(ir, iq - 1) &
271 + q * (1d0 - p) * ecoll(ir - 1, iq) &
272 + p * q * ecoll(ir, iq)
274 q = (rq - rat(iq - 1)) / (rat(iq) - rat(iq - 1))
275 ec = (1d0 - q) * ecoll(1, iq - 1) + q * ecoll(1, iq)
278 q = (rq - rat(iq - 1)) / (rat(iq) - rat(iq - 1))
279 ek = (1d0 - q) * ecoll(15, iq - 1) + q * ecoll(15, iq)
283 if (ec .lt. 1d-20)
call pmc_stop(99)