63 USE modi_open_namelist
64 USE modi_close_namelist
66 USE modi_extrapol_fields
71 USE yomhook
,ONLY : lhook, dr_hook
72 USE parkind1
,ONLY : jprb
87 TYPE(isba_t
),
INTENT(INOUT) :: i
88 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
90 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
96 REAL,
DIMENSION(IG%NDIM,NVEGTYPE) :: zrootfracgv,test,test2,test3
99 INTEGER :: ihground_layer
104 LOGICAL :: gpar_stress
106 INTEGER :: isize_lmeb_patch
112 INTEGER,
PARAMETER :: ntime_max = 36
113 INTEGER,
PARAMETER :: nground_max = 150
114 INTEGER,
PARAMETER :: nvegtype_max = 19
116 REAL,
DIMENSION(NVEGTYPE_MAX) :: xstress
118 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_vegtype
120 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: xunif_veg
121 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: xunif_lai
122 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: xunif_z0
123 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: xunif_emis
125 REAL,
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: xunif_dg
126 REAL,
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: xunif_rootfrac
127 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_ground_depth
128 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_root_depth
129 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_root_extinction
130 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_root_lin
131 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_dice
133 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_rsmin
134 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_gamma
135 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_wrmax_cf
136 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_rgl
137 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_cv
138 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_z0_o_z0h
139 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_albnir_veg
140 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_albvis_veg
141 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_albuv_veg
142 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_albnir_soil
143 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_albvis_soil
144 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_albuv_soil
145 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_gmes
146 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_bslai
147 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_laimin
148 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_sefold
149 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_gc
150 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_dmax
151 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_f2i
152 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_h_tree
153 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_re25
154 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_ce_nitro
155 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_cf_nitro
156 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_cna_nitro
158 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: xunif_laigv
159 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: xunif_z0litter
160 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: xunif_gndlitter
161 REAL,
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: xunif_rootfracgv
162 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_rsmingv
163 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_gammagv
164 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_wrmax_cfgv
165 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_rglgv
166 REAL,
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: xunif_h_veg
167 REAL,
DIMENSION(NVEGTYPE_MAX) :: xunif_root_extinctiongv
169 LOGICAL,
DIMENSION(NVEGTYPE_MAX) :: lunif_stress
173 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_vegtype
175 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cfnam_veg
176 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cfnam_lai
177 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cfnam_z0
178 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cfnam_emis
180 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: cfnam_dg
181 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: cfnam_rootfrac
182 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_ground_depth
183 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_root_depth
184 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_root_extinction
185 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_root_lin
186 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_dice
188 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_rsmin
189 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_gamma
190 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_wrmax_cf
191 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_rgl
192 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_cv
193 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_z0_o_z0h
194 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_albnir_veg
195 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_albvis_veg
196 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_albuv_veg
197 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_albnir_soil
198 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_albvis_soil
199 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_albuv_soil
200 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_gmes
201 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_bslai
202 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_laimin
203 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_sefold
204 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_gc
205 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_dmax
206 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_f2i
207 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_h_tree
208 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_re25
209 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_ce_nitro
210 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_cf_nitro
211 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_cna_nitro
213 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cfnam_laigv
214 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cfnam_z0litter
215 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cfnam_gndlitter
216 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: cfnam_rootfracgv
217 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_rsmingv
218 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_gammagv
219 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_wrmax_cfgv
220 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_rglgv
221 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cfnam_h_veg
222 CHARACTER(LEN=28),
DIMENSION(NVEGTYPE_MAX) :: cfnam_root_extinctiongv
226 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_vegtype
228 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cftyp_veg
229 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cftyp_lai
230 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cftyp_z0
231 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cftyp_emis
233 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: cftyp_dg
234 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: cftyp_rootfrac
235 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_ground_depth
236 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_root_depth
237 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_root_extinction
238 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_root_lin
239 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_dice
241 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_rsmin
242 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_gamma
243 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_wrmax_cf
244 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_rgl
245 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_cv
246 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_z0_o_z0h
247 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_albnir_veg
248 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_albvis_veg
249 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_albuv_veg
250 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_albnir_soil
251 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_albvis_soil
252 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_albuv_soil
253 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_gmes
254 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_bslai
255 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_laimin
256 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_sefold
257 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_gc
258 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_dmax
259 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_f2i
260 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_h_tree
261 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_re25
262 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_ce_nitro
263 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_cf_nitro
264 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_cna_nitro
266 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cftyp_laigv
267 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cftyp_z0litter
268 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cftyp_gndlitter
269 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NGROUND_MAX) :: cftyp_rootfracgv
270 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_rsmingv
271 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_gammagv
272 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_wrmax_cfgv
273 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_rglgv
274 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX,NTIME_MAX) :: cftyp_h_veg
275 CHARACTER(LEN=6),
DIMENSION(NVEGTYPE_MAX) :: cftyp_root_extinctiongv
277 REAL(KIND=JPRB) :: zhook_handle
279 namelist/nam_data_isba/ntime, xunif_vegtype, xunif_dg, xunif_rootfrac, xunif_dice, &
280 xunif_ground_depth, xunif_root_depth, xunif_root_extinction, &
281 xunif_root_lin, xunif_lai, xunif_veg, xunif_z0, xunif_emis, &
282 xunif_rsmin, xunif_gamma, xunif_wrmax_cf, xunif_rgl, &
283 xunif_cv, xunif_z0_o_z0h, &
284 xunif_albnir_veg, xunif_albvis_veg, xunif_albuv_veg, &
285 xunif_albnir_soil, xunif_albvis_soil, xunif_albuv_soil, &
286 xunif_gmes, xunif_bslai, xunif_laimin, xunif_sefold, &
287 xunif_gc, xunif_dmax, xunif_f2i, lunif_stress, xunif_h_tree, xunif_re25, &
288 xunif_ce_nitro, xunif_cf_nitro, xunif_cna_nitro, &
289 cfnam_veg,cfnam_lai,cfnam_rsmin,cfnam_gamma,cfnam_wrmax_cf, &
290 cfnam_rgl,cfnam_cv,cfnam_dg,cfnam_dice,cfnam_z0,cfnam_z0_o_z0h, &
291 cfnam_albnir_veg,cfnam_albvis_veg,cfnam_albuv_veg, &
292 cfnam_albnir_soil,cfnam_albvis_soil,cfnam_albuv_soil, &
294 cfnam_vegtype,cfnam_rootfrac, &
295 cfnam_ground_depth,cfnam_root_depth,cfnam_root_extinction,cfnam_root_lin, &
296 cfnam_gmes,cfnam_bslai,cfnam_laimin,cfnam_sefold,cfnam_gc, &
297 cfnam_dmax,cfnam_f2i, cfnam_h_tree,cfnam_re25, &
298 cfnam_ce_nitro,cfnam_cf_nitro,cfnam_cna_nitro, &
299 cftyp_veg,cftyp_lai,cftyp_rsmin,cftyp_gamma,cftyp_wrmax_cf, &
300 cftyp_rgl,cftyp_cv,cftyp_dg,cftyp_dice,cftyp_z0,cftyp_z0_o_z0h, &
301 cftyp_albnir_veg,cftyp_albvis_veg,cftyp_albuv_veg, &
302 cftyp_albnir_soil,cftyp_albvis_soil,cftyp_albuv_soil, &
304 cftyp_vegtype,cftyp_rootfrac, &
305 cftyp_ground_depth,cftyp_root_depth,cftyp_root_extinction,cftyp_root_lin, &
306 cftyp_gmes,cftyp_bslai,cftyp_laimin,cftyp_sefold,cftyp_gc, &
307 cftyp_dmax,cftyp_f2i, cftyp_h_tree,cftyp_re25, &
308 cftyp_ce_nitro,cftyp_cf_nitro,cftyp_cna_nitro, &
309 xunif_laigv, xunif_z0litter, xunif_rootfracgv, xunif_gndlitter, xunif_rsmingv, &
310 xunif_gammagv, xunif_wrmax_cfgv, xunif_rglgv, &
311 xunif_h_veg, xunif_root_extinctiongv, &
312 cfnam_laigv, cfnam_z0litter, cfnam_rootfracgv, cfnam_gndlitter, cfnam_rsmingv, &
313 cfnam_gammagv, cfnam_wrmax_cfgv, cfnam_rglgv, &
314 cfnam_h_veg, cfnam_root_extinctiongv, &
315 cftyp_laigv, cftyp_z0litter, cftyp_rootfracgv, cftyp_gndlitter, cftyp_rsmingv, &
316 cftyp_gammagv, cftyp_wrmax_cfgv, cftyp_rglgv, &
317 cftyp_h_veg, cftyp_root_extinctiongv
319 DATA xstress /1.,1.,1.,0.,1.,0.,1.,0.,1.,0.,0.,0.,0.,0.,1.,0.,1.,0.,0./
325 IF (lhook) CALL dr_hook(
'PGD_ISBA_PAR',0,zhook_handle)
331 xunif_wrmax_cf = xundef
337 xunif_z0_o_z0h = xundef
338 xunif_albnir_veg = xundef
339 xunif_albvis_veg = xundef
340 xunif_albuv_veg = xundef
341 xunif_albnir_soil = xundef
342 xunif_albvis_soil = xundef
343 xunif_albuv_soil = xundef
345 xunif_vegtype = xundef
346 xunif_rootfrac = xundef
347 xunif_ground_depth = xundef
348 xunif_root_depth = xundef
349 xunif_root_extinction = xundef
350 xunif_root_lin = xundef
353 xunif_laimin = xundef
354 xunif_sefold = xundef
358 lunif_stress = .true.
359 xunif_h_tree = xundef
361 xunif_ce_nitro = xundef
362 xunif_cf_nitro = xundef
363 xunif_cna_nitro = xundef
366 xunif_z0litter = xundef
367 xunif_rootfracgv = xundef
368 xunif_gndlitter = xundef
369 xunif_rsmingv = xundef
370 xunif_gammagv = xundef
371 xunif_wrmax_cfgv = xundef
374 xunif_root_extinctiongv = xundef
376 cfnam_vegtype(:) =
' '
381 cfnam_emis(:,:) =
' '
384 cfnam_rootfrac(:,:) =
' '
387 cfnam_ground_depth(:) =
' '
388 cfnam_root_depth(:) =
' '
389 cfnam_root_extinction(:) =
' '
390 cfnam_root_lin(:) =
' '
394 cfnam_wrmax_cf(:) =
' '
397 cfnam_z0_o_z0h(:) =
' '
398 cfnam_albnir_veg(:) =
' '
399 cfnam_albvis_veg(:) =
' '
400 cfnam_albuv_veg(:) =
' '
401 cfnam_albnir_soil(:) =
' '
402 cfnam_albvis_soil(:) =
' '
403 cfnam_albuv_soil(:) =
' '
406 cfnam_laimin(:) =
' '
407 cfnam_sefold(:) =
' '
411 cfnam_h_tree(:) =
' '
413 cfnam_ce_nitro(:) =
' '
414 cfnam_cf_nitro(:) =
' '
415 cfnam_cna_nitro(:) =
' '
417 cfnam_laigv(:,:) =
' '
418 cfnam_z0litter(:,:) =
' '
419 cfnam_gndlitter(:,:) =
' '
420 cfnam_rootfracgv(:,:) =
' '
421 cfnam_rsmingv(:) =
' '
422 cfnam_gammagv(:) =
' '
423 cfnam_wrmax_cfgv(:) =
' '
425 cfnam_h_veg(:,:) =
' '
426 cfnam_root_extinctiongv(:) =
' '
428 cftyp_vegtype(:) =
' '
433 cftyp_emis(:,:) =
' '
436 cftyp_rootfrac(:,:) =
' '
439 cftyp_ground_depth(:) =
' '
440 cftyp_root_depth(:) =
' '
441 cftyp_root_extinction(:) =
' '
442 cftyp_root_lin(:) =
' '
446 cftyp_wrmax_cf(:) =
' '
449 cftyp_z0_o_z0h(:) =
' '
450 cftyp_albnir_veg(:) =
' '
451 cftyp_albvis_veg(:) =
' '
452 cftyp_albuv_veg(:) =
' '
453 cftyp_albnir_soil(:) =
' '
454 cftyp_albvis_soil(:) =
' '
455 cftyp_albuv_soil(:) =
' '
458 cftyp_laimin(:) =
' '
459 cftyp_sefold(:) =
' '
463 cftyp_h_tree(:) =
' '
465 cftyp_ce_nitro(:) =
' '
466 cftyp_cf_nitro(:) =
' '
467 cftyp_cna_nitro(:) =
' '
469 cftyp_laigv(:,:) =
' '
470 cftyp_z0litter(:,:) =
' '
471 cftyp_gndlitter(:,:) =
' '
472 cftyp_rootfracgv(:,:) =
' '
473 cftyp_rsmingv(:) =
' '
474 cftyp_gammagv(:) =
' '
475 cftyp_wrmax_cfgv(:) =
' '
477 cftyp_h_veg(:,:) =
' '
478 cftyp_root_extinctiongv(:) =
' '
480 isize_lmeb_patch=count(i%LMEB_PATCH(:))
489 CALL
posnam(ilunam,
'NAM_DATA_ISBA',gfound,iluout)
490 IF (gfound)
READ(unit=ilunam,nml=nam_data_isba)
497 IF (nvegtype_max < nvegtype)
THEN
498 WRITE(iluout,*)
'------------------------------------'
499 WRITE(iluout,*)
'Please update pgd_isba_par.f90 routine : '
500 WRITE(iluout,*)
'The maximum number of VEGTYPE '
501 WRITE(iluout,*)
'in the declaration of the namelist variables '
502 WRITE(iluout,*)
'must be increased to : ', nvegtype
503 WRITE(iluout,*)
'------------------------------------'
504 CALL
abor1_sfx(
'PGD_ISBA_PAR: MAXIMUM NUMBER OF VEGTYPE MUST BE INCREASED IN NAMELIST DECLARATION')
507 IF (nground_max < i%NGROUND_LAYER)
THEN
508 WRITE(iluout,*)
'------------------------------------'
509 WRITE(iluout,*)
'Please update pgd_isba_par.f90 routine : '
510 WRITE(iluout,*)
'The maximum number of soil layers '
511 WRITE(iluout,*)
'in the declaration of the namelist variables '
512 WRITE(iluout,*)
'must be increased to : ', i%NGROUND_LAYER
513 WRITE(iluout,*)
'------------------------------------'
514 CALL
abor1_sfx(
'PGD_ISBA_PAR: MAXIMUM NUMBER OF SOIL LAYERS MUST BE INCREASED IN NAMELIST DECLARATION')
518 IF (ntime/=36 .AND. ntime/=12 .AND. ntime/=2 .AND. ntime/=1) &
519 CALL
abor1_sfx(
'PGD_ISBA_PAR: WRONG VALUE FOR NTIME (POSSIBLE VALUES ARE 1, 12 OR 36')
528 ALLOCATE(dti%XPAR_VEGTYPE (ig%NDIM,nvegtype))
530 hprogram,
'ARI',
'VEGTYPE: vegetation type',
'NAT',cfnam_vegtype, &
531 cftyp_vegtype,xunif_vegtype,dti%XPAR_VEGTYPE,dti%LDATA_VEGTYPE)
533 IF (.NOT.i%LECOCLIMAP .AND. .NOT.dti%LDATA_VEGTYPE)
THEN
536 WRITE(iluout,*)
'***********************************************************'
537 WRITE(iluout,*)
'* Error in PGD field preparation of field VEGTYPE *'
538 WRITE(iluout,*)
'* There is no prescribed value and no input file *'
539 WRITE(iluout,*)
'* Without ECOCLIMAP, this field must be prescribed *'
540 WRITE(iluout,*)
'***********************************************************'
542 CALL
abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR VEGTYPE')
544 ELSEIF (dti%LDATA_VEGTYPE)
THEN
546 WHERE (dti%XPAR_VEGTYPE(:,:)==xundef) dti%XPAR_VEGTYPE(:,:)=0.
547 WHERE (dti%XPAR_VEGTYPE(:,:)/=0.) dti%XPAR_VEGTYPE(:,:) = dti%XPAR_VEGTYPE(:,:) / &
548 spread(sum(dti%XPAR_VEGTYPE(:,:),2),2,nvegtype)
554 ALLOCATE(dti%XPAR_VEG (ig%NDIM,ntime,nvegtype))
556 hprogram,
'ARI',
'VEG: vegetation fraction',
'NAT',cfnam_veg,cftyp_veg,xunif_veg, &
557 dti%XPAR_VEG,dti%LDATA_VEG)
558 IF (.NOT. dti%LDATA_VEG)
DEALLOCATE(dti%XPAR_VEG)
560 ALLOCATE(dti%XPAR_LAI (ig%NDIM,ntime,nvegtype))
562 hprogram,
'ARI',
'LAI: leaf area index',
'NAT',cfnam_lai,cftyp_lai,xunif_lai, &
563 dti%XPAR_LAI,dti%LDATA_LAI)
564 IF (.NOT. dti%LDATA_VEGTYPE .AND. .NOT. dti%LDATA_LAI)
DEALLOCATE(dti%XPAR_LAI)
566 ALLOCATE(dti%XPAR_H_VEG (ig%NDIM,ntime,nvegtype))
568 hprogram,
'ARI',
'H_VEG: vegetation height',
'NAT',cfnam_h_veg,cftyp_h_veg,xunif_h_veg, &
569 dti%XPAR_H_VEG,dti%LDATA_H_VEG)
570 IF (.NOT. dti%LDATA_H_VEG)
DEALLOCATE(dti%XPAR_H_VEG)
572 ALLOCATE(dti%XPAR_Z0 (ig%NDIM,ntime,nvegtype))
574 hprogram,
'CDN',
'Z0: roughness length',
'NAT',cfnam_z0,cftyp_z0,xunif_z0, &
575 dti%XPAR_Z0,dti%LDATA_Z0)
576 IF (.NOT. dti%LDATA_Z0)
DEALLOCATE(dti%XPAR_Z0)
578 ALLOCATE(dti%XPAR_EMIS (ig%NDIM,ntime,nvegtype))
580 hprogram,
'ARI',
'EMIS: emissivity',
'NAT',cfnam_emis,cftyp_emis,xunif_emis, &
581 dti%XPAR_EMIS,dti%LDATA_EMIS)
582 IF (.NOT. dti%LDATA_EMIS)
DEALLOCATE(dti%XPAR_EMIS)
584 IF (.NOT.i%LECOCLIMAP .AND. .NOT.(dti%LDATA_VEG .AND. dti%LDATA_LAI .AND. dti%LDATA_Z0 .AND. dti%LDATA_EMIS))
THEN
587 WRITE(iluout,*)
'***********************************************************'
588 WRITE(iluout,*)
'* Error in PGD field preparation of temporal fields *'
589 WRITE(iluout,*)
'* There is no prescribed value and no input file : *'
590 IF (.NOT.dti%LDATA_VEG )
WRITE(iluout,*)
'* for VEG *'
591 IF (.NOT.dti%LDATA_LAI )
WRITE(iluout,*)
'* for LAI *'
592 IF (.NOT.dti%LDATA_Z0 )
WRITE(iluout,*)
'* for Z0 *'
593 IF (.NOT.dti%LDATA_EMIS)
WRITE(iluout,*)
'* for EMIS *'
594 WRITE(iluout,*)
'* Without ECOCLIMAP, these fields must be prescribed *'
595 WRITE(iluout,*)
'***********************************************************'
597 CALL
abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR TEMPORAL PARAMETERS')
602 IF(isize_lmeb_patch>0)
THEN
604 ALLOCATE(dti%XPAR_LAIGV (ig%NDIM,ntime,nvegtype))
606 hprogram,
'ARI',
'LAIGV: GV leaf area index',
'NAT', &
607 cfnam_laigv,cftyp_laigv,xunif_laigv,dti%XPAR_LAIGV,dti%LDATA_LAIGV)
608 IF (.NOT. dti%LDATA_LAIGV)
DEALLOCATE(dti%XPAR_LAIGV)
610 ALLOCATE(dti%XPAR_GNDLITTER (ig%NDIM,ntime,nvegtype))
612 hprogram,
'ARI',
'GNDLITTER: ground litter fraction',
'NAT',&
613 cfnam_gndlitter,cftyp_gndlitter,xunif_gndlitter,dti%XPAR_GNDLITTER,dti%LDATA_GNDLITTER)
614 IF (.NOT. dti%LDATA_GNDLITTER)
DEALLOCATE(dti%XPAR_GNDLITTER)
616 ALLOCATE(dti%XPAR_Z0LITTER (ig%NDIM,ntime,nvegtype))
618 hprogram,
'CDN',
'Z0LITTER: ground litter roughness length',
'NAT', &
619 cfnam_z0litter,cftyp_z0litter,xunif_z0litter,dti%XPAR_Z0LITTER,dti%LDATA_Z0LITTER)
620 IF (.NOT. dti%LDATA_Z0LITTER)
DEALLOCATE(dti%XPAR_Z0LITTER)
627 ALLOCATE(dti%XPAR_DG (ig%NDIM,i%NGROUND_LAYER,nvegtype))
629 hprogram,
'ARI',
'DG: ground depth',
'NAT',cfnam_dg,cftyp_dg,xunif_dg,dti%XPAR_DG,dti%LDATA_DG)
630 IF (.NOT. dti%LDATA_VEGTYPE .AND. .NOT. dti%LDATA_DG)
DEALLOCATE(dti%XPAR_DG)
632 ALLOCATE(dti%XPAR_ROOT_DEPTH (ig%NDIM,nvegtype))
634 hprogram,
'ARI',
'ROOT_DEPTH: root depth',
'NAT',cfnam_root_depth,cftyp_root_depth,&
635 xunif_root_depth,dti%XPAR_ROOT_DEPTH,dti%LDATA_ROOT_DEPTH)
637 ALLOCATE(dti%XPAR_GROUND_DEPTH (ig%NDIM,nvegtype))
639 hprogram,
'ARI',
'GROUND_DEPTH: ground depth',
'NAT',cfnam_ground_depth,cftyp_ground_depth,&
640 xunif_ground_depth,dti%XPAR_GROUND_DEPTH,dti%LDATA_GROUND_DEPTH)
642 IF(i%CISBA==
'DIF')
THEN
644 ALLOCATE(dti%XPAR_ROOTFRAC (ig%NDIM,i%NGROUND_LAYER,nvegtype))
646 hprogram,
'ARI',
'ROOTFRAC: root fraction',
'NAT',cfnam_rootfrac,cftyp_rootfrac,&
647 xunif_rootfrac,dti%XPAR_ROOTFRAC,dti%LDATA_ROOTFRAC)
648 IF (.NOT. dti%LDATA_ROOTFRAC)
DEALLOCATE(dti%XPAR_ROOTFRAC)
650 ALLOCATE(dti%XPAR_ROOT_EXTINCTION (ig%NDIM,nvegtype))
652 hprogram,
'ARI',
'ROOT_EXTINCTION: root extinction',
'NAT',cfnam_root_extinction,cftyp_root_extinction,&
653 xunif_root_extinction,dti%XPAR_ROOT_EXTINCTION,dti%LDATA_ROOT_EXTINCTION)
654 IF (.NOT. dti%LDATA_ROOT_EXTINCTION)
DEALLOCATE(dti%XPAR_ROOT_EXTINCTION)
656 ALLOCATE(dti%XPAR_ROOT_LIN (ig%NDIM,nvegtype))
658 hprogram,
'ARI',
'ROOT_LIN: root linear',
'NAT',cfnam_root_lin,cftyp_root_lin,&
659 xunif_root_lin,dti%XPAR_ROOT_LIN,dti%LDATA_ROOT_LIN)
660 IF (.NOT. dti%LDATA_ROOT_LIN)
DEALLOCATE(dti%XPAR_ROOT_LIN)
663 IF(isize_lmeb_patch>0)
THEN
665 ALLOCATE(dti%XPAR_ROOTFRACGV (ig%NDIM,i%NGROUND_LAYER,nvegtype))
667 hprogram,
'ARI',
'ROOTFRACGV: GV root fraction',
'NAT',cfnam_rootfracgv,cftyp_rootfracgv,&
668 xunif_rootfracgv,dti%XPAR_ROOTFRACGV,dti%LDATA_ROOTFRACGV)
669 IF (.NOT. dti%LDATA_ROOTFRACGV)
DEALLOCATE(dti%XPAR_ROOTFRACGV)
672 IF (.NOT. dti%LDATA_ROOTFRACGV .AND. dti%LDATA_ROOTFRAC)
THEN
673 ALLOCATE(dti%XPAR_ROOTFRACGV (ig%NDIM,i%NGROUND_LAYER,nvegtype))
674 ihground_layer=int(ceiling(
REAL(i%nground_layer)/2.0))
675 dti%XPAR_ROOTFRACGV=0.
676 DO iih=1,ihground_layer
677 dti%XPAR_ROOTFRACGV(:,iih,:)=dti%XPAR_ROOTFRAC(:,iih,:)
679 zrootfracgv(:,:)=sum(dti%XPAR_ROOTFRACGV,dim=2)
680 DO iih=1,ihground_layer
681 test=reshape(dti%XPAR_ROOTFRACGV(:,iih,:),(/ig%NDIM,nvegtype/))
683 WHERE(zrootfracgv>0.)test2 = 1./zrootfracgv
685 dti%XPAR_ROOTFRACGV(:,iih,:)=test3
687 dti%LDATA_ROOTFRACGV = .true.
690 ALLOCATE(dti%XPAR_ROOT_EXTINCTIONGV(ig%NDIM,nvegtype))
692 hprogram,
'ARI',
'ROOT_EXTINCTIONGV: root ext gv ',
'NAT',cfnam_root_extinctiongv,cftyp_root_extinctiongv,&
693 xunif_root_extinctiongv,dti%XPAR_ROOT_EXTINCTIONGV,dti%LDATA_ROOT_EXTINCTIONGV)
694 IF (.NOT. dti%LDATA_ROOT_EXTINCTIONGV)
DEALLOCATE(dti%XPAR_ROOT_EXTINCTIONGV)
696 IF (.NOT. dti%LDATA_ROOT_EXTINCTIONGV .AND. dti%LDATA_ROOT_EXTINCTION)
THEN
697 ALLOCATE(dti%XPAR_ROOT_EXTINCTIONGV(ig%NDIM,nvegtype))
698 dti%XPAR_ROOT_EXTINCTIONGV = dti%XPAR_ROOT_EXTINCTION
699 dti%LDATA_ROOT_EXTINCTIONGV = .true.
705 IF (.NOT.i%LECOCLIMAP)
THEN
706 IF(dti%LDATA_DG .AND. .NOT.dti%LDATA_ROOTFRAC .AND. &
707 (.NOT.dti%LDATA_ROOT_DEPTH.OR..NOT.dti%LDATA_ROOT_EXTINCTION.OR..NOT.dti%LDATA_ROOT_LIN))
THEN
709 WRITE(iluout,*)
'****************************************************************************'
710 WRITE(iluout,*)
'* Without ECOCLIMAP, Error in PGD field preparation for ISBA-DIF *'
711 WRITE(iluout,*)
'* There is no prescribed value and no input file *'
712 WRITE(iluout,*)
'* (1) XUNIF_ROOTFRAC must be given. *'
713 WRITE(iluout,*)
'* (2) Other solution, give all these fields: *'
714 WRITE(iluout,*)
'* - XUNIF_ROOT_DEPTH (soil root depth) *'
715 WRITE(iluout,*)
'* - XUNIF_ROOT_EXTINCTION (root extinction parameter [Jackson 1996]) *'
716 WRITE(iluout,*)
'* - XUNIF_ROOT_LIN (0.05 usually; 1=uniform root distribution!!)*'
717 WRITE(iluout,*)
'****************************************************************************'
719 CALL
abor1_sfx(
"PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
720 ELSEIF( .NOT.all(i%XSOILGRID(:)==xundef) .AND. &
721 (.NOT.dti%LDATA_GROUND_DEPTH .OR..NOT.dti%LDATA_ROOT_DEPTH.OR. &
722 .NOT.dti%LDATA_ROOT_EXTINCTION.OR..NOT.dti%LDATA_ROOT_LIN ))
THEN
724 WRITE(iluout,*)
'****************************************************************************'
725 WRITE(iluout,*)
'* Without ECOCLIMAP, Error in PGD field preparation for ISBA-DIF *'
726 WRITE(iluout,*)
'* There is no prescribed value and no input file. *'
727 WRITE(iluout,*)
'* When XSOILGRID is given, other field are needed : *'
728 WRITE(iluout,*)
'* - XUNIF_GROUND_DEPTH (soil ground depth for moisture) *'
729 WRITE(iluout,*)
'* - XUNIF_ROOT_DEPTH (soil root depth) *'
730 WRITE(iluout,*)
'* - XUNIF_ROOT_LIN (0.05 usually; 1=uniform root distribution!!)*'
731 WRITE(iluout,*)
'* - XUNIF_ROOT_EXTINCTION (root extinction parameter [Jackson 1996]) *'
732 WRITE(iluout,*)
'****************************************************************************'
734 CALL
abor1_sfx(
"PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
736 IF(.NOT.dti%LDATA_DG .AND.all(i%XSOILGRID(:)==xundef))
THEN
738 WRITE(iluout,*)
'****************************************************************************'
739 WRITE(iluout,*)
'* Without ECOCLIMAP, Error in PGD field preparation for ISBA-DIF *'
740 WRITE(iluout,*)
'* There is no prescribed value to compute vertical soil grid. *'
741 WRITE(iluout,*)
'* 2 solutions: *'
742 WRITE(iluout,*)
'* (1) Give XUNIF_DG in NAM_DATA_ISBA. *'
743 WRITE(iluout,*)
'* OR *'
744 WRITE(iluout,*)
'* (2) Give XSOILGRID in NAM_ISBA *'
745 WRITE(iluout,*)
'****************************************************************************'
747 CALL
abor1_sfx(
"PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
753 IF ( .NOT.i%LECOCLIMAP .AND. .NOT.dti%LDATA_DG .AND. &
754 (.NOT.dti%LDATA_GROUND_DEPTH.OR..NOT.dti%LDATA_ROOT_DEPTH) )
THEN
756 WRITE(iluout,*)
'****************************************************************************'
757 WRITE(iluout,*)
'* Without ECOCLIMAP, Error in PGD field preparation *'
758 WRITE(iluout,*)
'* There is no prescribed value and no input file *'
759 WRITE(iluout,*)
'* XUNIF_DG or both XUNIF_GROUND_DEPTH and XUNIF_ROOT_DEPTH must be given. *'
760 WRITE(iluout,*)
'****************************************************************************'
762 CALL
abor1_sfx(
"PGD_ISBA_PAR: PROBLEM IN SOIL GRID COMPUTATION")
767 ALLOCATE(dti%XPAR_DICE (ig%NDIM,nvegtype))
769 hprogram,
'ARI',
'DICE: ice depth for runoff',
'NAT',cfnam_dice,cftyp_dice,&
770 xunif_dice,dti%XPAR_DICE,dti%LDATA_DICE)
772 IF (.NOT.i%LECOCLIMAP.AND..NOT. dti%LDATA_DICE)
THEN
773 IF(i%CISBA/=
'DIF' .AND. (dti%LDATA_DG.OR.dti%LDATA_ROOT_DEPTH))
THEN
775 dti%XPAR_DICE(:,:) = max(0.2,0.8*dti%XPAR_DG(:,2,:))
776 ELSEIF(dti%LDATA_ROOT_DEPTH)
THEN
777 dti%XPAR_DICE(:,:) = max(0.2,0.8*dti%XPAR_ROOT_DEPTH(:,:))
779 dti%LDATA_DICE=.true.
780 ELSEIF (i%CISBA==
'DIF')
THEN
781 dti%XPAR_DICE(:,:) = 0.0
782 dti%LDATA_DICE=.true.
785 WRITE(iluout,*)
'***********************************************************'
786 WRITE(iluout,*)
'* Error in PGD field preparation of field DICE *'
787 WRITE(iluout,*)
'* There is no prescribed value and no input file *'
788 WRITE(iluout,*)
'* Without ECOCLIMAP, this field must be prescribed *'
789 WRITE(iluout,*)
'***********************************************************'
791 CALL
abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR DICE')
797 ALLOCATE(dti%XPAR_RSMIN (ig%NDIM,nvegtype))
799 hprogram,
'INV',
'RSMIN: minimal stomatal resistance',
'NAT',cfnam_rsmin, &
800 cftyp_rsmin,xunif_rsmin,dti%XPAR_RSMIN,dti%LDATA_RSMIN)
801 IF (.NOT. dti%LDATA_RSMIN)
DEALLOCATE(dti%XPAR_RSMIN)
803 ALLOCATE(dti%XPAR_GAMMA (ig%NDIM,nvegtype))
805 hprogram,
'ARI',
'GAMMA: gamma coefficient',
'NAT',cfnam_gamma, &
806 cftyp_gamma,xunif_gamma,dti%XPAR_GAMMA,dti%LDATA_GAMMA)
807 IF (.NOT. dti%LDATA_GAMMA)
DEALLOCATE(dti%XPAR_GAMMA)
809 ALLOCATE(dti%XPAR_WRMAX_CF (ig%NDIM,nvegtype))
811 hprogram,
'ARI',
'WRMAX_CF: coeff. for max WR',
'NAT',cfnam_wrmax_cf, &
812 cftyp_wrmax_cf,xunif_wrmax_cf,dti%XPAR_WRMAX_CF,dti%LDATA_WRMAX_CF)
813 IF (.NOT. dti%LDATA_WRMAX_CF)
DEALLOCATE(dti%XPAR_WRMAX_CF)
815 ALLOCATE(dti%XPAR_RGL (ig%NDIM,nvegtype))
817 hprogram,
'ARI',
'RGL: max SW rad. for photosynthesis',
'NAT',cfnam_rgl, &
818 cftyp_rgl,xunif_rgl,dti%XPAR_RGL,dti%LDATA_RGL)
819 IF (.NOT. dti%LDATA_RGL)
DEALLOCATE(dti%XPAR_RGL)
821 ALLOCATE(dti%XPAR_CV (ig%NDIM,nvegtype))
823 hprogram,
'INV',
'CV: thermal inertia for vegetation',
'NAT',cfnam_cv, &
824 cftyp_cv,xunif_cv,dti%XPAR_CV,dti%LDATA_CV)
825 IF (.NOT. dti%LDATA_CV)
DEALLOCATE(dti%XPAR_CV)
827 ALLOCATE(dti%XPAR_Z0_O_Z0H (ig%NDIM,nvegtype))
829 hprogram,
'ARI',
'Z0_O_Z0H: ratio of roughness lengths',
'NAT',cfnam_z0_o_z0h, &
830 cftyp_z0_o_z0h,xunif_z0_o_z0h,dti%XPAR_Z0_O_Z0H,dti%LDATA_Z0_O_Z0H)
831 IF (.NOT. dti%LDATA_Z0_O_Z0H)
DEALLOCATE(dti%XPAR_Z0_O_Z0H)
833 ALLOCATE(dti%XPAR_ALBNIR_VEG (ig%NDIM,nvegtype))
835 hprogram,
'ARI',
'ALBNIR_VEG: NIR albedo of vegetation',
'NAT',cfnam_albnir_veg, &
836 cftyp_albnir_veg,xunif_albnir_veg,dti%XPAR_ALBNIR_VEG,dti%LDATA_ALBNIR_VEG)
837 IF (.NOT. dti%LDATA_ALBNIR_VEG)
DEALLOCATE(dti%XPAR_ALBNIR_VEG)
839 ALLOCATE(dti%XPAR_ALBVIS_VEG (ig%NDIM,nvegtype))
841 hprogram,
'ARI',
'ALBVIS_VEG: VIS albedo of vegetation',
'NAT',cfnam_albvis_veg, &
842 cftyp_albvis_veg,xunif_albvis_veg,dti%XPAR_ALBVIS_VEG,dti%LDATA_ALBVIS_VEG)
843 IF (.NOT. dti%LDATA_ALBVIS_VEG)
DEALLOCATE(dti%XPAR_ALBVIS_VEG)
845 ALLOCATE(dti%XPAR_ALBUV_VEG (ig%NDIM,nvegtype))
847 hprogram,
'ARI',
'ALBUV_VEG: UV albedo of vegetation',
'NAT',cfnam_albuv_veg, &
848 cftyp_albuv_veg,xunif_albuv_veg,dti%XPAR_ALBUV_VEG,dti%LDATA_ALBUV_VEG)
849 IF (.NOT. dti%LDATA_ALBUV_VEG)
DEALLOCATE(dti%XPAR_ALBUV_VEG)
851 ALLOCATE(dti%XPAR_ALBNIR_SOIL (ig%NDIM,nvegtype))
853 hprogram,
'ARI',
'ALBNIR_SOIL: NIR albedo of SOIL',
'NAT',cfnam_albnir_soil, &
854 cftyp_albnir_soil,xunif_albnir_soil,dti%XPAR_ALBNIR_SOIL,dti%LDATA_ALBNIR_SOIL)
855 IF (.NOT. dti%LDATA_ALBNIR_SOIL)
DEALLOCATE(dti%XPAR_ALBNIR_SOIL)
857 ALLOCATE(dti%XPAR_ALBVIS_SOIL (ig%NDIM,nvegtype))
859 hprogram,
'ARI',
'ALBVIS_SOIL: VIS albedo of SOIL',
'NAT',cfnam_albvis_soil, &
860 cftyp_albvis_soil,xunif_albvis_soil,dti%XPAR_ALBVIS_SOIL,dti%LDATA_ALBVIS_SOIL)
861 IF (.NOT. dti%LDATA_ALBVIS_SOIL)
DEALLOCATE(dti%XPAR_ALBVIS_SOIL)
863 ALLOCATE(dti%XPAR_ALBUV_SOIL (ig%NDIM,nvegtype))
865 hprogram,
'ARI',
'ALBUV_SOIL: UV albedo of SOIL',
'NAT',cfnam_albuv_soil, &
866 cftyp_albuv_soil,xunif_albuv_soil,dti%XPAR_ALBUV_SOIL,dti%LDATA_ALBUV_SOIL)
867 IF (.NOT. dti%LDATA_ALBUV_SOIL)
DEALLOCATE(dti%XPAR_ALBUV_SOIL)
869 IF (.NOT.i%LECOCLIMAP .AND. .NOT.(dti%LDATA_RSMIN.AND.dti%LDATA_GAMMA.AND.dti%LDATA_WRMAX_CF.AND.dti%LDATA_RGL &
870 .AND.dti%LDATA_CV.AND.dti%LDATA_Z0_O_Z0H.AND.dti%LDATA_ALBNIR_VEG.AND.dti%LDATA_ALBVIS_VEG.AND.&
871 dti%LDATA_ALBUV_VEG.AND.dti%LDATA_ALBNIR_SOIL.AND.dti%LDATA_ALBVIS_SOIL.AND.dti%LDATA_ALBUV_SOIL))
THEN
874 WRITE(iluout,*)
'***********************************************************'
875 WRITE(iluout,*)
'* Error in PGD field preparation of classical fields *'
876 WRITE(iluout,*)
'* There is no prescribed value and no input file : *'
877 IF (.NOT.dti%LDATA_RSMIN )
WRITE(iluout,*)
'* for RSMIN *'
878 IF (.NOT.dti%LDATA_GAMMA )
WRITE(iluout,*)
'* for GAMMA *'
879 IF (.NOT.dti%LDATA_WRMAX_CF )
WRITE(iluout,*)
'* for WRMAX_CF *'
880 IF (.NOT.dti%LDATA_RGL )
WRITE(iluout,*)
'* for RGL *'
881 IF (.NOT.dti%LDATA_CV )
WRITE(iluout,*)
'* for CV *'
882 IF (.NOT.dti%LDATA_Z0_O_Z0H )
WRITE(iluout,*)
'* for Z0_O_Z0H *'
883 IF (.NOT.dti%LDATA_ALBNIR_VEG )
WRITE(iluout,*)
'* for ALBNIR_VEG *'
884 IF (.NOT.dti%LDATA_ALBVIS_VEG )
WRITE(iluout,*)
'* for ALBVIS_VEG *'
885 IF (.NOT.dti%LDATA_ALBUV_VEG )
WRITE(iluout,*)
'* for ALBUV_VEG *'
886 IF (.NOT.dti%LDATA_ALBNIR_SOIL )
WRITE(iluout,*)
'* for ALBNIR_SOIL *'
887 IF (.NOT.dti%LDATA_ALBVIS_SOIL )
WRITE(iluout,*)
'* for ALBVIS_SOIL *'
888 IF (.NOT.dti%LDATA_ALBUV_SOIL )
WRITE(iluout,*)
'* for ALBUV_SOIL *'
889 WRITE(iluout,*)
'* Without ECOCLIMAP, these fields must be prescribed *'
890 WRITE(iluout,*)
'***********************************************************'
892 CALL
abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR CLASSICAL PARAMETERS')
897 IF(isize_lmeb_patch>0)
THEN
899 ALLOCATE(dti%XPAR_RSMINGV (ig%NDIM,nvegtype))
901 hprogram,
'INV',
'RSMINGV: GV min stomatal res',
'NAT',cfnam_rsmingv, &
902 cftyp_rsmingv,xunif_rsmingv,dti%XPAR_RSMINGV,dti%LDATA_RSMINGV)
903 IF (.NOT. dti%LDATA_RSMINGV)
DEALLOCATE(dti%XPAR_RSMINGV)
905 ALLOCATE(dti%XPAR_GAMMAGV (ig%NDIM,nvegtype))
907 hprogram,
'ARI',
'GAMMAGV: GV gamma coeff',
'NAT',cfnam_gammagv, &
908 cftyp_gammagv,xunif_gammagv,dti%XPAR_GAMMAGV,dti%LDATA_GAMMAGV)
909 IF (.NOT. dti%LDATA_GAMMAGV)
DEALLOCATE(dti%XPAR_GAMMAGV)
911 ALLOCATE(dti%XPAR_WRMAX_CFGV (ig%NDIM,nvegtype))
913 hprogram,
'ARI',
'WRMAX_CFGV: cff max GV WR',
'NAT',cfnam_wrmax_cfgv, &
914 cftyp_wrmax_cfgv,xunif_wrmax_cfgv,dti%XPAR_WRMAX_CFGV,dti%LDATA_WRMAX_CFGV)
915 IF (.NOT. dti%LDATA_WRMAX_CFGV)
DEALLOCATE(dti%XPAR_WRMAX_CFGV)
917 ALLOCATE(dti%XPAR_RGLGV (ig%NDIM,nvegtype))
919 hprogram,
'ARI',
'RGLGV: max GV SW photosynth',
'NAT',cfnam_rglgv, &
920 cftyp_rglgv,xunif_rglgv,dti%XPAR_RGLGV,dti%LDATA_RGLGV)
921 IF (.NOT. dti%LDATA_RGLGV)
DEALLOCATE(dti%XPAR_RGLGV)
928 IF (i%CPHOTO/=
'NON' .OR. (.NOT.dti%LDATA_Z0.AND.(dti%LDATA_LAI.OR.dti%LDATA_VEGTYPE)) .OR. isize_lmeb_patch>0)
THEN
930 ALLOCATE(dti%XPAR_H_TREE (ig%NDIM,nvegtype))
932 hprogram,
'ARI',
'H_TREE: height of trees',
'NAT',cfnam_h_tree, &
933 cftyp_h_tree,xunif_h_tree,dti%XPAR_H_TREE,dti%LDATA_H_TREE)
934 IF (.NOT. dti%LDATA_VEGTYPE .AND. .NOT. dti%LDATA_H_TREE)
DEALLOCATE(dti%XPAR_H_TREE)
938 IF (i%CPHOTO/=
'NON' .OR. isize_lmeb_patch>0)
THEN
939 ALLOCATE(dti%XPAR_BSLAI (ig%NDIM,nvegtype))
941 hprogram,
'ARI',
'BSLAI: biomass over LAI',
'NAT',cfnam_bslai, &
942 cftyp_bslai,xunif_bslai,dti%XPAR_BSLAI,dti%LDATA_BSLAI)
943 IF (.NOT. dti%LDATA_BSLAI)
DEALLOCATE(dti%XPAR_BSLAI)
946 IF (.NOT.i%LECOCLIMAP .AND. isize_lmeb_patch>0 .AND. .NOT.(dti%LDATA_H_TREE &
947 .AND. dti%LDATA_GNDLITTER .AND. dti%LDATA_Z0LITTER &
948 .AND. dti%LDATA_BSLAI))
THEN
950 WRITE(iluout,*)
'***********************************************************'
951 WRITE(iluout,*)
'* Error in PGD field preparation of MEB fields *'
952 WRITE(iluout,*)
'* There is no prescribed value and no input file : *'
953 IF (.NOT.dti%LDATA_GNDLITTER )
WRITE(iluout,*)
'* for GNDLITTER *'
954 IF (.NOT.dti%LDATA_Z0LITTER )
WRITE(iluout,*)
'* for Z0LITTER *'
955 IF (.NOT.dti%LDATA_H_TREE )
WRITE(iluout,*)
'* for H_TREE *'
956 IF (.NOT.dti%LDATA_BSLAI )
WRITE(iluout,*)
'* for BSLAI *'
957 WRITE(iluout,*)
'* Without ECOCLIMAP, these fields must be prescribed *'
958 WRITE(iluout,*)
'***********************************************************'
960 CALL
abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR MEB PARAMETERS')
964 IF (i%CPHOTO/=
'NON')
THEN
966 ALLOCATE(dti%XPAR_RE25 (ig%NDIM,nvegtype))
968 hprogram,
'ARI',
'RE25: ecosystem respiration',
'NAT',cfnam_re25, &
969 cftyp_re25,xunif_re25,dti%XPAR_RE25,dti%LDATA_RE25)
970 IF (.NOT. dti%LDATA_RE25)
DEALLOCATE(dti%XPAR_RE25)
972 ALLOCATE(dti%XPAR_LAIMIN (ig%NDIM,nvegtype))
974 hprogram,
'ARI',
'LAIMIN: minimum LAI',
'NAT',cfnam_laimin, &
975 cftyp_laimin,xunif_laimin,dti%XPAR_LAIMIN,dti%LDATA_LAIMIN)
976 IF (.NOT. dti%LDATA_LAIMIN)
DEALLOCATE(dti%XPAR_LAIMIN)
978 ALLOCATE(dti%XPAR_SEFOLD (ig%NDIM,nvegtype))
980 hprogram,
'ARI',
'SEFOLD: e-folding time for senescence',
'NAT',cfnam_sefold, &
981 cftyp_sefold,xunif_sefold,dti%XPAR_SEFOLD,dti%LDATA_SEFOLD)
982 IF (.NOT. dti%LDATA_SEFOLD)
DEALLOCATE(dti%XPAR_SEFOLD)
984 ALLOCATE(dti%XPAR_GMES (ig%NDIM,nvegtype))
986 hprogram,
'ARI',
'GMES: mesophyl conductance',
'NAT',cfnam_gmes, &
987 cftyp_gmes,xunif_gmes,dti%XPAR_GMES,dti%LDATA_GMES)
988 IF (.NOT. dti%LDATA_GMES)
DEALLOCATE(dti%XPAR_GMES)
990 ALLOCATE(dti%XPAR_GC (ig%NDIM,nvegtype))
992 hprogram,
'ARI',
'GC: cuticular conductance',
'NAT',cfnam_gc, &
993 cftyp_gc,xunif_gc,dti%XPAR_GC,dti%LDATA_GC)
994 IF (.NOT. dti%LDATA_GC)
DEALLOCATE(dti%XPAR_GC)
996 IF (.NOT.i%LECOCLIMAP .AND. .NOT.(dti%LDATA_H_TREE.AND.dti%LDATA_RE25.AND.dti%LDATA_LAIMIN.AND.&
997 dti%LDATA_BSLAI.AND.dti%LDATA_SEFOLD.AND.dti%LDATA_GMES.AND.dti%LDATA_GC))
THEN
1000 WRITE(iluout,*)
'***********************************************************'
1001 WRITE(iluout,*)
'* Error in PGD field preparation of AGS fields *'
1002 WRITE(iluout,*)
'* There is no prescribed value and no input file : *'
1003 IF (.NOT.dti%LDATA_H_TREE )
WRITE(iluout,*)
'* for H_TREE *'
1004 IF (.NOT.dti%LDATA_RE25 )
WRITE(iluout,*)
'* for RE25 *'
1005 IF (.NOT.dti%LDATA_LAIMIN )
WRITE(iluout,*)
'* for LAIMIN *'
1006 IF (.NOT.dti%LDATA_BSLAI )
WRITE(iluout,*)
'* for BSLAI *'
1007 IF (.NOT.dti%LDATA_SEFOLD )
WRITE(iluout,*)
'* for SEFOLD *'
1008 IF (.NOT.dti%LDATA_GMES )
WRITE(iluout,*)
'* for GMES *'
1009 IF (.NOT.dti%LDATA_GC )
WRITE(iluout,*)
'* for GC *'
1010 WRITE(iluout,*)
'* Without ECOCLIMAP, these fields must be prescribed *'
1011 WRITE(iluout,*)
'***********************************************************'
1013 CALL
abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS PARAMETERS')
1019 IF (i%CPHOTO/=
'AGS' .AND. i%CPHOTO/=
'LAI')
THEN
1021 ALLOCATE(dti%XPAR_F2I (ig%NDIM,nvegtype))
1023 hprogram,
'ARI',
'F2I: critical normalized soil water content (stress)',
'NAT',cfnam_f2i, &
1024 cftyp_f2i,xunif_f2i,dti%XPAR_F2I,dti%LDATA_F2I)
1025 IF (.NOT. dti%LDATA_F2I)
DEALLOCATE(dti%XPAR_F2I)
1027 ALLOCATE(dti%XPAR_DMAX (ig%NDIM,nvegtype))
1029 hprogram,
'ARI',
'DMAX: maximum air saturation deficit',
'NAT',cfnam_dmax, &
1030 cftyp_dmax,xunif_dmax,dti%XPAR_DMAX,dti%LDATA_DMAX)
1031 IF (.NOT. dti%LDATA_DMAX)
DEALLOCATE(dti%XPAR_DMAX)
1033 ALLOCATE(dti%LPAR_STRESS (ig%NDIM,nvegtype))
1034 DO jvegtype=1,nvegtype
1035 gpar_stress = lunif_stress(jvegtype)
1036 IF (xstress(jvegtype)<1.) gpar_stress = .false.
1037 IF (xstress(jvegtype)==1. .AND. .NOT.gpar_stress) dti%LDATA_STRESS=.true.
1038 dti%LPAR_STRESS(:,jvegtype) = gpar_stress
1040 IF (.NOT. dti%LDATA_STRESS)
DEALLOCATE(dti%LPAR_STRESS)
1042 IF (.NOT.i%LECOCLIMAP .AND. .NOT.(dti%LDATA_F2I.AND.dti%LDATA_DMAX))
THEN
1045 WRITE(iluout,*)
'***********************************************************'
1046 WRITE(iluout,*)
'* Error in PGD field preparation of AGS Stress fields *'
1047 WRITE(iluout,*)
'* There is no prescribed value and no input file : *'
1048 IF (.NOT.dti%LDATA_F2I )
WRITE(iluout,*)
'* for F2I *'
1049 IF (.NOT.dti%LDATA_DMAX )
WRITE(iluout,*)
'* for DMAX *'
1050 WRITE(iluout,*)
'* Without ECOCLIMAP, these fields must be prescribed *'
1051 WRITE(iluout,*)
'***********************************************************'
1053 CALL
abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS STRESS PARAMETERS')
1059 IF (i%CPHOTO==
'NIT' .OR. i%CPHOTO==
'NCB')
THEN
1061 ALLOCATE(dti%XPAR_CE_NITRO (ig%NDIM,nvegtype))
1063 hprogram,
'ARI',
'CE_NITRO: leaf area ratio sensitivity to nitrogen ccion',
'NAT',&
1064 cfnam_ce_nitro, cftyp_ce_nitro,xunif_ce_nitro,dti%XPAR_CE_NITRO,dti%LDATA_CE_NITRO)
1065 IF (.NOT. dti%LDATA_CE_NITRO)
DEALLOCATE(dti%XPAR_CE_NITRO)
1067 ALLOCATE(dti%XPAR_CF_NITRO (ig%NDIM,nvegtype))
1069 hprogram,
'ARI',
'CF_NITRO: lethal minimum value of leaf area ratio',
'NAT',&
1070 cfnam_cf_nitro,cftyp_cf_nitro,xunif_cf_nitro,dti%XPAR_CF_NITRO,dti%LDATA_CF_NITRO)
1071 IF (.NOT. dti%LDATA_CF_NITRO)
DEALLOCATE(dti%XPAR_CF_NITRO)
1073 ALLOCATE(dti%XPAR_CNA_NITRO (ig%NDIM,nvegtype))
1075 hprogram,
'ARI',
'CNA_NITRO: nitrogen ccion of active biomass',
'NAT',&
1076 cfnam_cna_nitro,cftyp_cna_nitro,xunif_cna_nitro,dti%XPAR_CNA_NITRO,dti%LDATA_CNA_NITRO)
1077 IF (.NOT. dti%LDATA_CNA_NITRO)
DEALLOCATE(dti%XPAR_CNA_NITRO)
1079 IF (.NOT.i%LECOCLIMAP .AND. .NOT.(dti%LDATA_CE_NITRO.AND.dti%LDATA_CF_NITRO.AND.dti%LDATA_CNA_NITRO))
THEN
1082 WRITE(iluout,*)
'***********************************************************'
1083 WRITE(iluout,*)
'* Error in PGD field preparation of AGS Nitrogen fields *'
1084 WRITE(iluout,*)
'* There is no prescribed value and no input file : *'
1085 IF (.NOT.dti%LDATA_CE_NITRO )
WRITE(iluout,*)
'* for CE_NITRO *'
1086 IF (.NOT.dti%LDATA_CF_NITRO )
WRITE(iluout,*)
'* for CF_NITRO *'
1087 IF (.NOT.dti%LDATA_CNA_NITRO )
WRITE(iluout,*)
'* for CNA_NITRO *'
1088 WRITE(iluout,*)
'* Without ECOCLIMAP, these fields must be prescribed *'
1089 WRITE(iluout,*)
'***********************************************************'
1091 CALL
abor1_sfx(
'PGD_ISBA_PAR: NO PRESCRIBED VALUE NOR INPUT FILE FOR AGS NITROGEN PARAMETERS')
1103 dti%LDATA_IRRIG=.false.
1104 dti%LDATA_WATSUP=.false.
1108 IF (i%LECOCLIMAP .AND. dti%LDATA_VEGTYPE)
THEN
1110 ALLOCATE(dti%XPAR_IRRIG (ig%NDIM,ntime,nvegtype))
1111 ALLOCATE(dti%XPAR_WATSUP (ig%NDIM,ntime,nvegtype))
1112 ALLOCATE(dti%XPAR_ROOT_DEPTHGV(ig%NDIM,nvegtype))
1117 IF (.NOT. dti%LDATA_LAI)
DEALLOCATE(dti%XPAR_LAI)
1118 IF (.NOT. dti%LDATA_H_TREE .AND. i%CPHOTO/=
'NON')
DEALLOCATE(dti%XPAR_H_TREE)
1119 IF (.NOT. dti%LDATA_DG)
DEALLOCATE(dti%XPAR_DG)
1120 IF (.NOT. dti%LDATA_ROOT_DEPTH)
DEALLOCATE(dti%XPAR_ROOT_DEPTH)
1121 IF (.NOT. dti%LDATA_ROOT_DEPTHGV)
DEALLOCATE(dti%XPAR_ROOT_DEPTHGV)
1122 IF (.NOT. dti%LDATA_GROUND_DEPTH)
DEALLOCATE(dti%XPAR_GROUND_DEPTH)
1128 IF (lhook) CALL dr_hook(
'PGD_ISBA_PAR',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine pgd_isba_par(DTCO, DGU, UG, U, USS, DTI, I, IG, HPROGRAM)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)