67 USE yomhook
,ONLY : lhook, dr_hook
68 USE parkind1
,ONLY : jprb
82 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
88 CHARACTER(LEN=12) :: yrecfm
89 CHARACTER(LEN=100) :: ycomment
94 REAL,
DIMENSION(TG%NDIM) :: zdata_wg1
95 REAL,
DIMENSION(TG%NDIM) :: zdata_wgsat
97 LOGICAL :: gagri_to_grass
99 REAL(KIND=JPRB) :: zhook_handle
106 IF (lhook) CALL dr_hook(
'READ_PGD_TEB_GREENROOF_PAR_N',0,zhook_handle)
108 gagri_to_grass=.false.
112 hprogram,yrecfm,tgro%NTIME_GR,iresp)
116 hprogram,yrecfm,tgro%NLAYER_GR,iresp)
121 hprogram,yrecfm,tgro%CTYP_GR,iresp)
124 ALLOCATE(dtgr%XPAR_OM_GR (tg%NDIM,tgro%NLAYER_GR))
125 DO jlayer=1,tgro%NLAYER_GR
127 WRITE(yrecfm,fmt=
'(A7,I2.2)')
'D_OM_GR',jlayer
129 hprogram,yrecfm,dtgr%XPAR_OM_GR(:,jlayer),iresp,hcomment=ycomment)
133 ALLOCATE(dtgr%XPAR_SAND_GR (tg%NDIM,tgro%NLAYER_GR))
134 DO jlayer=1,tgro%NLAYER_GR
136 WRITE(yrecfm,fmt=
'(A9,I2.2)')
'D_SAND_GR',jlayer
138 hprogram,yrecfm,dtgr%XPAR_SAND_GR(:,jlayer),iresp,hcomment=ycomment)
142 ALLOCATE(dtgr%XPAR_CLAY_GR (tg%NDIM,tgro%NLAYER_GR))
143 DO jlayer=1,tgro%NLAYER_GR
145 WRITE(yrecfm,fmt=
'(A9,I2.2)')
'D_CLAY_GR',jlayer
147 hprogram,yrecfm,dtgr%XPAR_CLAY_GR(:,jlayer),iresp,hcomment=ycomment)
151 ALLOCATE(dtgr%XPAR_LAI_GR (tg%NDIM,tgro%NTIME_GR))
152 DO jtime=1,tgro%NTIME_GR
153 WRITE(yrecfm,fmt=
'(A8,I2.2)')
'D_LAI_GR',jtime
155 hprogram,yrecfm,dtgr%XPAR_LAI_GR(:,jtime),iresp,hcomment=ycomment)
164 ALLOCATE(dtgr%XPAR_LAI (tg%NDIM,tgro%NTIME_GR))
165 ALLOCATE(dtgr%XPAR_VEG (tg%NDIM,tgro%NTIME_GR))
166 ALLOCATE(dtgr%XPAR_RSMIN (tg%NDIM))
167 ALLOCATE(dtgr%XPAR_GAMMA (tg%NDIM))
168 ALLOCATE(dtgr%XPAR_WRMAX_CF (tg%NDIM))
169 ALLOCATE(dtgr%XPAR_RGL (tg%NDIM))
170 ALLOCATE(dtgr%XPAR_CV (tg%NDIM))
171 ALLOCATE(dtgr%XPAR_DG (tg%NDIM,tgro%NLAYER_GR))
172 ALLOCATE(dtgr%XPAR_ROOTFRAC (tg%NDIM,tgro%NLAYER_GR))
173 ALLOCATE(dtgr%XPAR_DICE (tg%NDIM))
174 ALLOCATE(dtgr%XPAR_Z0 (tg%NDIM,tgro%NTIME_GR))
175 ALLOCATE(dtgr%XPAR_Z0_O_Z0H (tg%NDIM))
176 ALLOCATE(dtgr%XPAR_ALBNIR_VEG (tg%NDIM))
177 ALLOCATE(dtgr%XPAR_ALBVIS_VEG (tg%NDIM))
178 ALLOCATE(dtgr%XPAR_ALBUV_VEG (tg%NDIM))
179 ALLOCATE(dtgr%XPAR_ALBNIR_SOIL(tg%NDIM))
180 ALLOCATE(dtgr%XPAR_ALBVIS_SOIL(tg%NDIM))
181 ALLOCATE(dtgr%XPAR_ALBUV_SOIL (tg%NDIM))
182 ALLOCATE(dtgr%XPAR_ALBNIR_DRY (tg%NDIM))
183 ALLOCATE(dtgr%XPAR_ALBVIS_DRY (tg%NDIM))
184 ALLOCATE(dtgr%XPAR_ALBUV_DRY (tg%NDIM))
185 ALLOCATE(dtgr%XPAR_ALBNIR_WET (tg%NDIM))
186 ALLOCATE(dtgr%XPAR_ALBVIS_WET (tg%NDIM))
187 ALLOCATE(dtgr%XPAR_ALBUV_WET (tg%NDIM))
188 ALLOCATE(dtgr%XPAR_EMIS (tg%NDIM,tgro%NTIME_GR))
189 ALLOCATE(dtgr%XPAR_VEGTYPE (tg%NDIM,nvegtype))
190 ALLOCATE(dtgr%XPAR_GMES (tg%NDIM))
191 ALLOCATE(dtgr%XPAR_RE25 (tg%NDIM))
192 ALLOCATE(dtgr%XPAR_BSLAI (tg%NDIM))
193 ALLOCATE(dtgr%XPAR_LAIMIN (tg%NDIM))
194 ALLOCATE(dtgr%XPAR_SEFOLD (tg%NDIM))
195 ALLOCATE(dtgr%XPAR_GC (tg%NDIM))
196 ALLOCATE(dtgr%XPAR_DMAX (tg%NDIM))
197 ALLOCATE(dtgr%XPAR_F2I (tg%NDIM))
198 ALLOCATE(dtgr%LDATA_STRESS (tg%NDIM))
199 ALLOCATE(dtgr%XPAR_H_TREE (tg%NDIM))
200 ALLOCATE(dtgr%XPAR_CE_NITRO (tg%NDIM))
201 ALLOCATE(dtgr%XPAR_CF_NITRO (tg%NDIM))
202 ALLOCATE(dtgr%XPAR_CNA_NITRO (tg%NDIM))
204 dtgr%XPAR_LAI (:,:) = xundef
205 dtgr%XPAR_VEG (:,:) = xundef
206 dtgr%XPAR_RSMIN (:) = xundef
207 dtgr%XPAR_GAMMA (:) = xundef
208 dtgr%XPAR_WRMAX_CF (:) = xundef
209 dtgr%XPAR_RGL (:) = xundef
210 dtgr%XPAR_CV (:) = xundef
211 dtgr%XPAR_DG (:,:) = xundef
212 dtgr%XPAR_DICE (:) = xundef
213 dtgr%XPAR_ROOTFRAC (:,:) = xundef
214 dtgr%XPAR_Z0 (:,:) = xundef
215 dtgr%XPAR_Z0_O_Z0H (:) = xundef
216 dtgr%XPAR_ALBNIR_VEG (:) = xundef
217 dtgr%XPAR_ALBVIS_VEG (:) = xundef
218 dtgr%XPAR_ALBUV_VEG (:) = xundef
219 dtgr%XPAR_ALBNIR_SOIL (:) = xundef
220 dtgr%XPAR_ALBVIS_SOIL (:) = xundef
221 dtgr%XPAR_ALBUV_SOIL (:) = xundef
222 dtgr%XPAR_ALBNIR_DRY (:) = xundef
223 dtgr%XPAR_ALBVIS_DRY (:) = xundef
224 dtgr%XPAR_ALBUV_DRY (:) = xundef
225 dtgr%XPAR_ALBNIR_WET (:) = xundef
226 dtgr%XPAR_ALBVIS_WET (:) = xundef
227 dtgr%XPAR_ALBUV_WET (:) = xundef
228 dtgr%XPAR_EMIS (:,:) = xundef
229 dtgr%XPAR_VEGTYPE (:,:) = xundef
230 dtgr%XPAR_GMES (:) = xundef
231 dtgr%XPAR_RE25 (:) = xundef
232 dtgr%XPAR_BSLAI (:) = xundef
233 dtgr%XPAR_LAIMIN (:) = xundef
234 dtgr%XPAR_SEFOLD (:) = xundef
235 dtgr%XPAR_GC (:) = xundef
236 dtgr%XPAR_DMAX (:) = xundef
237 dtgr%XPAR_F2I (:) = xundef
238 dtgr%LDATA_STRESS (:) = .false.
239 dtgr%XPAR_H_TREE (:) = xundef
240 dtgr%XPAR_CE_NITRO (:) = xundef
241 dtgr%XPAR_CF_NITRO (:) = xundef
242 dtgr%XPAR_CNA_NITRO (:) = xundef
256 dtgr%XPAR_VEGTYPE(:,:) = 0.
257 IF (tgro%CTYP_GR ==
'GRASS') dtgr%XPAR_VEGTYPE(:, nvt_gras) = 1.
258 IF (tgro%CTYP_GR ==
'SEDUM') dtgr%XPAR_VEGTYPE(:, nvt_trog) = 1.
265 dtgr%XPAR_ALBNIR_DRY,dtgr%XPAR_ALBVIS_DRY,dtgr%XPAR_ALBUV_DRY, &
266 dtgr%XPAR_ALBNIR_WET,dtgr%XPAR_ALBVIS_WET,dtgr%XPAR_ALBUV_WET )
269 dtgr%XPAR_F2I(:) = 0.3
272 dtgr%XPAR_Z0_O_Z0H(:) = 10.
275 dtgr%LDATA_STRESS(:) = .false.
282 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_ALBNIR_VEG(ji)= 0.3
283 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_ALBNIR_VEG(ji)= 0.154
285 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_ALBVIS_VEG(ji)= 0.10
286 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_ALBVIS_VEG(ji)= 0.154
288 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_ALBUV_VEG(ji) = 0.0800
289 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_ALBUV_VEG(ji) = 0.1250
295 zdata_wgsat, zdata_wg1, &
296 dtgr%XPAR_ALBVIS_DRY, dtgr%XPAR_ALBNIR_DRY, dtgr%XPAR_ALBUV_DRY, &
297 dtgr%XPAR_ALBVIS_WET, dtgr%XPAR_ALBNIR_WET, dtgr%XPAR_ALBUV_WET, &
298 dtgr%XPAR_ALBVIS_SOIL,dtgr%XPAR_ALBNIR_SOIL,dtgr%XPAR_ALBUV_SOIL )
302 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_RSMIN(ji)= 120
303 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_RSMIN(ji)= 150.
308 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_GAMMA(ji)= 0.
309 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_GAMMA(ji)= 0.
313 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_WRMAX_CF(ji)= 0.2
314 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_WRMAX_CF(ji)= 0.2
318 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_RGL(ji)= 100.
319 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_RGL(ji)= 100.
323 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_CV(ji)= 2.e-5
324 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_CV(ji)= 2.e-5
328 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_GMES(ji)= 0.020
329 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_GMES(ji)= 0.020
334 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_RE25(ji)= 3.0e-7
335 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog )>0.) dtgr%XPAR_RE25(ji)= 3.0e-7
338 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_GC(ji)= 0.00025
339 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_GC(ji)= 0.00025
342 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_BSLAI(ji)= 0.36
343 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_BSLAI(ji)= 0.06
346 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_DMAX(ji)= 0.1
347 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_DMAX(ji)= 0.1
350 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_SEFOLD(ji)= 90.* xday
351 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_SEFOLD(ji)= 60.* xday
354 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_LAIMIN (ji) = 0.3
355 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_LAIMIN (ji) = 0.3
358 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_CE_NITRO(ji)= 5.56
359 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_CE_NITRO(ji)= 3.79
362 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_CF_NITRO(ji)= 6.73
363 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_CF_NITRO(ji)= 9.84
366 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_CNA_NITRO(ji)= 1.9
367 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog )>0.) dtgr%XPAR_CNA_NITRO(ji)= 1.3
370 dtgr%XPAR_DG(ji, 1) = xgrid_soil(ngrid_level - 5)
371 dtgr%XPAR_DG(ji, 2) = xgrid_soil(ngrid_level - 4)
372 dtgr%XPAR_DG(ji, 3) = xgrid_soil(ngrid_level - 3)
373 dtgr%XPAR_DG(ji, 4) = xgrid_soil(ngrid_level - 2)
374 dtgr%XPAR_DG(ji, 5) = xgrid_soil(ngrid_level - 1)
375 dtgr%XPAR_DG(ji, 6) = xgrid_soil(ngrid_level - 0)
378 dtgr%XPAR_ROOTFRAC(ji, 1) = 0.04
379 dtgr%XPAR_ROOTFRAC(ji, 2) = 0.36
380 dtgr%XPAR_ROOTFRAC(ji, 3) = 0.68
381 dtgr%XPAR_ROOTFRAC(ji, 4) = 1.
382 dtgr%XPAR_ROOTFRAC(ji, 5) = 1.
383 dtgr%XPAR_ROOTFRAC(ji, 6) = 1.
386 dtgr%XPAR_DICE(ji) = dtgr%XPAR_DG(ji,1)
388 DO jtime=1,tgro%NTIME_GR
390 dtgr%XPAR_LAI(ji,jtime) = dtgr%XPAR_LAI_GR(ji,jtime)
396 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_VEG (ji,jtime) = 0.9
398 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_VEG (ji,jtime) = 0.95
402 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_Z0 (ji,jtime) = 0.01
403 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_Z0 (ji,jtime) = 0.01
409 IF(dtgr%XPAR_VEGTYPE(ji,nvt_gras)>0. ) dtgr%XPAR_EMIS (ji,jtime) = 0.95
410 IF(dtgr%XPAR_VEGTYPE(ji,nvt_trog)>0. ) dtgr%XPAR_EMIS (ji,jtime) = 0.83
416 IF (lhook) CALL dr_hook(
'READ_PGD_TEB_GREENROOF_PAR_N',1,zhook_handle)
subroutine read_pgd_teb_greenroof_par_n(DTGR, TGRO, TG, HPROGRAM)
subroutine dry_wet_soil_albedos_1d(PSAND, PCLAY, PVEGTYPE, PALBNIR_DRY, PALBVIS_DRY, PALBUV_DRY, PALBNIR_WET, PALBVIS_WET, PALBUV_WET)