6 SUBROUTINE prep_teb_greenroof (DTCO, UG, U, USS, IG, I, TG, T, TOP, TVG, GRM, &
7 hprogram,hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
48 USE modi_prep_hor_teb_greenroof_field
49 USE modi_prep_ver_teb_greenroof
65 USE yomhook
,ONLY : lhook, dr_hook
66 USE parkind1
,ONLY : jprb
77 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
78 TYPE(isba_t
),
INTENT(INOUT) :: i
80 TYPE(teb_t),
INTENT(INOUT) :: t
85 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
86 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
87 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
88 CHARACTER(LEN=28),
INTENT(IN) :: hpgdfile
89 CHARACTER(LEN=6),
INTENT(IN) :: hpgdfiletype
91 INTEGER,
INTENT(IN) :: kpatch
96 REAL(KIND=JPRB) :: zhook_handle
112 IF (lhook) CALL dr_hook(
'PREP_TEB_GREENROOF',0,zhook_handle)
114 CALL
prep_hor_teb_greenroof_field(dtco, ig, i, ug, u, uss, grm%TGR, grm%TGRO, grm%TGRPE, grm%TGRP, &
116 hprogram,
'WG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
120 CALL
prep_hor_teb_greenroof_field(dtco, ig, i, ug, u, uss, grm%TGR, grm%TGRO, grm%TGRPE, grm%TGRP, &
122 hprogram,
'WGI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
126 CALL
prep_hor_teb_greenroof_field(dtco, ig, i, ug, u, uss, grm%TGR, grm%TGRO, grm%TGRPE, grm%TGRP, &
128 hprogram,
'WR ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
132 CALL
prep_hor_teb_greenroof_field(dtco, ig, i, ug, u, uss, grm%TGR, grm%TGRO, grm%TGRPE, grm%TGRP, &
134 hprogram,
'TG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
138 grm%TGRP%XTDEEP(:) = t%CUR%XT_ROOF(:,1)
142 CALL
prep_hor_teb_greenroof_field(dtco, ig, i, ug, u, uss, grm%TGR, grm%TGRO, grm%TGRPE, grm%TGRP, &
144 hprogram,
'SN_VEG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
148 CALL
prep_hor_teb_greenroof_field(dtco, ig, i, ug, u, uss, grm%TGR, grm%TGRO, grm%TGRPE, grm%TGRP, &
150 hprogram,
'LAI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
159 IF (all(grm%TGR%CUR%XWGI(:,:)==0.))
THEN
160 WHERE(grm%TGR%CUR%XTG(:,1:
SIZE(grm%TGR%CUR%XWG,2)) < xtt-10.)
161 grm%TGR%CUR%XWGI(:,:) = grm%TGRP%XWSAT(:,:)-xwgmin
162 grm%TGR%CUR%XWG (:,:) = xwgmin
168 WHERE(grm%TGR%CUR%XWG(:,:) /= xundef .AND. (grm%TGR%CUR%XWG(:,:) + grm%TGR%CUR%XWGI(:,:)) > grm%TGRP%XWSAT(:,:) )
169 grm%TGR%CUR%XWGI(:,:) = grm%TGRP%XWSAT(:,:) - grm%TGR%CUR%XWG(:,:)
185 ALLOCATE(grm%TGR%CUR%XRESA(
SIZE(grm%TGRPE%CUR%XLAI)))
186 grm%TGR%CUR%XRESA(:) = 100.
192 IF (tvg%CPHOTO /=
'NON')
THEN
194 ALLOCATE(grm%TGR%CUR%XAN(
SIZE(grm%TGRPE%CUR%XLAI)))
197 ALLOCATE(grm%TGR%CUR%XANDAY(
SIZE(grm%TGRPE%CUR%XLAI)))
198 grm%TGR%CUR%XANDAY = 0.
200 ALLOCATE(grm%TGR%CUR%XANFM(
SIZE(grm%TGRPE%CUR%XLAI)))
201 grm%TGR%CUR%XANFM = xanfminit
203 ALLOCATE(grm%TGR%CUR%XLE(
SIZE(grm%TGRPE%CUR%XLAI)))
208 IF (tvg%CPHOTO ==
'AGS' .OR. tvg%CPHOTO ==
'AST')
THEN
210 ALLOCATE(grm%TGR%CUR%XBIOMASS(
SIZE(grm%TGRPE%CUR%XLAI),tvg%NNBIOMASS))
211 grm%TGR%CUR%XBIOMASS(:,1) = 0.
213 ALLOCATE(grm%TGR%CUR%XRESP_BIOMASS(
SIZE(grm%TGRPE%CUR%XLAI),tvg%NNBIOMASS))
214 grm%TGR%CUR%XRESP_BIOMASS(:,:) = 0.
216 ELSEIF (tvg%CPHOTO ==
'LAI' .OR. tvg%CPHOTO ==
'LST')
THEN
218 ALLOCATE(grm%TGR%CUR%XBIOMASS(
SIZE(grm%TGRPE%CUR%XLAI),tvg%NNBIOMASS))
219 grm%TGR%CUR%XBIOMASS(:,1) = grm%TGRPE%CUR%XLAI(:) * grm%TGRP%XBSLAI(:)
221 ALLOCATE(grm%TGR%CUR%XRESP_BIOMASS(
SIZE(grm%TGRPE%CUR%XLAI),tvg%NNBIOMASS))
222 grm%TGR%CUR%XRESP_BIOMASS(:,:) = 0.
224 ELSEIF (tvg%CPHOTO ==
'NIT' .OR. tvg%CPHOTO ==
'NCB')
THEN
226 ALLOCATE(grm%TGR%CUR%XBIOMASS(
SIZE(grm%TGRPE%CUR%XLAI),tvg%NNBIOMASS))
227 grm%TGR%CUR%XBIOMASS(:,1) = grm%TGRPE%CUR%XLAI(:) * grm%TGRP%XBSLAI_NITRO(:)
228 grm%TGR%CUR%XBIOMASS(:,2) = max( 0., (grm%TGR%CUR%XBIOMASS(:,1)/ (xcc_nit/10.**xca_nit)) &
229 **(1.0/(1.0-xca_nit)) - grm%TGR%CUR%XBIOMASS(:,1) )
230 grm%TGR%CUR%XBIOMASS(:,3:tvg%NNBIOMASS) = 0.
232 ALLOCATE(grm%TGR%CUR%XRESP_BIOMASS(
SIZE(grm%TGRPE%CUR%XLAI),tvg%NNBIOMASS))
233 grm%TGR%CUR%XRESP_BIOMASS(:,:) = 0.
239 IF (lhook) CALL dr_hook(
'PREP_TEB_GREENROOF',1,zhook_handle)
subroutine prep_hor_teb_greenroof_field(DTCO, IG, I, UG, U, USS, TGR, TGRO, TGRPE, TGRP, TG, TOP, HPROGRAM, HSURF, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KPATCH)
subroutine prep_teb_greenroof(DTCO, UG, U, USS, IG, I, TG, T, TOP, TVG, GRM, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KPATCH)
subroutine prep_ver_teb_greenroof(TGR, TGRO, TGRP, TOP)