23 integer,
intent(in) :: isot,ivet,nlunit
24 character(len=*),
intent(out) :: errmsg
25 integer,
intent(out) :: errflg
29 real(kind_phys) refsmc1, wltsmc1
31 namelist /soil_veg_ruc/ slope_data, albtbl, z0tbl, lemitbl, &
33 & ifortbl, rstbl, rgltbl, hstbl, snuptbl, laitbl, maxalb, &
35 & lparam, topt_data, cmcmax_data, cfactr_data, &
36 & rsmax_data, bare, glacier, natural, crop, urban, &
37 & defined_veg, defined_soil, defined_slope, &
38 & bb, drysmc, hc, maxsmc, refsmc, satpsi, satdk, satdw, &
39 & wltsmc, qtz, refsmcnoah, wltsmcnoah, maxsmcnoah
47 slope_data =(/0.1, 0.6, 1.0, 0.35, 0.55, 0.8, &
48 & 0.63, 0.0, 0.0, 0.0, 0.0, 0.0, &
49 & 0.0 , 0.0, 0.0, 0.0, 0.0, 0.0, &
50 & 0.0 , 0.0, 0.0, 0.0, 0.0, 0.0, &
51 & 0.0 , 0.0, 0.0, 0.0, 0.0, 0.0/)
55 rstbl =(/300.0, 175.0, 175.0, 300.0, 300.0, 70.0, &
56 & 20.0, 225.0, 225.0, 225.0, 400.0, 20.0, &
57 & 150.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
58 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
59 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
61 rgltbl =(/30.0, 30.0, 30.0, 30.0, 30.0, 65.0, &
62 & 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, &
63 & 100.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
64 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
65 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
67 hstbl =(/41.69, 54.53, 51.93, 47.35, 47.35, 54.53, &
68 & 36.35, 42.00, 42.00, 42.00, 42.00, 36.35, &
69 & 42.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
70 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
71 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
73 snuptbl =(/0.040, 0.040, 0.040, 0.040, 0.040, 0.040, &
74 & 0.020, 0.020, 0.020, 0.020, 0.013, 0.020, &
75 & 0.013, 0.000, 0.000, 0.000, 0.000, 0.000, &
76 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
77 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
86 z0tbl =(/2.653, 0.826, 0.563, 1.089, 0.854, 0.856, &
87 & 0.035, 0.238, 0.065, 0.076, 0.011, 0.125, &
88 & 0.011, 0.000, 0.000, 0.000, 0.000, 0.000, &
89 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
90 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
91 laitbl =(/3.0, 3.0, 3.0, 3.0, 3.0, 3.0, &
92 & 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, &
93 & 3.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
94 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, &
95 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
128 slope_data =(/1.0, 1.0, 1.0, 1.0, 1.0, 1.0, &
129 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, &
130 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, &
131 & 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, &
132 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
136 rstbl = (/125.0, 150.0, 150.0, 100.0, 125.0, 300.0, &
137 & 170.0, 300.0, 70.0, 40.0, 70.0, 40.0, &
138 & 200.0, 40.0, 999.0, 999.0, 100.0, 150.0, &
139 & 150.0, 200.0, 100.0, 0.0, 0.0, 0.0, &
140 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
142 rgltbl = (/30.0, 30.0, 30.0, 30.0, 30.0, 100.0, &
143 & 100.0, 100.0, 65.0, 100.0, 65.0, 100.0, &
144 & 999.0, 100.0, 999.0, 999.0, 30.0, 100.0, &
145 & 100.0, 100.0, 30.0, 0.0, 0.0, 0.0, &
146 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
148 hstbl = (/47.35, 41.69, 47.35, 54.53, 51.93, 42.00, &
149 & 39.18, 42.00, 54.53, 36.35, 55.97, 36.25, &
150 & 999.00, 36.25,999.00,999.00, 51.75, 42.00, &
151 & 42.00, 42.00, 51.75, 0.00, 0.00, 0.00, &
152 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
154 snuptbl =(/0.080, 0.080, 0.080, 0.080, 0.080, 0.030, &
155 & 0.035, 0.030, 0.040, 0.040, 0.015, 0.040, &
156 & 0.040, 0.040, 0.020, 0.020, 0.010, 0.025, &
157 & 0.025, 0.020, 0.010, 0.000, 0.000, 0.000, &
158 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
160 albtbl =(/0.12, 0.12, 0.14, 0.16, 0.13, 0.22, 0.20, &
161 & 0.20, 0.20, 0.19, 0.14, 0.18, 0.18, 0.16, &
162 & 0.55, 0.25, 0.08, 0.15, 0.15, 0.15, 0.08, &
163 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
166 z0tbl =(/0.80, 0.80, 0.80, 0.80, 0.80, 0.10, &
167 & 0.10, 0.30, 0.15, 0.075, 0.30, 0.20, &
168 & 0.50, 0.30, 0.011, 0.065, 0.0001,0.15, &
169 & 0.075, 0.06, 0.0001,0.000, 0.000, 0.000, &
170 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
172 lemitbl =(/.950, .950, .940, .930, .940, .930, .880, &
173 & .930, .920, .920, .950, .935, .880, .920, &
174 & .980, .850, .980, .930, .920, .900, .980, &
175 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
178 pctbl =(/0.55, 0.55, 0.55, 0.55, 0.55, 0.40, 0.40, &
179 & 0.40, 0.40, 0.40, 0.40, 0.40, 0.40, 0.40, &
180 & 0.00, 0.30, 0.00, 0.40, 0.40, 0.30, 0.00, &
181 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
184 shdtbl =(/0.70, 0.95, 0.70, 0.80, 0.80, 0.70, 0.70, &
185 & 0.70, 0.50, 0.80, 0.60, 0.80, 0.10, 0.80, &
186 & 0.00, 0.01, 0.00, 0.60, 0.60, 0.30, 0.00, &
187 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
190 ifortbl =(/1, 2, 4, 3, 2, 4, 4, 5, 5, 5, 4, 7, 9, 7, &
191 & 9, 9, 9, 5, 5, 5, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0/)
193 laitbl =(/2.80, 5.18, 4.16, 4.81, 4.20, 1.16, 0.90, &
194 & 3.00, 3.00, 1.10, 1.72, 2.58, 1.00, 2.29, &
195 & 0.01, 0.75, 0.01, 1.00, 1.00, 1.00, 0.01, &
196 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
199 maxalb =(/52., 35., 54., 58., 53., 60., 65., 60., &
200 & 50., 70., 59., 66., 46., 68., 82., 75., &
201 & 70., 55., 60., 75., 70., 0., 0., 0., &
202 & 0., 0., 0., 0., 0., 0./)
205 & (/ 1.00, 1.00, 1.00, 1.00, 2.00, 2.00, &
206 & 2.00, 2.00, 2.00, 2.00, 2.00, 2.00, &
207 & 3.00, 3.00, 2.00, 2.00, 2.00, 2.00, &
208 & 2.00, 2.00, 0.00, 0.00, 0.00, 0.00, &
211 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 /)
221 & (/ 0.030, 0.030, 0.030, 0.030, 0.030, &
223 & 0.016, 0.016, 0.020, 0.020, 0.020, &
224 & 0.020, 0.014, 0.042, 0.026, 0.030, &
225 & 0.016, 0.030, 0.030, 0.030, 0.030, &
226 & 0.000, 0.000, 0.000, 0.000, 0.000, &
227 & 0.000, 0.000, 0.000, 0.000, 0.000 /)
247 bb =(/4.26, 8.72, 11.55, 4.74, 10.73, 8.17, &
248 & 6.77, 5.25, 4.26, 0.00, 0.00, 0.00, &
249 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
250 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
251 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
253 drysmc =(/0.029, 0.119, 0.139, 0.047, 0.100, 0.103, &
254 & 0.069, 0.066, 0.029, 0.000, 0.000, 0.000, &
255 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
256 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
257 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
259 maxsmc =(/0.421, 0.464, 0.468, 0.434, 0.406, 0.465, &
260 & 0.404, 0.439, 0.421, 0.000, 0.000, 0.000, &
261 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
262 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
263 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
265 refsmc =(/0.248, 0.368, 0.398, 0.281, 0.321, 0.361, &
266 & 0.293, 0.301, 0.248, 0.000, 0.000, 0.000, &
267 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
268 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
269 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
271 satpsi =(/0.04, 0.62, 0.47, 0.14, 0.10, 0.26, &
272 & 0.14, 0.36, 0.04, 0.00, 0.00, 0.00, &
273 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
274 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
275 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
277 satdk =(/1.41e-5, 0.20e-5, 0.10e-5, 0.52e-5, 0.72e-5, &
278 & 0.25e-5, 0.45e-5, 0.34e-5, 1.41e-5, 0.00, &
279 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
280 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
281 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
282 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
284 qtz =(/0.82, 0.10, 0.25, 0.60, 0.52, 0.35, &
285 & 0.60, 0.40, 0.82, 0.00, 0.00, 0.00, &
286 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
287 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
288 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
290 wltsmc =(/0.029, 0.119, 0.139, 0.047, 0.100, 0.103, &
291 & 0.069, 0.066, 0.029, 0.000, 0.000, 0.000, &
292 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
293 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000, &
294 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
296 satdw =(/5.71e-6, 2.33e-5, 1.16e-5, 7.95e-6, 1.90e-5, &
297 & 1.14e-5, 1.06e-5, 1.46e-5, 5.71e-6, 0.00, &
298 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
299 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
300 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
301 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
340 bb =(/4.05, 4.38, 4.90, 5.30, 5.30, 5.39, &
341 & 7.12, 7.75, 5.39, 10.40, 10.40, 11.40, &
342 & 5.39, 0.00, 4.05, 4.90, 11.40, 4.05, &
343 & 4.05, 0.00, 0.00, 0.00, 0.00, 0.00, &
344 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
346 drysmc =(/0.002, 0.035, 0.041, 0.034, 0.034, 0.050, &
347 & 0.068, 0.060, 0.050, 0.070, 0.070, 0.068, &
348 & 0.027, 0.000, 0.004, 0.065, 0.030, 0.006, &
349 & 0.010, 0.000, 0.000, 0.000, 0.000, 0.000, &
350 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
352 hc =(/1.47, 1.41, 1.34, 1.27, 1.27, 1.21, 1.18, &
353 & 1.32, 1.21, 1.18, 1.15, 1.09, 1.21, 4.18, &
354 & 2.03, 2.10, 1.41, 1.41, 1.47, 0.00, 0.00, &
355 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, &
358 maxsmc =(/0.395, 0.410, 0.435, 0.485, 0.485, 0.451, &
359 & 0.420, 0.477, 0.451, 0.426, 0.492, 0.482, &
360 & 0.451, 1.000, 0.200, 0.435, 0.468, 0.200, &
361 & 0.339, 0.000, 0.000, 0.000, 0.000, 0.000, &
362 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
364 refsmc =(/0.174, 0.179, 0.249, 0.369, 0.369, 0.314, &
365 & 0.299, 0.357, 0.314, 0.316, 0.409, 0.400, &
366 & 0.314, 1.000, 0.100, 0.249, 0.454, 0.170, &
367 & 0.236, 0.000, 0.000, 0.000, 0.000, 0.000, &
368 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
370 satpsi =(/0.121, 0.090, 0.218, 0.786, 0.786, 0.478, &
371 & 0.299, 0.356, 0.478, 0.153, 0.490, 0.405, &
372 & 0.478, 0.000, 0.121, 0.218, 0.468, 0.069, &
373 & 0.069, 0.00, 0.00, 0.00, 0.00, 0.00, &
374 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
376 satdk =(/1.76e-4, 1.56e-4, 3.47e-5, 7.20e-6, 7.20e-6, &
377 & 6.95e-6, 6.30e-6, 1.70e-6, 6.95e-6, 2.17e-6, &
378 & 1.03e-6, 1.28e-6, 6.95e-6, 0.0, 1.41e-4, &
379 & 3.47e-5, 9.74e-7, 1.41e-4, 1.76e-4, 0.00, &
380 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
381 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
383 satdw =(/0.608e-6, 0.514e-5, 0.805e-5, 0.239e-4, 0.239e-4, &
384 & 0.143e-4, 0.990e-5, 0.237e-4, 0.143e-4, 0.187e-4, &
385 & 0.964e-5, 0.112e-4, 0.143e-4, 0.0, 0.136e-03, &
386 & 0.514e-5, 0.112e-4, 0.136e-3, 0.608e-6, 0.00, &
387 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
388 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
390 wltsmc =(/0.033, 0.055, 0.095, 0.143, 0.143, 0.137, &
391 & 0.148, 0.170, 0.137, 0.158, 0.190, 0.198, &
392 & 0.117, 0.000, 0.006, 0.114, 0.030, 0.006, &
393 & 0.060, 0.000, 0.000, 0.000, 0.000, 0.000, &
394 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
396 qtz =(/0.92, 0.82, 0.60, 0.25, 0.10, 0.40, &
397 & 0.60, 0.10, 0.40, 0.52, 0.10, 0.25, &
398 & 0.05, 0.00, 0.60, 0.05, 0.60, 0.52, &
399 & 0.92, 0.00, 0.00, 0.00, 0.00, 0.00, &
400 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
403 bbnoah =(/4.05, 4.26, 4.74, 5.33, 5.33, 5.25, &
404 & 6.77, 8.72, 8.17, 10.73, 10.39, 11.55, &
405 & 5.25, 4.26, 4.05, 4.26, 11.55, 4.05, &
406 & 4.05, 0.00, 0.00, 0.00, 0.00, 0.00, &
407 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
408 maxsmcnoah=(/0.395, 0.421, 0.434, 0.476, 0.476, 0.439, &
409 & 0.404, 0.464, 0.465, 0.406, 0.468, 0.457, &
410 & 0.464, 0.421, 0.200, 0.421, 0.457, 0.200, &
411 & 0.395, 0.000, 0.000, 0.000, 0.000, 0.000, &
412 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
414 satpsinoah=(/0.035, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548, &
415 & 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677, &
416 & 0.3548, 0.0363, 0.0350, 0.0363, 0.4677, 0.0350, &
417 & 0.0350, 0.00, 0.00, 0.00, 0.00, 0.00, &
418 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
419 satdknoah =(/1.76e-4, 1.4078e-5, 5.2304e-6, 2.8089e-6, 2.8089e-6,&
420 & 3.377e-6, 4.4518e-6, 2.0348e-6, 2.4464e-6, 7.2199e-6,&
421 & 1.3444e-6, 9.7394e-7, 3.377e-6, 1.4078e-5, 1.4087e-05,&
422 & 1.4078e-5, 9.7394e-7, 1.4078e-5, 1.760e-4, 0.00, &
423 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00, &
424 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
429 DO i = 1,defined_soil
430 if (satdknoah(i) /= 0.0 .and. bbnoah(i) > 0.0)
then
431 refsmc1 = maxsmcnoah(i)*(5.79e-9/satdknoah(i)) &
432 & **(1.0/(2.0*bbnoah(i)+3.0))
433 refsmcnoah(i) = refsmc1 + (maxsmcnoah(i)-refsmc1) / 6.
434 wltsmc1 = maxsmcnoah(i) * (200.0/satpsinoah(i))**(-1.0/bbnoah(i))
435 wltsmcnoah(i) = wltsmc1 - 0.5 * wltsmc1
443 IF (defined_soil .GT. max_soiltyp)
THEN
444 WRITE(0,*)
'Warning: DEFINED_SOIL too large in namelist'
446 errmsg =
'ERROR(set_soilveg_ruc): DEFINED_SOIL too large in namelist'
449 IF (defined_veg .GT. max_vegtyp)
THEN
450 WRITE(0,*)
'Warning: DEFINED_VEG too large in namelist'
452 errmsg =
'ERROR(set_soilveg_ruc): DEFINED_VEG too large in namelist'
455 IF (defined_slope .GT. max_slopetyp)
THEN
456 WRITE(0,*)
'Warning: DEFINED_SLOPE too large in namelist'
458 errmsg =
'ERROR(set_soilveg_ruc): DEFINED_SLOPE too large in namelist'