7 hprogram,hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
48 USE modi_prep_hor_teb_garden_field
49 USE modi_prep_ver_teb_garden
65 USE yomhook
,ONLY : lhook, dr_hook
66 USE parkind1
,ONLY : jprb
78 TYPE(isba_grid_t
),
INTENT(INOUT) :: ig
79 TYPE(isba_t
),
INTENT(INOUT) :: i
84 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
85 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
86 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
87 CHARACTER(LEN=28),
INTENT(IN) :: hpgdfile
88 CHARACTER(LEN=6),
INTENT(IN) :: hpgdfiletype
90 INTEGER,
INTENT(IN) :: kpatch
94 REAL(KIND=JPRB) :: zhook_handle
110 IF (lhook) CALL dr_hook(
'PREP_TEB_GARDEN',0,zhook_handle)
112 gdm%TGD, gdm%TGDO, gdm%TGDPE, gdm%TGDP, tg, top, gdm%TVG, &
113 hprogram,
'WG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
118 gdm%TGD, gdm%TGDO, gdm%TGDPE, gdm%TGDP, tg, top, gdm%TVG, &
119 hprogram,
'WGI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
124 gdm%TGD, gdm%TGDO, gdm%TGDPE, gdm%TGDP, tg, top, gdm%TVG, &
125 hprogram,
'WR ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
130 gdm%TGD, gdm%TGDO, gdm%TGDPE, gdm%TGDP, tg, top, gdm%TVG, &
131 hprogram,
'TG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
136 gdm%TGD, gdm%TGDO, gdm%TGDPE, gdm%TGDP, tg, top, gdm%TVG, &
137 hprogram,
'SN_VEG ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
142 IF (gdm%TVG%CPHOTO/=
'NON' .AND. gdm%TVG%CPHOTO/=
'AGS' .AND. gdm%TVG%CPHOTO/=
'LST') &
144 gdm%TGD, gdm%TGDO, gdm%TGDPE, gdm%TGDP, tg, top, gdm%TVG, &
145 hprogram,
'LAI ',hatmfile,hatmfiletype,hpgdfile,hpgdfiletype,kpatch)
154 IF (all(gdm%TGD%CUR%XWGI(:,:)==0.))
THEN
155 WHERE(gdm%TGD%CUR%XTG(:,1:
SIZE(gdm%TGD%CUR%XWG,2)) < xtt-10.)
156 gdm%TGD%CUR%XWGI(:,:) = gdm%TGDP%XWSAT(:,:)-xwgmin
157 gdm%TGD%CUR%XWG (:,:) = xwgmin
162 IF (gdm%TVG%CISBA ==
'3-L')
THEN
163 WHERE(gdm%TGD%CUR%XWG(:,3)/=xundef.AND.gdm%TGD%CUR%XWGI(:,3)/=xundef)
164 gdm%TGD%CUR%XWG(:,3) = min(gdm%TGD%CUR%XWG(:,3)+gdm%TGD%CUR%XWGI(:,3),gdm%TGDP%XWSAT(:,3))
165 gdm%TGD%CUR%XWGI(:,3) = 0.
170 WHERE(gdm%TGD%CUR%XWG(:,:) /= xundef .AND. &
171 (gdm%TGD%CUR%XWG(:,:) + gdm%TGD%CUR%XWGI(:,:)) > gdm%TGDP%XWSAT(:,:) )
172 gdm%TGD%CUR%XWGI(:,:) = gdm%TGDP%XWSAT(:,:) - gdm%TGD%CUR%XWG(:,:)
188 ALLOCATE(gdm%TGD%CUR%XRESA(
SIZE(gdm%TGDPE%CUR%XLAI,1)))
189 gdm%TGD%CUR%XRESA = 100.
195 IF (gdm%TVG%CPHOTO /=
'NON')
THEN
197 ALLOCATE(gdm%TGD%CUR%XAN(
SIZE(gdm%TGDPE%CUR%XLAI,1)))
200 ALLOCATE(gdm%TGD%CUR%XANDAY(
SIZE(gdm%TGDPE%CUR%XLAI,1)))
201 gdm%TGD%CUR%XANDAY = 0.
203 ALLOCATE(gdm%TGD%CUR%XANFM(
SIZE(gdm%TGDPE%CUR%XLAI,1)))
204 gdm%TGD%CUR%XANFM = xanfminit
206 ALLOCATE(gdm%TGD%CUR%XLE(
SIZE(gdm%TGDPE%CUR%XLAI,1)))
211 IF (gdm%TVG%CPHOTO ==
'AGS' .OR. gdm%TVG%CPHOTO ==
'AST')
THEN
213 ALLOCATE(gdm%TGD%CUR%XBIOMASS(
SIZE(gdm%TGDPE%CUR%XLAI,1),gdm%TVG%NNBIOMASS))
214 gdm%TGD%CUR%XBIOMASS(:,1) = 0.
216 ALLOCATE(gdm%TGD%CUR%XRESP_BIOMASS(
SIZE(gdm%TGDPE%CUR%XLAI,1),gdm%TVG%NNBIOMASS))
217 gdm%TGD%CUR%XRESP_BIOMASS(:,:) = 0.
219 ELSEIF (gdm%TVG%CPHOTO ==
'LAI' .OR. gdm%TVG%CPHOTO ==
'LST')
THEN
221 ALLOCATE(gdm%TGD%CUR%XBIOMASS(
SIZE(gdm%TGDPE%CUR%XLAI,1),gdm%TVG%NNBIOMASS))
222 gdm%TGD%CUR%XBIOMASS(:,1) = gdm%TGDPE%CUR%XLAI(:) * gdm%TGDP%XBSLAI(:)
224 ALLOCATE(gdm%TGD%CUR%XRESP_BIOMASS(
SIZE(gdm%TGDPE%CUR%XLAI,1),gdm%TVG%NNBIOMASS))
225 gdm%TGD%CUR%XRESP_BIOMASS(:,:) = 0.
227 ELSEIF (gdm%TVG%CPHOTO ==
'NIT' .OR. gdm%TVG%CPHOTO ==
'NCB')
THEN
229 ALLOCATE(gdm%TGD%CUR%XBIOMASS(
SIZE(gdm%TGDPE%CUR%XLAI,1),gdm%TVG%NNBIOMASS))
230 gdm%TGD%CUR%XBIOMASS(:,1) = gdm%TGDPE%CUR%XLAI(:) * gdm%TGDP%XBSLAI_NITRO(:)
231 gdm%TGD%CUR%XBIOMASS(:,2) = max( 0., (gdm%TGD%CUR%XBIOMASS(:,1)/ (xcc_nit/10.**xca_nit)) &
232 **(1.0/(1.0-xca_nit)) - gdm%TGD%CUR%XBIOMASS(:,1) )
233 gdm%TGD%CUR%XBIOMASS(:,3:gdm%TVG%NNBIOMASS) = 0.
235 ALLOCATE(gdm%TGD%CUR%XRESP_BIOMASS(
SIZE(gdm%TGDPE%CUR%XLAI,1),gdm%TVG%NNBIOMASS))
236 gdm%TGD%CUR%XRESP_BIOMASS(:,:) = 0.
242 IF (lhook) CALL dr_hook(
'PREP_TEB_GARDEN',1,zhook_handle)
subroutine prep_hor_teb_garden_field(DTCO, IG, I, UG, U, USS, TGD, TGDO, TGDPE, TGDP, TG, TOP, TVG, HPROGRAM, HSURF, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KPATCH)
subroutine prep_teb_garden(DTCO, UG, U, USS, IG, I, TG, TOP, GDM, HPROGRAM, HATMFILE, HATMFILETYPE, HPGDFILE, HPGDFILETYPE, KPATCH)
subroutine prep_ver_teb_garden(TGD, TGDO, TGDP, TOP, TVG)