57 USE modd_data_cover_par
, ONLY: nvegtype
60 USE modd_isba_par
, ONLY : xoptimgrid
64 USE modi_read_nam_pgd_isba
66 USE modi_default_ch_dep
67 USE modi_default_ch_bio_flux
68 USE modi_default_crocus
69 USE modi_read_default_teb_veg_n
70 USE modi_read_teb_veg_conf_n
86 LOGICAL,
INTENT(OUT) :: OSURF_DIAG_ALBEDO
87 LOGICAL,
INTENT(IN) :: OGREENROOF
91 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
96 INTEGER :: IVERSION, IBUGFIX
99 CHARACTER(LEN=12) :: YRECFM
100 CHARACTER(LEN=4 ) :: YLVL
105 CHARACTER(LEN=3) :: YRAIN
106 LOGICAL :: GCANOPY_DRAG
111 LOGICAL :: GSPINUPCARBS
112 LOGICAL :: GSPINUPCARBW
117 INTEGER :: INBYEARSPINS
118 INTEGER :: INBYEARSPINW
121 INTEGER :: IGROUND_LAYER
123 CHARACTER(LEN=3) :: YISBA
124 CHARACTER(LEN=4) :: YPEDOTF
125 CHARACTER(LEN=3) :: YPHOTO
127 CHARACTER(LEN=4) :: YALBEDO
129 CHARACTER(LEN=28) :: YSAND
130 CHARACTER(LEN=28) :: YCLAY
131 CHARACTER(LEN=28) :: YSOC_TOP
132 CHARACTER(LEN=28) :: YSOC_SUB
133 CHARACTER(LEN=28) :: YCTI
134 CHARACTER(LEN=28) :: YRUNOFFB
135 CHARACTER(LEN=28) :: YWDRAIN
136 CHARACTER(LEN=28) :: YPERM
137 CHARACTER(LEN=6) :: YSANDFILETYPE
138 CHARACTER(LEN=6) :: YCLAYFILETYPE
139 CHARACTER(LEN=6) :: YSOCFILETYPE
140 CHARACTER(LEN=6) :: YCTIFILETYPE
141 CHARACTER(LEN=6) :: YRUNOFFBFILETYPE
142 CHARACTER(LEN=6) :: YWDRAINFILETYPE
143 CHARACTER(LEN=6) :: YPERMFILETYPE
146 REAL :: XUNIF_SOC_TOP
147 REAL :: XUNIF_SOC_SUB
148 REAL :: XUNIF_RUNOFFB
156 REAL,
DIMENSION(150) :: ZSOILGRID
157 CHARACTER(LEN=28) :: YPH
158 CHARACTER(LEN=28) :: YFERT
159 CHARACTER(LEN=6) :: YPHFILETYPE
160 CHARACTER(LEN=6) :: YFERTFILETYPE
165 REAL(KIND=JPRB) :: ZHOOK_HANDLE
171 IF (
lhook)
CALL dr_hook(
'INIT_TEB_VEG_OPTIONS_N',0,zhook_handle)
176 osurf_diag_albedo = .false.
190 CALL default_isba(gdo%XTSTEP, gdo%XOUT_TSTEP, gdo%CRUNOFF, &
191 gdo%CSCOND, gdo%CC1DRY, gdo%CSOILFRZ, &
192 gdo%CDIFSFCOND, gdo%CSNOWRES, gdo%CCPSURF, gdo%XCGMAX, &
193 gdo%XCDRAG, gdo%CKSAT, gdo%LSOC, gdo%CRAIN, gdo%CHORT, &
194 gdo%LGLACIER, gdo%LCANOPY_DRAG, gdo%LVEGUPD, gdo%LSPINUPCARBS, &
195 gdo%LSPINUPCARBW, gdo%XSPINMAXS, gdo%XSPINMAXW, gdo%XCO2_START,&
196 gdo%XCO2_END, gdo%NNBYEARSPINS, gdo%NNBYEARSPINW, gdo%LNITRO_DILU )
200 CALL default_crocus(gdo%LSNOWDRIFT,gdo%LSNOWDRIFT_SUBLIM,gdo%LSNOW_ABS_ZENITH,&
201 gdo%CSNOWMETAMO,gdo%CSNOWRAD)
213 gdo%LMEB_GNDRES = .false.
222 CALL read_surf(hprogram,yrecfm,iversion,iresp)
225 CALL read_surf(hprogram,yrecfm,ibugfix,iresp)
232 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3) yrecfm=
'GD_ISBA' 233 CALL read_surf(hprogram,yrecfm,gdo%CISBA,iresp)
235 IF (iversion>=7)
THEN 238 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3) yrecfm=
'GD_PEDOTF' 239 CALL read_surf(hprogram,yrecfm,gdo%CPEDOTF,iresp)
246 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3) yrecfm=
'GD_PHOTO' 247 CALL read_surf(hprogram,yrecfm,gdo%CPHOTO,iresp)
250 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3) yrecfm=
'GD_LAYER' 251 CALL read_surf(hprogram,yrecfm,gdo%NGROUND_LAYER,iresp)
253 ALLOCATE(gdo%LMEB_PATCH(1))
254 gdo%LMEB_PATCH(:) = .false.
258 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=2)
THEN 261 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3) yrecfm=
'GD_TR_ML' 262 CALL read_surf(hprogram,yrecfm,gdo%LTR_ML,iresp)
268 IF (iversion>8 .OR. iversion==8 .AND. ibugfix>=1)
THEN 271 CALL read_surf(hprogram,yrecfm,gdo%CALBEDO,iresp)
276 yisba, ypedotf, yphoto, gtr_ml, yalbedo, zrm_patch, &
277 yclay, yclayfiletype, xunif_clay, limp_clay, &
278 ysand, ysandfiletype, xunif_sand, limp_sand, &
279 ysoc_top, ysoc_sub, ysocfiletype, xunif_soc_top, &
280 xunif_soc_sub, limp_soc, ycti, yctifiletype, limp_cti, &
281 yperm, ypermfiletype, xunif_perm, limp_perm, gmeb, &
282 yrunoffb, yrunoffbfiletype, xunif_runoffb, &
283 ywdrain, ywdrainfiletype , xunif_wdrain, zsoilgrid, &
284 yph, yphfiletype, xunif_ph, yfert, yfertfiletype, &
286 gdo%CALBEDO = yalbedo
292 IF(gdo%CISBA==
'DIF')
THEN 293 ALLOCATE(gdo%XSOILGRID(gdo%NGROUND_LAYER))
295 IF (iversion>=8)
THEN 296 DO jlayer=1,gdo%NGROUND_LAYER
297 WRITE(ylvl,
'(I4)') jlayer
298 yrecfm=
'GD_SGRID'//adjustl(ylvl(:len_trim(ylvl)))
299 CALL read_surf(hprogram,yrecfm,gdo%XSOILGRID(jlayer),iresp)
301 ELSEIF (iversion==7 .AND. ibugfix>=2)
THEN 302 yrecfm=
'TWN_SOILGRID' 303 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3) yrecfm=
'GD_SOILGRID' 304 CALL read_surf(hprogram,yrecfm,gdo%XSOILGRID,iresp,hdir=
'-')
306 gdo%XSOILGRID(1:gdo%NGROUND_LAYER)=xoptimgrid(1:gdo%NGROUND_LAYER)
309 ALLOCATE(gdo%XSOILGRID(0))
315 IF (gdo%CPHOTO==
'NIT') gdo%NNBIOMASS=3
322 ALLOCATE(gro%LMEB_PATCH(1))
323 gro%LMEB_PATCH(:) = .false.
324 gro%CRESPSL = gdo%CRESPSL
327 CALL read_surf(hprogram,yrecfm,gro%CISBA,iresp)
329 gro%CPEDOTF = gdo%CPEDOTF
330 gro%CPHOTO = gdo%CPHOTO
333 CALL read_surf( hprogram,yrecfm,gro%NGROUND_LAYER,iresp)
337 gro%NNBIOMASS = gdo%NNBIOMASS
340 CALL read_surf(hprogram,yrecfm,gro%CSCOND,iresp)
342 gro%XTSTEP = gdo%XTSTEP
343 gro%XOUT_TSTEP = gdo%XOUT_TSTEP
344 gro%CRUNOFF = gdo%CRUNOFF
345 gro%CALBEDO = gdo%CALBEDO
346 gro%CC1DRY = gdo%CC1DRY
347 gro%CSOILFRZ = gdo%CSOILFRZ
348 gro%CDIFSFCOND = gdo%CDIFSFCOND
349 gro%CSNOWRES = gdo%CSNOWRES
350 gro%CCPSURF = gdo%CCPSURF
351 gro%XCGMAX = gdo%XCGMAX
352 gro%XCDRAG = gdo%XCDRAG
353 gro%CKSAT = gdo%CKSAT
355 gro%CRAIN = gdo%CRAIN
356 gro%CHORT = gdo%CHORT
357 gro%LGLACIER = gdo%LGLACIER
358 gro%LCANOPY_DRAG = gdo%LCANOPY_DRAG
359 gro%LVEGUPD = gdo%LVEGUPD
360 gro%LSPINUPCARBS = gdo%LSPINUPCARBS
361 gro%LSPINUPCARBW = gdo%LSPINUPCARBW
362 gro%XSPINMAXS = gdo%XSPINMAXS
363 gro%XSPINMAXW = gdo%XSPINMAXW
364 gro%XCO2_START = gdo%XCO2_START
365 gro%XCO2_END = gdo%XCO2_END
366 gro%NNBYEARSPINS = gdo%NNBYEARSPINS
367 gro%NNBYEARSPINW = gdo%NNBYEARSPINW
368 gro%LNITRO_DILU = gdo%LNITRO_DILU
370 gro%LSNOWDRIFT = gdo%LSNOWDRIFT
371 gro%LSNOWDRIFT_SUBLIM = gdo%LSNOWDRIFT_SUBLIM
372 gro%LSNOW_ABS_ZENITH = gdo%LSNOW_ABS_ZENITH
373 gro%CSNOWMETAMO = gdo%CSNOWMETAMO
374 gro%CSNOWRAD = gdo%CSNOWRAD
376 gro%LMEB_GNDRES = gdo%LMEB_GNDRES
382 IF (
lhook)
CALL dr_hook(
'INIT_TEB_VEG_OPTIONS_N',1,zhook_handle)
subroutine default_isba(PTSTEP, POUT_TSTEP,
subroutine read_nam_pgd_isba(HPROGRAM, KPATCH, KGROUND_LAYER,
subroutine read_teb_veg_conf_n(CHT, IO, HPROGRAM)
subroutine init_teb_veg_options_n(CHT, OSURF_DIAG_ALBEDO, OGREENROOF, GDO, GRO, HPROGRAM)
integer, parameter nundef
subroutine default_crocus(OSNOWDRIFT, OSNOWDRIFT_SUBLIM, OSNOW_ABS_Z
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_default_teb_veg_n(CHT, IO, HPROGRAM)
subroutine default_ch_bio_flux(OCH_BIO_FLUX)