55 USE modd_co2v_par
, ONLY : xanfminit, xcondctmin
58 USE modd_snow_par
, ONLY : xz0sn
62 USE modi_init_io_surf_n
63 USE modi_set_surfex_filein
64 USE modi_end_io_surf_n
65 USE modi_town_presence
66 USE modi_allocate_gr_snow
72 USE modi_get_type_dim_n
86 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
87 CHARACTER(LEN=3),
INTENT(IN) :: HPATCH
93 INTEGER :: IVERSION, IBUGFIX
96 CHARACTER(LEN=12) :: YRECFM
97 CHARACTER(LEN=4) :: YLVL
98 REAL,
DIMENSION(:),
ALLOCATABLE :: ZWORK
102 INTEGER :: JL, JNBIOMASS
103 REAL(KIND=JPRB) :: ZHOOK_HANDLE
110 IF (
lhook)
CALL dr_hook(
'READ_TEB_GARDEN_N',0,zhook_handle)
115 CALL read_surf(hprogram,yrecfm,iversion,iresp)
118 CALL read_surf(hprogram,yrecfm,ibugfix,iresp)
126 iwork=io%NGROUND_LAYER
128 ALLOCATE(pek%XTG(ilu,iwork))
130 WRITE(ylvl,
'(I2)') jl
131 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 132 yrecfm=hpatch//
'GD_TG'//adjustl(ylvl(:len_trim(ylvl)))
134 yrecfm=
'TWN_TG'//adjustl(ylvl(:len_trim(ylvl)))
136 yrecfm=adjustl(yrecfm)
137 CALL read_surf(hprogram,yrecfm,zwork(:),iresp)
144 ALLOCATE(pek%XWG(ilu,iwork))
145 DO jl=1,io%NGROUND_LAYER
146 WRITE(ylvl,
'(I2)') jl
147 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 148 yrecfm=hpatch//
'GD_WG'//adjustl(ylvl(:len_trim(ylvl)))
150 yrecfm=
'TWN_WG'//adjustl(ylvl(:len_trim(ylvl)))
152 yrecfm=adjustl(yrecfm)
153 CALL read_surf(hprogram,yrecfm,zwork(:),iresp)
159 ALLOCATE(pek%XWGI(ilu,iwork))
160 DO jl=1,io%NGROUND_LAYER
161 WRITE(ylvl,
'(I2)') jl
163 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 164 yrecfm=hpatch//
'GD_WGI'//adjustl(ylvl(:len_trim(ylvl)))
166 yrecfm=
'TWN_WGI'//adjustl(ylvl(:len_trim(ylvl)))
168 yrecfm=adjustl(yrecfm)
169 CALL read_surf(hprogram,yrecfm,zwork(:),iresp)
175 ALLOCATE(pek%XWR(ilu))
176 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 177 yrecfm=hpatch//
'GD_WR' 181 yrecfm=adjustl(yrecfm)
182 CALL read_surf(hprogram,yrecfm,pek%XWR(:),iresp)
186 IF (io%CPHOTO==
'NIT' .OR. io%CPHOTO==
'NCB')
THEN 187 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 188 yrecfm=hpatch//
'GD_LAI' 192 yrecfm=adjustl(yrecfm)
193 CALL read_surf(hprogram,yrecfm,pek%XLAI(:),iresp)
208 IF (.NOT. gtown)
THEN 209 pek%TSNOW%SCHEME=
'1-L' 212 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 213 CALL read_gr_snow(hprogram,
'GD',hpatch,ilu,ilu,p%NR_P,0,pek%TSNOW )
215 CALL read_gr_snow(hprogram,
'GARD',hpatch,ilu,ilu,p%NR_P,0,pek%TSNOW
226 ALLOCATE(pek%XRESA(ilu))
227 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 228 yrecfm=hpatch//
'GD_RES' 232 yrecfm=adjustl(yrecfm)
234 CALL read_surf(hprogram,yrecfm,pek%XRESA(:),iresp)
236 ALLOCATE(pek%XLE(ilu))
241 IF (io%CPHOTO/=
'NON')
THEN 242 ALLOCATE(pek%XAN (ilu))
243 ALLOCATE(pek%XANDAY(ilu))
244 ALLOCATE(pek%XANFM (ilu))
247 pek%XANFM(:) = xanfminit
250 ALLOCATE(pek%XAN (0))
251 ALLOCATE(pek%XANDAY(0))
252 ALLOCATE(pek%XANFM (0))
255 IF(io%CPHOTO/=
'NON')
THEN 256 ALLOCATE(pek%XBIOMASS (ilu,io%NNBIOMASS))
257 ALLOCATE(pek%XRESP_BIOMASS (ilu,io%NNBIOMASS))
259 ALLOCATE(pek%XBIOMASS (0,0))
260 ALLOCATE(pek%XRESP_BIOMASS (0,0))
263 IF (io%CPHOTO==
'AST')
THEN 265 pek%XBIOMASS(:,:) = 0.
266 pek%XRESP_BIOMASS(:,:) = 0.
268 ELSEIF (io%CPHOTO==
'NIT' .OR. io%CPHOTO==
'NCB')
THEN 270 pek%XBIOMASS(:,:) = 0.
271 DO jnbiomass=1,io%NNBIOMASS
272 WRITE(ylvl,
'(I1)') jnbiomass
273 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 274 yrecfm=hpatch//
'GD_BIOMA'//adjustl(ylvl(:len_trim(ylvl)))
276 yrecfm=
'TWN_BIOMASS'//adjustl(ylvl(:len_trim(ylvl)))
278 yrecfm=adjustl(yrecfm)
279 CALL read_surf(hprogram,yrecfm,pek%XBIOMASS(:,jnbiomass),iresp)
282 pek%XRESP_BIOMASS(:,:) = 0.
283 DO jnbiomass=2,io%NNBIOMASS
284 WRITE(ylvl,
'(I1)') jnbiomass
285 IF (iversion>7 .OR. iversion==7 .AND. ibugfix>=3)
THEN 286 yrecfm=hpatch//
'GD_RESPI'//adjustl(ylvl(:len_trim(ylvl)))
288 yrecfm=
'TWN_RESP_BIOM'//adjustl(ylvl(:len_trim(ylvl)))
290 yrecfm=adjustl(yrecfm)
291 CALL read_surf(hprogram,yrecfm,pek%XRESP_BIOMASS(:,jnbiomass),iresp)
297 IF (
lhook)
CALL dr_hook(
'READ_TEB_GARDEN_N',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine set_surfex_filein(HPROGRAM, HMASK)
subroutine town_presence(HFILETYPE, OTEB, HDIR)
integer, parameter nundef
subroutine end_io_surf_n(HPROGRAM)
subroutine allocate_gr_snow(TPSNOW, KLU)
subroutine read_gr_snow(HPROGRAM, HSURFTYPE, HPREFIX, KLU, KSIZE_P, KMASK_P, KPATCH, TPSNOW, HDI
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION
subroutine read_teb_garden_n(DTCO, U, IO, P, PEK, HPROGRAM, HPATCH