6 SUBROUTINE init_teb_garden_pgd_n (DTCO, U, OCH_BIO_FLUX, G, PGARDEN, TOP, IO, S, K, P, PEK, DTV, GB, &
7 HPROGRAM, HINIT, OPATCH1, KI, KVERSION, KBUGFIX, PCO2, PRHOA)
61 USE modd_data_cover_par
, ONLY: nvegtype
66 USE modi_read_prep_garden_snow
68 USE modi_allocate_teb_veg_pgd
69 USE modi_read_pgd_teb_garden_n
70 USE modi_convert_patch_isba
71 USE modi_init_from_data_teb_veg_n
72 USE modi_init_veg_pgd_n
73 USE modi_exp_decay_soil_fr
90 LOGICAL,
INTENT(IN) :: OCH_BIO_FLUX
91 TYPE(
grid_t),
INTENT(INOUT) :: G
92 REAL,
DIMENSION(:),
INTENT(IN) :: PGARDEN
104 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
105 CHARACTER(LEN=3),
INTENT(IN) :: HINIT
106 LOGICAL,
INTENT(IN) :: OPATCH1
107 INTEGER,
INTENT(IN) :: KI
108 INTEGER,
INTENT(IN) :: KVERSION
109 INTEGER,
INTENT(IN) :: KBUGFIX
110 REAL,
DIMENSION(KI),
INTENT(IN) :: PCO2
111 REAL,
DIMENSION(KI),
INTENT(IN) :: PRHOA
128 REAL,
DIMENSION(KI) :: ZF
129 REAL,
DIMENSION(KI) :: ZWORK
131 REAL,
DIMENSION(0) :: ZTDEEP_CLI, ZGAMMAT_CLI, ZTHRESHOLD
133 REAL(KIND=JPRB) :: ZHOOK_HANDLE
139 IF (
lhook)
CALL dr_hook(
'INIT_TEB_GARDEN_PGD_n',0,zhook_handle)
150 IF (hinit==
'PRE')
THEN 153 IF (pek%TSNOW%SCHEME.NE.
'3-L' .AND. pek%TSNOW%SCHEME.NE.
'CRO' .AND. io%CISBA==
'DIF')
THEN 154 CALL abor1_sfx(
"INIT_TEB_GARDEN_n: WITH CISBA = DIF, CSNOW MUST BE 3-L OR CRO")
171 IF (top%TTIME%TDATE%MONTH /=
nundef)
THEN 172 idecade = 3 * ( top%TTIME%TDATE%MONTH - 1 ) + min(top%TTIME%TDATE%DAY-1,29) / 10 + 1
180 io, k, g%NDIM, top, hprogram,kversion,kbugfix)
182 ALLOCATE(s%XVEGTYPE(ki,nvegtype))
184 s%XVEGTYPE = dtv%XPAR_VEGTYPE
188 CALL av_pgd(dtco, s%XVEGTYPE(:,jveg),top%XCOVER ,dtco%XDATA_VEGTYPE(:,jveg),
'GRD',
'ARI',top%LCOVER)
193 s%XVEGTYPE(:,jveg) = 0.
198 ALLOCATE(s%XPATCH(ki,1),p%XPATCH(ki))
199 ALLOCATE(s%XVEGTYPE_PATCH(ki,nvegtype,1),p%XVEGTYPE_PATCH(ki,nvegtype))
201 p%XPATCH(:) = s%XPATCH(:,1)
202 s%XVEGTYPE_PATCH(:,:,1) = s%XVEGTYPE
203 p%XVEGTYPE_PATCH(:,:) = s%XVEGTYPE_PATCH(:,:,1)
206 DO ji = 1,
SIZE(p%NR_P)
210 IF (.NOT. io%LPAR)
THEN 212 .false.,
'GRD', 1, k, p, pek, &
213 .true., .false., .false., .false., .false., .false., &
214 psoilgrid=io%XSOILGRID )
219 ALLOCATE(s%XWSN_WR(0,0,1))
220 ALLOCATE(s%XRHO_WR(0,0,1))
221 ALLOCATE(s%XALB_WR(0,1))
222 ALLOCATE(s%XHEA_WR(0,0,1))
223 ALLOCATE(s%XAGE_WR(0,0,1))
224 ALLOCATE(s%XSG1_WR(0,0,1))
225 ALLOCATE(s%XSG2_WR(0,0,1))
226 ALLOCATE(s%XHIS_WR(0,0,1))
238 IF (.NOT. io%LPAR)
THEN 240 .false.,
'GRD', 1, k, p, pek, &
241 .false., .true., .false., .false., .false., .false. )
246 IF (io%CISBA==
'DIF')
CALL init_if_dif(io%NGROUND_LAYER, pgarden, p)
252 ALLOCATE(k%XVEGTYPE(ki,nvegtype))
253 k%XVEGTYPE = s%XVEGTYPE
255 ALLOCATE(yss%XAOSIP(0))
257 CALL init_veg_pgd_n(yss, dtv, io, s, k, k, p, pek, yag, ki, &
258 hprogram,
'TOWN ',iluout, ki, top%TTIME%TDATE%MONTH, &
259 .false., .false., ztdeep_cli, zgammat_cli, &
260 .false., zthreshold, hinit, pco2, prhoa )
264 IF(io%CISBA==
'DIF'.AND.io%LSOC)
THEN 265 CALL abor1_sfx(
'INIT_TEB_GARDEN_PGDn: SUBGRID Soil organic matter'//&
266 ' effect (LSOC) NOT YET IMPLEMENTED FOR GARDEN')
267 ELSEIF (io%CISBA==
'3-L'.AND.io%CKSAT==
'EXP')
THEN 268 CALL abor1_sfx(
'INIT_TEB_GARDEN_PGDn: topmodel exponential decay not implemented for garden')
271 IF(io%CKSAT==
'SGH' .AND. io%CISBA/=
'DIF' .AND. hinit/=
'PRE')
THEN 278 IF (
lhook)
CALL dr_hook(
'INIT_TEB_GARDEN_PGD_n',1,zhook_handle)
subroutine init_if_noveg(PMASK, IO, S, P, PEK)
subroutine convert_patch_isba(DTCO, DTV, IO, KDEC, KDEC2, PCOVER,
subroutine allocate_teb_veg_pgd(PEK, S, K, P, OALLOC, KLU, KVEGTYPE, KGROUND_LAYER)
subroutine read_prep_garden_snow(HPROGRAM, HSNOW, KSNOW_LAYER, HFILE,
subroutine sso_init(YSSO)
subroutine init_veg_pgd_n(ISSK, DTI, IO, S, K, KK, PK, PEK, AGK, KI, HPROGRAM, HSURF, KLUOUT, KSIZE, KMONTH, ODEEPSOIL, OPHYSDOMC, PTDEEP_CLI, PGAMMAT_CLI, OAGRIP, PTHRESHOLD, HINIT, PCO2, PRHOA)
subroutine abor1_sfx(YTEXT)
subroutine read_pgd_teb_garden_n(OCH_BIO_FLUX, DTCO, DTV, GB, U,
integer, parameter nundef
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine exp_decay_soil_fr(HISBA, PF, PK, PC_DEPTH_RATIO)
subroutine init_from_data_teb_veg_n(DTV, K, P, PEK, KDECADE, OUPD
subroutine init_if_dif(KGROUND_LAYER, PMASK, P)
subroutine init_teb_garden_pgd_n(DTCO, U, OCH_BIO_FLUX, G, PGARDEN, TOP, IO, S, K, P, PEK, DTV, GB, HPROGRAM, HINIT, OPATCH1, KI, KVERSION, KBUGFIX, PCO2, PRHOA)