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