13 REAL,
INTENT(IN) :: plai
14 REAL,
INTENT(IN) :: ph_tree
15 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
16 LOGICAL,
INTENT(IN) :: oagri_to_grass
25 REAL,
DIMENSION(:),
INTENT(IN) :: plai
26 REAL,
DIMENSION(:),
INTENT(IN) :: ph_tree
27 REAL,
DIMENSION(:,:),
INTENT(IN) :: pvegtype
28 LOGICAL,
INTENT(IN) :: oagri_to_grass
30 REAL,
DIMENSION(SIZE(PLAI)) :: pz0
37 REAL,
DIMENSION(:,:),
INTENT(IN) :: plai
38 REAL,
DIMENSION(:,:),
INTENT(IN) :: ph_tree
39 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pvegtype
40 LOGICAL,
INTENT(IN) :: oagri_to_grass
42 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: pz0
48 REAL,
DIMENSION(:),
INTENT(IN) :: plai
49 REAL,
DIMENSION(:),
INTENT(IN) :: ph_tree
50 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
51 LOGICAL,
INTENT(IN) :: oagri_to_grass
53 REAL,
DIMENSION(SIZE(PLAI)) :: pz0
107 nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
108 nvt_irr, nvt_gras, nvt_trog,nvt_park, &
109 nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
110 nvt_bond, nvt_bogr, nvt_shrb
113 USE yomhook
,ONLY : lhook, dr_hook
114 USE parkind1
,ONLY : jprb
120 REAL,
INTENT(IN) :: plai
121 REAL,
INTENT(IN) :: ph_tree
122 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
123 LOGICAL,
INTENT(IN) :: oagri_to_grass
132 REAL,
DIMENSION(SIZE(PVEGTYPE)) :: zh_veg
137 REAL(KIND=JPRB) :: zhook_handle
140 IF (lhook) CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_0D',0,zhook_handle)
146 DO jtype=1,
SIZE(pvegtype)
147 zavg_h = zavg_h + pvegtype(jtype) / (log(0.13*zh_veg(jtype)/zzref))**2
149 zavg_h = max(zavg_h,0.00001)
151 zavg_h = zzref / 0.13 * exp(-1./sqrt(zavg_h))
153 pz0 = max(0.001, 0.13*zavg_h)
154 IF (lhook) CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_0D',1,zhook_handle)
203 nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
204 nvt_irr, nvt_gras, nvt_trog,nvt_park, &
205 nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
206 nvt_bond, nvt_bogr, nvt_shrb
209 USE yomhook
,ONLY : lhook, dr_hook
210 USE parkind1
,ONLY : jprb
216 REAL,
DIMENSION(:),
INTENT(IN) :: plai
217 REAL,
DIMENSION(:),
INTENT(IN) :: ph_tree
218 REAL,
DIMENSION(:,:),
INTENT(IN) :: pvegtype
219 LOGICAL,
INTENT(IN) :: oagri_to_grass
221 REAL,
DIMENSION(SIZE(PLAI)) :: pz0
225 REAL,
DIMENSION(SIZE(PLAI)) :: zallen_h
226 REAL,
DIMENSION(SIZE(PLAI)) :: zlai
228 REAL,
DIMENSION(SIZE(PLAI),SIZE(PVEGTYPE,2)) :: zh_veg
229 REAL,
DIMENSION(SIZE(PLAI)) :: zavg_h
233 REAL(KIND=JPRB) :: zhook_handle
236 IF (lhook) CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_1D',0,zhook_handle)
241 DO jtype=1,
SIZE(pvegtype,2)
242 zavg_h(:) = zavg_h(:) + pvegtype(:,jtype) / (log(0.13*zh_veg(:,jtype)/zzref))**2
245 zavg_h = max(zavg_h,0.00001)
247 zavg_h(:) = zzref / 0.13 * exp(-1./sqrt(zavg_h(:)))
249 pz0(:) = max(0.001, 0.13*zavg_h(:))
250 IF (lhook) CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_1D',1,zhook_handle)
297 nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
298 nvt_irr, nvt_gras, nvt_trog,nvt_park, &
299 nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
300 nvt_bond, nvt_bogr, nvt_shrb
304 USE yomhook
,ONLY : lhook, dr_hook
305 USE parkind1
,ONLY : jprb
311 REAL,
DIMENSION(:,:),
INTENT(IN) :: plai
312 REAL,
DIMENSION(:,:),
INTENT(IN) :: ph_tree
313 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pvegtype
314 LOGICAL,
INTENT(IN) :: oagri_to_grass
316 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: pz0
321 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: zallen_h
322 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: zlai
324 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2),SIZE(PVEGTYPE,3)) :: zh_veg
325 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: zavg_h
329 REAL(KIND=JPRB) :: zhook_handle
332 IF (lhook) CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_2D',0,zhook_handle)
337 DO jtype=1,
SIZE(pvegtype,3)
338 zavg_h(:,:) = zavg_h(:,:) + pvegtype(:,:,jtype) / (log(0.13*zh_veg(:,:,jtype)/zzref))**2
340 zavg_h(:,:) = max(zavg_h(:,:),0.00001)
341 zavg_h(:,:) = zzref / 0.13 * exp(-1./sqrt(zavg_h(:,:)))
343 pz0(:,:) = max(0.001, 0.13*zavg_h(:,:))
345 WHERE (plai(:,:) == xundef)
348 IF (lhook) CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_2D',1,zhook_handle)
397 nvt_bone, nvt_trbe, nvt_c3, nvt_c4, &
398 nvt_irr, nvt_gras, nvt_trog,nvt_park, &
399 nvt_trbd, nvt_tebe, nvt_tene, nvt_bobd, &
400 nvt_bond, nvt_bogr, nvt_shrb
404 USE yomhook
,ONLY : lhook, dr_hook
405 USE parkind1
,ONLY : jprb
411 REAL,
DIMENSION(:),
INTENT(IN) :: plai
412 REAL,
DIMENSION(:),
INTENT(IN) :: ph_tree
413 REAL,
DIMENSION(:),
INTENT(IN) :: pvegtype
414 LOGICAL,
INTENT(IN) :: oagri_to_grass
416 REAL,
DIMENSION(SIZE(PLAI)) :: pz0
420 REAL,
DIMENSION(SIZE(PLAI)) :: zallen_h
422 REAL,
DIMENSION(SIZE(PLAI)) :: zh_veg
423 REAL(KIND=JPRB) :: zhook_handle
426 IF (lhook) CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_PATCH',0,zhook_handle)
429 pz0(:) = max(0.001, 0.13*zh_veg(:))
432 WHERE (plai(:) == xundef)
435 IF (lhook) CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_PATCH',1,zhook_handle)
real function, dimension(size(plai, 1), size(plai, 2)) z0v_from_lai_2d(PLAI, PH_TREE, PVEGTYPE, OAGRI_TO_GRASS)
real function, dimension(size(plai)) z0v_from_lai_patch(PLAI, PH_TREE, PVEGTYPE, OAGRI_TO_GRASS)
real function z0v_from_lai_0d(PLAI, PH_TREE, PVEGTYPE, OAGRI_TO_GRASS)
real function, dimension(size(plai)) z0v_from_lai_1d(PLAI, PH_TREE, PVEGTYPE, OAGRI_TO_GRASS)