6 SUBROUTINE init_veg_n(KPATCH, KI, OCANOPY, HROUGH, OAGRI_TO_GRASS, TPSNOW, &
7 hphoto, oimp_veg, oimp_z0, oimp_emis, &
8 plaimin, ph_tree, pvegtype_patch, plai, pz0, pveg, pemis, &
9 otr_ml, pfaparc, pfapirc, plai_effc, pmus, &
10 palbnir_soil, palbvis_soil, palbuv_soil, palbnir, palbvis, palbuv, &
11 osurf_diag_albedo, ppsn, ppsng, ppsnv, ppsnv_a, &
12 pdir_alb, psca_alb, pemis_out, ptsrad )
57 USE yomhook
,ONLY : lhook, dr_hook
58 USE parkind1
,ONLY : jprb
65 INTEGER,
INTENT(IN) :: kpatch
66 INTEGER,
INTENT(IN) :: ki
67 LOGICAL,
INTENT(IN) :: ocanopy
68 CHARACTER(LEN=4),
INTENT(INOUT) :: hrough
69 LOGICAL,
INTENT(IN) :: oagri_to_grass
72 CHARACTER(LEN=3),
INTENT(IN) :: hphoto
74 LOGICAL,
INTENT(IN) :: oimp_veg
75 LOGICAL,
INTENT(IN) :: oimp_z0
76 LOGICAL,
INTENT(IN) :: oimp_emis
78 REAL,
DIMENSION(:,:),
INTENT(IN) :: plaimin
79 REAL,
DIMENSION(:,:),
INTENT(IN) :: ph_tree
80 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pvegtype_patch
81 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: plai
82 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pz0
83 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pveg
84 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pemis
86 LOGICAL,
INTENT(IN) :: otr_ml
87 REAL,
DIMENSION(:,:),
POINTER :: pfaparc
88 REAL,
DIMENSION(:,:),
POINTER :: pfapirc
89 REAL,
DIMENSION(:,:),
POINTER :: plai_effc
90 REAL,
DIMENSION(:,:),
POINTER :: pmus
92 REAL,
DIMENSION(:,:),
POINTER :: palbnir_soil
93 REAL,
DIMENSION(:,:),
POINTER :: palbvis_soil
94 REAL,
DIMENSION(:,:),
POINTER :: palbuv_soil
95 REAL,
DIMENSION(:,:),
POINTER :: palbnir
96 REAL,
DIMENSION(:,:),
POINTER :: palbvis
97 REAL,
DIMENSION(:,:),
POINTER :: palbuv
99 LOGICAL,
INTENT(OUT) :: osurf_diag_albedo
101 REAL,
DIMENSION(:,:),
POINTER :: ppsn
102 REAL,
DIMENSION(:,:),
POINTER :: ppsng
103 REAL,
DIMENSION(:,:),
POINTER :: ppsnv
104 REAL,
DIMENSION(:,:),
POINTER :: ppsnv_a
106 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pdir_alb
107 REAL,
DIMENSION(:,:),
INTENT(OUT) :: psca_alb
108 REAL,
DIMENSION(:),
INTENT(OUT) :: pemis_out
109 REAL,
DIMENSION(:),
INTENT(OUT) :: ptsrad
117 REAL(KIND=JPRB) :: zhook_handle
123 IF (lhook) CALL dr_hook(
'INIT_VEG_n',0,zhook_handle)
144 IF (hphoto==
'LAI' .OR. hphoto==
'LST' .OR. hphoto==
'NIT' .OR. hphoto==
'NCB')
THEN
147 IF(plai(jilu,jpatch)/=xundef)
THEN
148 plai(jilu,jpatch) = max(plaimin(jilu,jpatch),plai(jilu,jpatch))
150 IF(.NOT.oimp_z0.AND.plai(jilu,jpatch)/=xundef)
THEN
151 pz0(jilu,jpatch) =
z0v_from_lai(plai(jilu,jpatch),ph_tree(jilu,jpatch),pvegtype_patch(jilu,:,jpatch),oagri_to_grass)
153 IF(.NOT.oimp_veg.AND.plai(jilu,jpatch)/=xundef)
THEN
154 pveg(jilu,jpatch) =
veg_from_lai(plai(jilu,jpatch),pvegtype_patch(jilu,:,jpatch),oagri_to_grass)
156 IF(.NOT.oimp_emis.AND.plai(jilu,jpatch)/=xundef)
THEN
157 pemis(jilu,jpatch) =
emis_from_veg(pveg(jilu,jpatch),pvegtype_patch(jilu,:,jpatch))
166 ALLOCATE(pfaparc(ki, kpatch))
167 ALLOCATE(pfapirc(ki, kpatch))
168 ALLOCATE(plai_effc(ki, kpatch))
169 ALLOCATE(pmus(ki, kpatch))
175 ALLOCATE(pfaparc(0,0))
176 ALLOCATE(pfapirc(0,0))
177 ALLOCATE(plai_effc(0,0))
185 ALLOCATE(palbnir_soil(ki,kpatch))
186 ALLOCATE(palbvis_soil(ki,kpatch))
187 ALLOCATE(palbuv_soil(ki,kpatch))
188 ALLOCATE(palbnir(ki,kpatch))
189 ALLOCATE(palbvis(ki,kpatch))
190 ALLOCATE(palbuv(ki,kpatch))
191 palbnir_soil(:,:) = xundef
192 palbvis_soil(:,:) = xundef
193 palbuv_soil(:,:) = xundef
194 palbnir(:,:) = xundef
195 palbvis(:,:) = xundef
198 osurf_diag_albedo = .true.
202 ALLOCATE(ppsn(ki,kpatch))
203 ALLOCATE(ppsng(ki,kpatch))
204 ALLOCATE(ppsnv(ki,kpatch))
209 IF(tpsnow%SCHEME==
'EBA')
THEN
210 ALLOCATE(ppsnv_a(ki,kpatch))
213 ALLOCATE(ppsnv_a(0,0))
221 IF (lhook) CALL dr_hook(
'INIT_VEG_n',1,zhook_handle)
subroutine init_veg_n(KPATCH, KI, OCANOPY, HROUGH, OAGRI_TO_GRASS, TPSNOW, HPHOTO, OIMP_VEG, OIMP_Z0, OIMP_EMIS, PLAIMIN, PH_TREE, PVEGTYPE_PATCH, PLAI, PZ0, PVEG, PEMIS, OTR_ML, PFAPARC, PFAPIRC, PLAI_EFFC, PMUS, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL, PALBNIR, PALBVIS, PALBUV, OSURF_DIAG_ALBEDO, PPSN, PPSNG, PPSNV, PPSNV_A, PDIR_ALB, PSCA_ALB, PEMIS_OUT, PTSRAD)
subroutine set_rough(OCANOPY, HROUGH)
subroutine init_snow_lw(PEMISSN, TPSNOW)