38 REAL,
PARAMETER:: ice_density = 890.0
40 real,
intent(in):: q_ice, temp
42 real corr, reice, deice
43 double precision lambda
70 real,
dimension(95),
parameter:: retab = (/ &
71 5.92779, 6.26422, 6.61973, 6.99539, 7.39234, &
72 7.81177, 8.25496, 8.72323, 9.21800, 9.74075, 10.2930, &
73 10.8765, 11.4929, 12.1440, 12.8317, 13.5581, 14.2319, &
74 15.0351, 15.8799, 16.7674, 17.6986, 18.6744, 19.6955, &
75 20.7623, 21.8757, 23.0364, 24.2452, 25.5034, 26.8125, &
76 27.7895, 28.6450, 29.4167, 30.1088, 30.7306, 31.2943, &
77 31.8151, 32.3077, 32.7870, 33.2657, 33.7540, 34.2601, &
78 34.7892, 35.3442, 35.9255, 36.5316, 37.1602, 37.8078, &
79 38.4720, 39.1508, 39.8442, 40.5552, 41.2912, 42.0635, &
80 42.8876, 43.7863, 44.7853, 45.9170, 47.2165, 48.7221, &
81 50.4710, 52.4980, 54.8315, 57.4898, 60.4785, 63.7898, &
82 65.5604, 71.2885, 75.4113, 79.7368, 84.2351, 88.8833, &
83 93.6658, 98.5739, 103.603, 108.752, 114.025, 119.424, &
84 124.954, 130.630, 136.457, 142.446, 148.608, 154.956, &
85 161.503, 168.262, 175.248, 182.473, 189.952, 197.699, &
86 205.728, 214.055, 222.694, 231.661, 240.971, 250.639 /)
99 idx_rei = int(temp-179.)
100 idx_rei = min(max(idx_rei,1),94)
101 corr = temp - int(temp)
102 reice = retab(idx_rei)*(1.-corr) + retab(idx_rei+1)*corr
103 deice = 2.*reice * 1.e-6
139 real,
intent(in):: q_cloud, qnwfa
142 real,
parameter:: am_r = pi*1000./6.
143 real,
dimension(15),
parameter:: g_ratio = (/24,60,120,210,336, &
144 & 504,720,990,1320,1716,2184,2730,3360,4080,4896/)
145 double precision:: lambda, qnc
146 real:: q_nwfa, x1, xdc
149 if (q_cloud == 0)
then
156 q_nwfa = max(99.e6, min(qnwfa,5.e10))
157 nu_c = max(2, min(nint(2.5e10/q_nwfa), 15))
159 x1 = max(1., min(q_nwfa*1.e-9, 10.)) - 1.
160 xdc = (30. - x1*20./9.) * 1.e-6
162 lambda = (4.0d0 + nu_c) / xdc
163 qnc = q_cloud / g_ratio(nu_c) * lambda*lambda*lambda / am_r