20 integer,
intent(in) :: me,isot,ivet,nlunit
21 character(len=*),
intent(out) :: errmsg
22 integer,
intent(out) :: errflg
38 DATA smhigh_data /6.0/
39 namelist /soil_veg/ slope_data, rsmtbl, rgltbl, hstbl, snupx,
40 & bb, drysmc, f11, maxsmc, refsmc, satpsi, satdk, satdw,
41 & wltsmc, qtz, lparam, zbot_data, salp_data, cfactr_data,
42 & cmcmax_data, sbeta_data, rsmax_data, topt_data,
43 & refdk_data, frzk_data, bare, defined_veg, defined_soil,
44 & defined_slope, fxexp_data, nroot_data, refkdt_data, z0_data,
45 & czil_data, lai_data, csoil_data
54 slope_data =(/0.1, 0.6, 1.0, 0.35, 0.55, 0.8,
55 & 0.63, 0.0, 0.0, 0.0, 0.0, 0.0,
56 & 0.0 , 0.0, 0.0, 0.0, 0.0, 0.0,
57 & 0.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 rsmtbl =(/300.0, 175.0, 175.0, 300.0, 300.0, 70.0,
60 & 20.0, 225.0, 225.0, 225.0, 400.0, 20.0,
61 & 150.0, 0.0, 0.0, 0.0, 0.0, 0.0,
62 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
63 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
64c-----------------------------
65 rgltbl =(/30.0, 30.0, 30.0, 30.0, 30.0, 65.0,
66 & 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
67 & 100.0, 0.0, 0.0, 0.0, 0.0, 0.0,
68 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
69 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
70 hstbl =(/41.69, 54.53, 51.93, 47.35, 47.35, 54.53,
71 & 36.35, 42.00, 42.00, 42.00, 42.00, 36.35,
72 & 42.00, 0.00, 0.00, 0.00, 0.00, 0.00,
73 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
74 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
79 snupx =(/0.040, 0.040, 0.040, 0.040, 0.040, 0.040,
80 * 0.020, 0.020, 0.020, 0.020, 0.013, 0.020,
81 * 0.013, 0.000, 0.000, 0.000, 0.000, 0.000,
82 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
83 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
87c---------------------------------------------------------------------
91 nroot_data =(/4,4,4,4,4,4,3,3,3,2,3,3,2,0,0,
92 & 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0/)
96 z0_data =(/2.653, 0.826, 0.563, 1.089, 0.854, 0.856,
97 & 0.035, 0.238, 0.065, 0.076, 0.011, 0.125,
98 & 0.011, 0.000, 0.000, 0.000, 0.000, 0.000,
99 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
100 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
101clu: change to 3 or 2 oct 15, 2004
102 lai_data =(/3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
103 & 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
104 & 3.0, 0.0, 0.0, 0.0, 0.0, 0.0,
105 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
106 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
108 elseif(ivet.eq.1)
then
110 slope_data =(/1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
111 & 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
112 & 1.0 , 1.0, 1.0, 1.0, 1.0, 1.0,
113 & 1.0 , 1.0, 0.0, 0.0, 0.0, 0.0,
114 & 0.0 , 0.0, 0.0, 0.0, 0.0, 0.0/)
115 rsmtbl =(/300.0, 300.0, 70.0, 175.0, 175.0, 70.0,
116 & 70.0, 70.0, 70.0, 20.0, 40.0, 20.0,
117 & 400.0, 35.0, 200.0, 70.0, 100.0, 70.0,
118 & 150.0, 200.0, 0.0, 0.0,0.0, 0.0,
119 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
120c-----------------------------
121 rgltbl =(/30.0, 30.0, 30.0, 30.0, 30.0, 100.0,
122 & 100.0, 65.0, 65.0, 100.0, 100.0, 100.0,
123 & 100.0, 100.0, 100.0,100.0,30.0, 100.0,
124 & 100.0, 100.0, 0.0,0.0,0.0,0.0,
125 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
126 hstbl =(/47.35, 41.69, 47.35, 54.53, 51.93, 42.00,
127 & 42.00, 42.00, 42.00, 36.35, 60.00, 36.25,
128 & 42.00, 36.25, 42.00, 42.00, 51.75, 42.00,
129 & 42.00, 42.00, 0.00, 0.00, 0.00, 0.00,
130 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
131 snupx =(/0.080, 0.080, 0.080, 0.080, 0.080, 0.020,
132 * 0.020, 0.060, 0.040, 0.020, 0.010, 0.020,
133 * 0.020, 0.020, 0.013, 0.013, 0.010, 0.020,
134 & 0.020, 0.020, 0.000, 0.000, 0.000, 0.000,
135 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
144 nroot_data =(/4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2,
145 & 3, 1, 3, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/)
150 z0_data =(/1.089, 2.653, 0.854, 0.826, 0.80, 0.05,
151 & 0.03, 0.856, 0.856, 0.15, 0.04, 0.13,
152 & 1.00, 0.25, 0.011, 0.011, 0.001, 0.076,
153 & 0.05, 0.03, 0.000, 0.000, 0.000, 0.000,
154 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
156 lai_data =(/3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
157 & 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
158 & 3.0, 3.0, 3.0, 3.0, 3.0, 3.0,
159 & 3.0, 3.0, 0.0, 0.0, 0.0, 0.0,
160 & 0.0, 0.0, 0.0, 0.0, 0.0, 0.0/)
167 bb =(/4.26, 8.72, 11.55, 4.74, 10.73, 8.17,
168 & 6.77, 5.25, 4.26, 0.00, 0.00, 0.00,
169 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
170 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
171 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
174 drysmc=(/0.029, 0.119, 0.139, 0.047, 0.100, 0.103,
175 & 0.069, 0.066, 0.029, 0.000, 0.000, 0.000,
176 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
177 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
178 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
181 f11 =(/-0.999, -1.116, -2.137, -0.572, -3.201, -1.302,
182 & -1.519, -0.329, -0.999, 0.000, 0.000, 0.000,
183 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
184 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
185 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
186 maxsmc=(/0.421, 0.464, 0.468, 0.434, 0.406, 0.465,
187 & 0.404, 0.439, 0.421, 0.000, 0.000, 0.000,
188 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
189 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
190 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
201 refsmc=(/0.248, 0.368, 0.398, 0.281, 0.321, 0.361,
202 & 0.293, 0.301, 0.248, 0.000, 0.000, 0.000,
203 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
204 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
205 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
209 satpsi=(/0.04, 0.62, 0.47, 0.14, 0.10, 0.26,
210 & 0.14, 0.36, 0.04, 0.00, 0.00, 0.00,
211 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
212 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
213 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
214 satdk =(/1.41e-5, 0.20e-5, 0.10e-5, 0.52e-5, 0.72e-5,
215 & 0.25e-5, 0.45e-5, 0.34e-5, 1.41e-5, 0.00,
216 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00,
217 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00,
218 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00,
219 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
220 qtz =(/0.82, 0.10, 0.25, 0.60, 0.52, 0.35,
221 & 0.60, 0.40, 0.82, 0.00, 0.00, 0.00,
222 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
223 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
224 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
228 wltsmc=(/0.029, 0.119, 0.139, 0.047, 0.100, 0.103,
229 & 0.069, 0.066, 0.029, 0.000, 0.000, 0.000,
230 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
231 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000,
232 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
235 satdw =(/5.71e-6, 2.33e-5, 1.16e-5, 7.95e-6, 1.90e-5,
236 & 1.14e-5, 1.06e-5, 1.46e-5, 5.71e-6, 0.00,
237 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00,
238 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00,
239 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00,
240 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
251 bb =(/4.05, 4.26, 4.74, 5.33, 5.33, 5.25,
252 & 6.77, 8.72, 8.17, 10.73, 10.39, 11.55,
253 & 5.25, 4.26, 4.05, 4.26, 11.55, 4.05,
254 & 4.05, 0.00, 0.00, 0.00, 0.00, 0.00,
255 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
263 drysmc=(/0.010, 0.025, 0.010, 0.010, 0.010, 0.010,
264 & 0.010, 0.010, 0.010, 0.010, 0.010, 0.010,
265 & 0.010, 0.010, 0.010, 0.010, 0.010, 0.010,
266 & 0.010, 0.000, 0.000, 0.000, 0.000, 0.000,
267 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
270 f11 =(/-1.090, -1.041, -0.568, 0.162, 0.162, -0.327,
271 & -1.535, -1.118, -1.297, -3.211, -1.916, -2.258,
272 & -0.201, -1.041, -2.287, -1.041, -2.258, -2.287,
273 & -1.090, 0.000, 0.000, 0.000, 0.000, 0.000,
274 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
275 maxsmc=(/0.395, 0.421, 0.434, 0.476, 0.476, 0.439,
276 & 0.404, 0.464, 0.465, 0.406, 0.468, 0.457,
277 & 0.464, 0.421, 0.200, 0.421, 0.457, 0.200,
278 & 0.395, 0.000, 0.000, 0.000, 0.000, 0.000,
279 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
290 refsmc=(/0.236, 0.283, 0.312, 0.360, 0.360, 0.329,
291 & 0.315, 0.387, 0.382, 0.338, 0.404, 0.403,
292 & 0.348, 0.283, 0.133, 0.283, 0.403, 0.133,
293 & 0.236, 0.000, 0.000, 0.000, 0.000, 0.000,
294 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
298 satpsi=(/0.035, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548,
299 & 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677,
300 & 0.3548, 0.0363, 0.0350, 0.0363, 0.4677, 0.0350,
301 & 0.0350, 0.00, 0.00, 0.00, 0.00, 0.00,
302 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
303 satdk =(/1.76e-4, 1.4078e-5, 5.2304e-6, 2.8089e-6, 2.8089e-6,
304 & 3.377e-6, 4.4518e-6, 2.0348e-6, 2.4464e-6, 7.2199e-6,
305 & 1.3444e-6, 9.7394e-7, 3.377e-6, 1.4078e-5, 1.4087e-05,
306 & 1.4078e-5, 9.7394e-7, 1.4078e-5, 1.760e-4, 0.00,
307 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00,
308 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
310 qtz =(/0.92, 0.82, 0.25, 0.15, 0.10, 0.20,
311 & 0.60, 0.10, 0.35, 0.52, 0.10, 0.25,
312 & 0.05, 0.25, 0.07, 0.25, 0.60, 0.52,
313 & 0.92, 0.00, 0.00, 0.00, 0.00, 0.00,
314 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
318 wltsmc=(/0.023, 0.028, 0.047, 0.084, 0.084, 0.066,
319 & 0.069, 0.120, 0.103, 0.100, 0.126, 0.135,
320 & 0.069, 0.028, 0.012, 0.028, 0.135, 0.012,
321 & 0.023, 0.000, 0.000, 0.000, 0.000, 0.000,
322 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
325 satdw =(/0.6316e-4, 0.5171e-5, 0.8072e-5, 0.2386e-4, 0.2386e-4,
326 & 0.1433e-4, 0.1006e-4, 0.2358e-4, 0.1130e-4,0.1864e-04,
327 & 0.9658e-05,0.1151e-04,0.1356e-04,0.5171e-05,0.9978e-05,
328 & 0.5171e-05, 0.1151e-04, 0.9978e-05, 0.6316e-04, 0.00,
329 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00,
330 & 0.00 , 0.00 , 0.00 , 0.00 , 0.00/)
392 IF (defined_soil .GT. max_soiltyp)
THEN
394 errmsg =
'ERROR(set_soilveg): DEFINED_SOIL too large in '// &
398 IF (defined_veg .GT. max_vegtyp)
THEN
400 errmsg =
'ERROR(set_soilveg): DEFINED_VEG too large in '// &
404 IF (defined_slope .GT. max_slopetyp)
THEN
406 errmsg =
'ERROR(set_soilveg): DEFINED_SLOPE too large in '//&
414 DO i = 1,defined_soil
415 if (satdk(i) /= 0.0 .and. bb(i) > 0.0)
then
416 satdw(i) = bb(i)*satdk(i)*(satpsi(i)/maxsmc(i))
417 f11(i) = log10(satpsi(i)) + bb(i)*log10(maxsmc(i)) + 2.0
418 refsmc1 = maxsmc(i)*(5.79e-9/satdk(i))
419 & **(1.0/(2.0*bb(i)+3.0))
420 refsmc(i) = refsmc1 + (maxsmc(i)-refsmc1) / smhigh
421 wltsmc1 = maxsmc(i) * (200.0/satpsi(i))**(-1.0/bb(i))
422 wltsmc(i) = wltsmc1 - smlow * wltsmc1