6 SUBROUTINE init_teb_garden_pgd_n (DTCO, U, CHI, DTI, I, DST, SLT, CHT, TG, T, TOP, GDM, &
7 hprogram,hinit, oread_pgd,ki, ksv, hsv, kversion, kbugfix, &
67 USE modi_allocate_teb_garden_pgd
68 USE modi_read_pgd_teb_garden_n
69 USE modi_convert_patch_garden
70 USE modi_init_from_data_grdn_n
71 USE modi_init_veg_pgd_garden_n
72 USE modi_exp_decay_soil_fr
75 USE yomhook
,ONLY : lhook, dr_hook
76 USE parkind1
,ONLY : jprb
88 TYPE(isba_t
),
INTENT(INOUT) :: i
89 TYPE(dst_t),
INTENT(INOUT) :: dst
90 TYPE(slt_t),
INTENT(INOUT) :: slt
93 TYPE(teb_t),
INTENT(INOUT) :: t
97 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
98 CHARACTER(LEN=3),
INTENT(IN) :: hinit
99 LOGICAL,
INTENT(IN) :: oread_pgd
100 INTEGER,
INTENT(IN) :: ki
101 INTEGER,
INTENT(IN) :: ksv
102 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN) :: hsv
103 INTEGER,
INTENT(IN) :: kversion
104 INTEGER,
INTENT(IN) :: kbugfix
105 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
106 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
118 INTEGER :: jvegtype, jlayer
120 REAL,
DIMENSION(KI) :: zf
121 REAL,
DIMENSION(KI) :: zwork
122 REAL(KIND=JPRB) :: zhook_handle
128 IF (lhook) CALL dr_hook(
'INIT_TEB_GARDEN_PGD_n',0,zhook_handle)
139 oread_pgd, ki, nvegtype, gdm%TGDO%NGROUND_LAYER, ndimtab)
147 hprogram,kversion,kbugfix)
153 IF (top%TTIME%TDATE%MONTH /= nundef)
THEN
154 idecade = 3 * ( top%TTIME%TDATE%MONTH - 1 ) + min(top%TTIME%TDATE%DAY-1,29) / 10 + 1
160 IF (.NOT. gdm%TGDO%LPAR_GARDEN)
THEN
165 idecade,gdm%TVG%CPHOTO, gdm%TGDPE%CUR%XVEG, &
166 gdm%TGDPE%CUR%XLAI,gdm%TGDP%XRSMIN,gdm%TGDP%XGAMMA,&
167 gdm%TGDP%XWRMAX_CF, gdm%TGDP%XRGL,gdm%TGDP%XCV,gdm%TGDP%XDG,&
168 gdm%TGDP%XD_ICE,gdm%TGDPE%CUR%XZ0,gdm%TGDP%XZ0_O_Z0H,&
169 gdm%TGDP%XALBNIR_VEG,gdm%TGDP%XALBVIS_VEG, &
170 gdm%TGDP%XALBUV_VEG,gdm%TGDPE%CUR%XEMIS, &
171 gdm%TGDP%XVEGTYPE,gdm%TGDP%XROOTFRAC,gdm%TGDP%XGMES,&
172 gdm%TGDP%XBSLAI,gdm%TGDP%XLAIMIN,gdm%TGDP%XSEFOLD,gdm%TGDP%XGC, &
173 gdm%TGDP%XDMAX, gdm%TGDP%XF2I, gdm%TGDP%LSTRESS, gdm%TGDP%XH_TREE,&
174 gdm%TGDP%XRE25,gdm%TGDP%XCE_NITRO,gdm%TGDP%XCF_NITRO,gdm%TGDP%XCNA_NITRO )
176 IF (gdm%TVG%CISBA==
'DIF')
THEN
177 WHERE(t%CUR%XGARDEN(:)/=0.)
178 gdm%TGDP%NWG_LAYER(:)=gdm%TGDO%NGROUND_LAYER
179 gdm%TGDP%XDG2 (:)=0.0
180 gdm%TGDP%XDROOT(:)=0.0
182 DO jlayer=gdm%TGDO%NGROUND_LAYER,1,-1
184 IF(t%CUR%XGARDEN(jilu)/=0..AND.gdm%TGDP%XROOTFRAC(jilu,jlayer)>=1.0)
THEN
185 gdm%TGDP%XDG2 (jilu)=gdm%TGDP%XDG(jilu,jlayer)
186 gdm%TGDP%XDROOT(jilu)=gdm%TGDP%XDG(jilu,jlayer)
195 WHERE (t%CUR%XGARDEN(:)==0.)
196 gdm%TGDPE%CUR%XVEG(:)=0.
197 gdm%TGDPE%CUR%XLAI(:)=0.
198 gdm%TGDP%XRSMIN(:)=40.
199 gdm%TGDP%XGAMMA(:)=0.
200 gdm%TGDP%XWRMAX_CF(:)=0.2
201 gdm%TGDP%XRGL(:)=100.
202 gdm%TGDP%XCV(:)=2.e-5
203 gdm%TGDPE%CUR%XZ0(:)=0.013
204 gdm%TGDP%XZ0_O_Z0H(:)=10.
205 gdm%TGDP%XALBNIR_VEG(:)=0.30
206 gdm%TGDP%XALBVIS_VEG(:)=0.30
207 gdm%TGDP%XALBUV_VEG(:)=0.06
208 gdm%TGDPE%CUR%XEMIS(:)=0.94
210 IF (gdm%TVG%CPHOTO/=
'NON')
THEN
211 WHERE (t%CUR%XGARDEN(:)==0.)
212 gdm%TGDP%XGMES(:)=0.020
213 gdm%TGDP%XBSLAI(:)=0.36
214 gdm%TGDP%XLAIMIN(:)=0.3
215 gdm%TGDP%XSEFOLD(:)=90*86400.
216 gdm%TGDP%XH_TREE(:)=0.
217 gdm%TGDP%XRE25(:)=3.6e-7
218 gdm%TGDP%XGC(:)=0.00025
220 IF (gdm%TVG%CPHOTO/=
'AGS' .AND. gdm%TVG%CPHOTO/=
'LAI')
THEN
221 WHERE (t%CUR%XGARDEN(:)==0.)
222 gdm%TGDP%XDMAX(:)=0.1
225 IF (gdm%TVG%CPHOTO==
'NIT' .OR. gdm%TVG%CPHOTO==
'NCB')
THEN
226 WHERE (t%CUR%XGARDEN(:)==0.)
227 gdm%TGDP%XCE_NITRO(:)=7.68
228 gdm%TGDP%XCF_NITRO(:)=-4.33
229 gdm%TGDP%XCNA_NITRO(:)=1.3
234 IF(gdm%TVG%CISBA/=
'DIF')
THEN
235 DO jlayer=1,gdm%TGDO%NGROUND_LAYER
236 WHERE (t%CUR%XGARDEN(:)==0.)
237 gdm%TGDP%XDG(:,jlayer)=0.2*jlayer
241 WHERE (t%CUR%XGARDEN(:)==0.)
242 gdm%TGDP%XDG(:,1)=0.01
243 gdm%TGDP%XDG(:,2)=0.04
244 gdm%TGDP%XROOTFRAC(:,1)=0.
245 gdm%TGDP%XROOTFRAC(:,2)=0.
247 DO jlayer=3,gdm%TGDO%NGROUND_LAYER
248 WHERE (t%CUR%XGARDEN(:)==0.)
249 gdm%TGDP%XDG(:,jlayer)=0.1*(jlayer-2)
250 gdm%TGDP%XROOTFRAC(:,jlayer)=0.
253 WHERE (t%CUR%XGARDEN(:)==0.)
254 gdm%TGDP%NWG_LAYER(:)=gdm%TGDO%NGROUND_LAYER
255 gdm%TGDP%XDROOT (:)=0.0
256 gdm%TGDP%XDG2 (:)=gdm%TGDP%XDG(:,gdm%TGDO%NGROUND_LAYER-1)
259 WHERE (t%CUR%XGARDEN(:)==0.)
260 gdm%TGDP%XD_ICE(:)=0.8*gdm%TGDP%XDG(:,2)
262 DO jvegtype=1,nvegtype
263 WHERE (t%CUR%XGARDEN(:)==0.)
264 gdm%TGDP%XVEGTYPE(:,jvegtype)=0.
265 gdm%TGDP%XVEGTYPE(:,1)=1.
270 hprogram, iluout, ki, gdm%TGDO%NGROUND_LAYER, top%TTIME%TDATE%MONTH, &
271 gdm%TGDP%XVEGTYPE, gdm%TGDP%XTDEEP, gdm%TGDP%XGAMMAT, gdm%TVG%CPHOTO, hinit, &
272 gdm%TVG%LTR_ML, gdm%TVG%CRUNOFF, gdm%TVG%NNBIOMASS, pco2, prhoa, &
273 gdm%TGDP%XABC, gdm%TGDP%XPOI, gdm%TGDP%XGMES, gdm%TGDP%XGC, gdm%TGDP%XDMAX, &
274 gdm%TGDP%XANMAX, gdm%TGDP%XFZERO, gdm%TGDP%XEPSO, gdm%TGDP%XGAMM, gdm%TGDP%XQDGAMM, &
275 gdm%TGDP%XQDGMES, gdm%TGDP%XT1GMES, gdm%TGDP%XT2GMES, gdm%TGDP%XAMAX, gdm%TGDP%XQDAMAX, &
276 gdm%TGDP%XT1AMAX, gdm%TGDP%XT2AMAX,gdm%TGDP%XAH, gdm%TGDP%XBH, &
277 ksv, hsv, cht%SVT, cht%CCH_NAMES, cht%CAER_NAMES,cht%CDSTNAMES, cht%CSLTNAMES, &
278 cht%CCHEM_SURF_FILE, gdm%TGDP%XCLAY, gdm%TGDP%XSAND, gdm%TVG%CPEDOTF, &
279 gdm%TGDP%XCONDSAT, gdm%TGDP%XMPOTSAT, gdm%TGDP%XBCOEF, gdm%TGDP%XWWILT, &
280 gdm%TGDP%XWFC, gdm%TGDP%XWSAT, gdm%TGDP%XTAUICE, gdm%TGDP%XCGSAT, gdm%TGDP%XC1SAT, &
281 gdm%TGDP%XC2REF, gdm%TGDP%XC3, gdm%TGDP%XC4B, gdm%TGDP%XACOEF, gdm%TGDP%XPCOEF, &
282 gdm%TGDP%XC4REF, gdm%TGDP%XPCPS, gdm%TGDP%XPLVTT, gdm%TGDP%XPLSTT, &
283 gdm%TVG%CSCOND, gdm%TVG%CISBA, gdm%TGDP%XHCAPSOIL, gdm%TGDP%XCONDDRY, &
284 gdm%TGDP%XCONDSLD, gdm%TVG%CCPSURF, gdm%TGDP%XDG, gdm%TGDP%XDROOT, gdm%TGDP%XDG2, &
285 gdm%TGDP%XROOTFRAC, gdm%TGDP%XRUNOFFD, gdm%TGDP%XDZG, gdm%TGDP%XDZDIF, &
286 gdm%TGDP%XSOILWGHT, gdm%TGDP%NWG_LAYER, gdm%TGDO%NLAYER_HORT, &
287 gdm%TGDO%NLAYER_DUN, gdm%TGDP%XD_ICE, &
288 gdm%TGDP%XKSAT_ICE, gdm%TGDP%XALBNIR_DRY, gdm%TGDP%XALBVIS_DRY, gdm%TGDP%XALBUV_DRY, &
289 gdm%TGDP%XALBNIR_WET, gdm%TGDP%XALBVIS_WET, gdm%TGDP%XALBUV_WET, gdm%TGDP%XBSLAI_NITRO, &
290 gdm%TGDP%XCE_NITRO, gdm%TGDP%XCNA_NITRO, gdm%TGDP%XCF_NITRO )
294 IF(gdm%TVG%CISBA==
'DIF'.AND.gdm%TVG%LSOC)
THEN
295 CALL
abor1_sfx(
'INIT_TEB_GARDEN_PGDn: SUBGRID Soil organic matter'//&
296 ' effect (LSOC) NOT YET IMPLEMENTED FOR GARDEN')
297 ELSEIF (gdm%TVG%CISBA==
'3-L'.AND.gdm%TVG%CKSAT==
'EXP')
THEN
298 CALL
abor1_sfx(
'INIT_TEB_GARDEN_PGDn: topmodel exponential decay not implemented for garden')
301 IF(gdm%TVG%CKSAT==
'SGH' .AND. gdm%TVG%CISBA/=
'DIF' .AND. hinit/=
'PRE')
THEN
302 zf(:)=min(4.0/gdm%TGDP%XDG(:,2),xf_decay)
303 CALL
exp_decay_soil_fr(gdm%TVG%CISBA, zf(:),gdm%TGDP%XC1SAT(:),gdm%TGDP%XC2REF(:),&
304 gdm%TGDP%XDG(:,:),gdm%TGDP%XD_ICE(:),gdm%TGDP%XC4REF(:),&
305 gdm%TGDP%XC3(:,:),gdm%TGDP%XCONDSAT(:,:),gdm%TGDP%XKSAT_ICE(:))
310 IF (lhook) CALL dr_hook(
'INIT_TEB_GARDEN_PGD_n',1,zhook_handle)
subroutine init_from_data_grdn_n(DTGD, KDECADE, HPHOTO, PVEG, PLAI, PRSMIN, PGAMMA, PWRMAX_CF, PRGL, PCV, PDG, PD_ICE, PZ0, PZ0_O_Z0H, PALBNIR_VEG, PALBVIS_VEG, PALBUV_VEG, PEMIS, PVEGTYPE, PROOTFRAC, PGMES, PBSLAI, PLAIMIN, PSEFOLD, PGC, PDMAX, PF2I, OSTRESS, PH_TREE, PRE25, PCE_NITRO, PCF_NITRO, PCNA_NITRO, PALBNIR_SOIL, PALBVIS_SOIL, PALBUV_SOIL)
subroutine convert_patch_garden(DTCO, DTI, I, TGDO, TGDPE, TGDP, TOP, TVG, KLU, KDECADE)
subroutine abor1_sfx(YTEXT)
subroutine init_teb_garden_pgd_n(DTCO, U, CHI, DTI, I, DST, SLT, CHT, TG, T, TOP, GDM, HPROGRAM, HINIT, OREAD_PGD, KI, KSV, HSV, KVERSION, KBUGFIX, PCO2, PRHOA)
subroutine allocate_teb_garden_pgd(TGDPE, TGDP, OALLOC, KLU, KVEGTYPE, KGROUND_LAYER, KDIMTAB)
subroutine init_veg_pgd_garden_n(CHI, DTCO, DST, I, SLT, U, HPROGRAM, KLUOUT, KI, KGROUND_LAYER, KMONTH, PVEGTYPE, PTDEEP, PGAMMAT, HPHOTO, HINIT, OTR_ML, HRUNOFF, KNBIOMASS, PCO2, PRHOA, PABC, PPOI, PGMES, PGC, PDMAX, PANMAX, PFZERO, PEPSO, PGAMM, PQDGAMM, PQDGMES, PT1GMES, PT2GMES, PAMAX, PQDAMAX, PT1AMAX, PT2AMAX, PAH, PBH, KSV, HSV, YSV, HCH_NAMES, HAER_NAMES, HDSTNAMES, HSLTNAMES, HCHEM_SURF_FILE, PCLAY, PSAND, HPEDOTF, PCONDSAT, PMPOTSAT, PBCOEF, PWWILT, PWFC, PWSAT, PTAUICE, PCGSAT, PC1SAT, PC2REF, PC3, PC4B, PACOEF, PPCOEF, PC4REF, PPCPS, PPLVTT, PPLSTT, HSCOND, HISBA, PHCAPSOIL, PCONDDRY, PCONDSLD, HCPSURF, PDG, PDROOT, PDG2, PROOTFRAC, PRUNOFFD, PDZG, PDZDIF, PSOILWGHT, KWG_LAYER, KLAYER_HORT, KLAYER_DUN, PD_ICE, PKSAT_ICE, PALBNIR_DRY, PALBVIS_DRY, PALBUV_DRY, PALBNIR_WET, PALBVIS_WET, PALBUV_WET, PBSLAI_NITRO, PCE_NITRO, PCNA_NITRO, PCF_NITRO)
subroutine read_pgd_teb_garden_n(CHT, DTCO, DTGD, GBGD, U, TGDO, TGDP, TG, TOP, HPROGRAM, KVERSION, KBUGFIX)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine exp_decay_soil_fr(HISBA, PF, PC1SAT, PC2REF, PD_G, PD_ICE, PC4REF, PC3, PCONDSAT, PKSAT_ICE)