30 aero_data, env_state, k)
41 real(kind=
dp),
intent(out) :: k
45 env_state%pressure, k)
55 real(kind=
dp),
intent(in) :: v1
57 real(kind=
dp),
intent(in) :: v2
63 real(kind=
dp),
intent(out) :: k_min
65 real(kind=
dp),
intent(out) :: k_max
68 env_state%pressure, k_min)
81 real(kind=
dp),
intent(in) :: v1
83 real(kind=
dp),
intent(in) :: v2
87 real(kind=
dp),
intent(in) :: temp
89 real(kind=
dp),
intent(in) :: pressure
91 real(kind=
dp),
intent(out) :: k
93 real(kind=
dp) r1, r2, winf1, winf2, ec
101 call effic(r1, r2, ec)
102 k = ec *
const%pi * (r1 + r2)**2 * abs(winf1 - winf2)
112 real(kind=
dp),
intent(in) :: r
114 real(kind=
dp),
intent(out) :: w_inf
117 real(kind=
dp) eta, xlamb, rhow, rhoa, grav, cunh, t0, sigma
118 real(kind=
dp) stok, stb, phy, py, rr, x, y, xrey, bond
120 real(kind=
dp) b(7),c(6)
121 data b /-0.318657d1,0.992696d0,-0.153193d-2,-0.987059d-3, &
122 -0.578878d-3,0.855176d-4,-0.327815d-5/
123 data c /-0.500015d1,0.523778d1,-0.204914d1,0.475294d0, &
124 -0.542819d-1,0.238449d-2/
131 cunh = 1.257d0 * xlamb
133 sigma = 76.1d0 - 0.155d0 * (293.15d0 - t0)
134 stok = 2d0 * grav * (rhow - rhoa) / (9d0 * eta)
135 stb = 32d0 * rhoa * (rhow - rhoa) * grav / (3d0 * eta * eta)
136 phy = sigma * sigma * sigma * rhoa * rhoa &
137 / (eta**4 * grav * (rhow - rhoa))
143 if (rr .le. 1d-3)
then
144 w_inf = stok * (rr * rr + cunh * rr)
145 elseif (rr .gt. 1d-3 .and. rr .le. 5.35d-2)
then
146 x = log(stb * rr * rr * rr)
149 y = y + b(i) * (x**(i - 1))
151 xrey = (1d0 + cunh/rr) * exp(y)
152 w_inf = xrey * eta / (2d0 * rhoa * rr)
153 elseif (rr .gt. 5.35d-2)
then
154 bond = grav * (rhow - rhoa) * rr**2 / sigma
155 if (rr .gt. 0.35d0)
then
156 bond = grav * (rhow - rhoa) * 0.35d0**2 / sigma
158 x = log(16d0 * bond * py / 3d0)
161 y = y + c(i) * (x**(i - 1))
164 w_inf = xrey * eta / (2d0 * rhoa * rr)
165 if (rr .gt. 0.35d0)
then
166 w_inf = xrey * eta / (2d0 * rhoa * 0.35d0)
169 w_inf = w_inf / 100d0
182 real(kind=
dp),
intent(in) :: r1
184 real(kind=
dp),
intent(in) :: r2
186 real(kind=
dp),
intent(out) :: ec
188 real(kind=
dp) :: r_small, r_big, rq, p, q, ek
189 integer :: k, ir, kk, iq
191 real(kind=
dp) :: rat(21),r0(15),ecoll(15,21)
193 data r0 /6.0d0,8.0d0,10.0d0,15.0d0,20.0d0,25.0d0,30.0d0,40.0d0 &
194 ,50.0d0,60.0d0,70.0d0,100.0d0,150.0d0,200.0d0,300.0d0/
195 data rat /0.0d0,0.05d0,0.1d0,0.15d0,0.2d0,0.25d0,0.3d0,0.35d0 &
196 ,0.4d0,0.45d0,0.5d0,0.55d0,0.6d0,0.65d0,0.7d0,0.75d0,0.8d0 &
197 ,0.85d0,0.9d0,0.95d0,1.0d0/
199 data ecoll /0.001d0,0.001d0,0.001d0,0.001d0,0.001d0,0.001d0 &
200 ,0.001d0,0.001d0,0.001d0,0.001d0 ,0.001d0,0.001d0,0.001d0 &
201 ,0.001d0,0.001d0,0.003d0,0.003d0,0.003d0,0.004d0,0.005d0 &
202 ,0.005d0,0.005d0,0.010d0,0.100d0,0.050d0,0.200d0,0.500d0 &
203 ,0.770d0,0.870d0,0.970d0 ,0.007d0,0.007d0,0.007d0,0.008d0 &
204 ,0.009d0,0.010d0,0.010d0,0.070d0,0.400d0,0.430d0 ,0.580d0 &
205 ,0.790d0,0.930d0,0.960d0,1.000d0,0.009d0,0.009d0,0.009d0 &
206 ,0.012d0,0.015d0 ,0.010d0,0.020d0,0.280d0,0.600d0,0.640d0 &
207 ,0.750d0,0.910d0,0.970d0,0.980d0,1.000d0 ,0.014d0,0.014d0 &
208 ,0.014d0,0.015d0,0.016d0,0.030d0,0.060d0,0.500d0,0.700d0 &
209 ,0.770d0 ,0.840d0,0.950d0,0.970d0,1.000d0,1.000d0,0.017d0 &
210 ,0.017d0,0.017d0,0.020d0,0.022d0 ,0.060d0,0.100d0,0.620d0 &
211 ,0.780d0,0.840d0,0.880d0,0.950d0,1.000d0,1.000d0,1.000d0 &
212 ,0.030d0,0.030d0,0.024d0,0.022d0,0.032d0,0.062d0,0.200d0 &
213 ,0.680d0,0.830d0,0.870d0 ,0.900d0,0.950d0,1.000d0,1.000d0 &
214 ,1.000d0,0.025d0,0.025d0,0.025d0,0.036d0,0.043d0 ,0.130d0 &
215 ,0.270d0,0.740d0,0.860d0,0.890d0,0.920d0,1.000d0,1.000d0 &
216 ,1.000d0,1.000d0 ,0.027d0,0.027d0,0.027d0,0.040d0,0.052d0 &
217 ,0.200d0,0.400d0,0.780d0,0.880d0,0.900d0 ,0.940d0,1.000d0 &
218 ,1.000d0,1.000d0,1.000d0,0.030d0,0.030d0,0.030d0,0.047d0 &
219 ,0.064d0 ,0.250d0,0.500d0,0.800d0,0.900d0,0.910d0,0.950d0 &
220 ,1.000d0,1.000d0,1.000d0,1.000d0 ,0.040d0,0.040d0,0.033d0 &
221 ,0.037d0,0.068d0,0.240d0,0.550d0,0.800d0,0.900d0,0.910d0 &
222 ,0.950d0,1.000d0,1.000d0,1.000d0,1.000d0,0.035d0,0.035d0 &
223 ,0.035d0,0.055d0,0.079d0 ,0.290d0,0.580d0,0.800d0,0.900d0 &
224 ,0.910d0,0.950d0,1.000d0,1.000d0,1.000d0,1.000d0 ,0.037d0 &
225 ,0.037d0,0.037d0,0.062d0,0.082d0,0.290d0,0.590d0,0.780d0 &
226 ,0.900d0,0.910d0 ,0.950d0,1.000d0,1.000d0,1.000d0,1.000d0 &
227 ,0.037d0,0.037d0,0.037d0,0.060d0,0.080d0 ,0.290d0,0.580d0 &
228 ,0.770d0,0.890d0,0.910d0,0.950d0,1.000d0,1.000d0,1.000d0 &
229 ,1.000d0 ,0.037d0,0.037d0,0.037d0,0.041d0,0.075d0,0.250d0 &
230 ,0.540d0,0.760d0,0.880d0,0.920d0 ,0.950d0,1.000d0,1.000d0 &
231 ,1.000d0,1.000d0,0.037d0,0.037d0,0.037d0,0.052d0,0.067d0 &
232 ,0.250d0,0.510d0,0.770d0,0.880d0,0.930d0,0.970d0,1.000d0 &
233 ,1.000d0,1.000d0,1.000d0 ,0.037d0,0.037d0,0.037d0,0.047d0 &
234 ,0.057d0,0.250d0,0.490d0,0.770d0,0.890d0,0.950d0 ,1.000d0 &
235 ,1.000d0,1.000d0,1.000d0,1.000d0,0.036d0,0.036d0,0.036d0 &
236 ,0.042d0,0.048d0 ,0.230d0,0.470d0,0.780d0,0.920d0,1.000d0 &
237 ,1.020d0,1.020d0,1.020d0,1.020d0,1.020d0 ,0.040d0,0.040d0 &
238 ,0.035d0,0.033d0,0.040d0,0.112d0,0.450d0,0.790d0,1.010d0 &
239 ,1.030d0 ,1.040d0,1.040d0,1.040d0,1.040d0,1.040d0,0.033d0 &
240 ,0.033d0,0.033d0,0.033d0,0.033d0 ,0.119d0,0.470d0,0.950d0 &
241 ,1.300d0,1.700d0,2.300d0,2.300d0,2.300d0,2.300d0,2.300d0 &
242 ,0.027d0,0.027d0,0.027d0,0.027d0,0.027d0,0.125d0,0.520d0 &
243 ,1.400d0,2.300d0,3.000d0 ,4.000d0,4.000d0,4.000d0,4.000d0 &
246 r_small = min(r1 * 1d6, r2 * 1d6)
247 r_big = max(r1 * 1d6, r2 * 1d6)
252 if (r_big .gt. r0(k))
then
259 if (rq .gt. rat(kk))
then
266 p = (r_big - r0(ir - 1)) / (r0(ir) - r0(ir - 1))
267 q = (rq - rat(iq - 1)) / (rat(iq) - rat(iq - 1))
268 ec = (1d0 - p) * (1d0 - q) * ecoll(ir - 1, iq - 1) &
269 + p * (1d0 - q) * ecoll(ir, iq - 1) &
270 + q * (1d0 - p) * ecoll(ir - 1, iq) &
271 + p * q * ecoll(ir, iq)
273 q = (rq - rat(iq - 1)) / (rat(iq) - rat(iq - 1))
274 ec = (1d0 - q) * ecoll(1, iq - 1) + q * ecoll(1, iq)
277 q = (rq - rat(iq - 1)) / (rat(iq) - rat(iq - 1))
278 ek = (1d0 - q) * ecoll(15, iq - 1) + q * ecoll(15, iq)
282 if (ec .lt. 1d-20) stop 99