11 FUNCTION z0v_from_lai_0d(PLAI,PH_TREE,PVEGTYPE,OAGRI_TO_GRASS)
RESULT(PZ0)
13 REAL,
INTENT(IN) :: PLAI
14 REAL,
INTENT(IN) :: PH_TREE
15 REAL,
DIMENSION(:),
INTENT(IN) :: PVEGTYPE
16 LOGICAL,
INTENT(IN) :: OAGRI_TO_GRASS
23 FUNCTION z0v_from_lai_1d(PLAI,PH_TREE,PVEGTYPE,OAGRI_TO_GRASS)
RESULT(PZ0)
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
35 FUNCTION z0v_from_lai_2d(PLAI,PH_TREE,PVEGTYPE,OAGRI_TO_GRASS)
RESULT(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 LOGICAL,
INTENT(IN) :: OAGRI_TO_GRASS
52 REAL,
DIMENSION(SIZE(PLAI)) :: PZ0
62 FUNCTION z0v_from_lai_0d(PLAI,PH_TREE,PVEGTYPE,OAGRI_TO_GRASS)
RESULT(PZ0)
114 REAL,
INTENT(IN) :: PLAI
115 REAL,
INTENT(IN) :: PH_TREE
116 REAL,
DIMENSION(:),
INTENT(IN) :: PVEGTYPE
117 LOGICAL,
INTENT(IN) :: OAGRI_TO_GRASS
126 REAL,
DIMENSION(SIZE(PVEGTYPE)) :: ZH_VEG
131 REAL(KIND=JPRB) :: ZHOOK_HANDLE
134 IF (
lhook)
CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_0D',0,zhook_handle)
140 DO jtype=1,
SIZE(pvegtype)
141 zavg_h = zavg_h + pvegtype(jtype) / (log(0.13*zh_veg(jtype)/zzref))**2
143 zavg_h = max(zavg_h,0.00001)
145 zavg_h = zzref / 0.13 * exp(-1./sqrt(zavg_h))
147 pz0 = max(0.001, 0.13*zavg_h)
148 IF (
lhook)
CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_0D',1,zhook_handle)
155 FUNCTION z0v_from_lai_1d(PLAI,PH_TREE,PVEGTYPE,OAGRI_TO_GRASS)
RESULT(PZ0)
205 REAL,
DIMENSION(:),
INTENT(IN) :: PLAI
206 REAL,
DIMENSION(:),
INTENT(IN) :: PH_TREE
207 REAL,
DIMENSION(:,:),
INTENT(IN) :: PVEGTYPE
208 LOGICAL,
INTENT(IN) :: OAGRI_TO_GRASS
210 REAL,
DIMENSION(SIZE(PLAI)) :: PZ0
214 REAL,
DIMENSION(SIZE(PLAI)) :: ZALLEN_H
215 REAL,
DIMENSION(SIZE(PLAI)) :: ZLAI
217 REAL,
DIMENSION(SIZE(PLAI),SIZE(PVEGTYPE,2)) :: ZH_VEG
218 REAL,
DIMENSION(SIZE(PLAI)) :: ZAVG_H
222 REAL(KIND=JPRB) :: ZHOOK_HANDLE
225 IF (
lhook)
CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_1D',0,zhook_handle)
230 DO jtype=1,
SIZE(pvegtype,2)
231 zavg_h(:) = zavg_h(:) + pvegtype(:,jtype) / (log(0.13*zh_veg(:,jtype)/zzref))**2
234 zavg_h = max(zavg_h,0.00001)
236 zavg_h(:) = zzref / 0.13 * exp(-1./sqrt(zavg_h(:)))
238 pz0(:) = max(0.001, 0.13*zavg_h(:))
239 IF (
lhook)
CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_1D',1,zhook_handle)
245 FUNCTION z0v_from_lai_2d(PLAI,PH_TREE,PVEGTYPE,OAGRI_TO_GRASS)
RESULT(PZ0)
295 REAL,
DIMENSION(:,:),
INTENT(IN) :: PLAI
296 REAL,
DIMENSION(:,:),
INTENT(IN) :: PH_TREE
297 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: PVEGTYPE
298 LOGICAL,
INTENT(IN) :: OAGRI_TO_GRASS
300 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: PZ0
305 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: ZALLEN_H
306 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: ZLAI
308 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2),SIZE(PVEGTYPE,3)) :: ZH_VEG
309 REAL,
DIMENSION(SIZE(PLAI,1),SIZE(PLAI,2)) :: ZAVG_H
313 REAL(KIND=JPRB) :: ZHOOK_HANDLE
316 IF (
lhook)
CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_2D',0,zhook_handle)
321 DO jtype=1,
SIZE(pvegtype,3)
322 zavg_h(:,:) = zavg_h(:,:) + pvegtype(:,:,jtype) / (log(0.13*zh_veg(:,:,jtype)/zzref))**2
324 zavg_h(:,:) = max(zavg_h(:,:),0.00001)
325 zavg_h(:,:) = zzref / 0.13 * exp(-1./sqrt(zavg_h(:,:)))
327 pz0(:,:) = max(0.001, 0.13*zavg_h(:,:))
329 WHERE (plai(:,:) ==
xundef)
332 IF (
lhook)
CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_2D',1,zhook_handle)
390 REAL,
DIMENSION(:),
INTENT(IN) :: PLAI
391 REAL,
DIMENSION(:),
INTENT(IN) :: PH_TREE
392 LOGICAL,
INTENT(IN) :: OAGRI_TO_GRASS
394 REAL,
DIMENSION(SIZE(PLAI)) :: PZ0
398 REAL,
DIMENSION(SIZE(PLAI)) :: ZALLEN_H
400 REAL,
DIMENSION(SIZE(PLAI)) :: ZH_VEG
401 REAL(KIND=JPRB) :: ZHOOK_HANDLE
404 IF (
lhook)
CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_VEGTYPE',0,zhook_handle)
409 WHERE(zh_veg(:)/=
xundef) pz0(:) = max(0.001, 0.13*zh_veg(:))
415 IF (
lhook)
CALL dr_hook(
'MODI_Z0V_FROM_LAI:Z0V_FROM_LAI_VEGTYPE',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_vegtype(PLAI, PH_TREE, 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)