7 HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYPE, &
8 PD_ROOF, PD_ROAD, PD_WALL, PD_FLOOR,HDIR)
47 USE modd_data_cover_par
, ONLY : ncover, ntype, ndata_roof_layer, ndata_road_layer, &
48 ndata_wall_layer, ndata_floor_layer
50 USE modi_open_aux_io_surf
51 USE modi_close_aux_io_surf
57 USE modi_thermal_layers_conf
58 USE modi_open_aux_io_surf
59 USE modi_close_aux_io_surf
60 USE modi_read_lecoclimap
61 USE modi_default_data_cover
78 CHARACTER(LEN=28),
INTENT(IN) :: HFILE
79 CHARACTER(LEN=6),
INTENT(IN) :: HFILETYPE
80 CHARACTER(LEN=28),
INTENT(IN) :: HFILEPGD
81 CHARACTER(LEN=6),
INTENT(IN) :: HFILEPGDTYPE
83 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PD_ROOF
84 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PD_ROAD
85 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PD_WALL
86 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: PD_FLOOR
88 CHARACTER(LEN=1),
INTENT(IN),
OPTIONAL :: HDIR
95 LOGICAL,
DIMENSION(:),
ALLOCATABLE :: GCOVER
96 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZCOVER
97 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZD
98 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZPAR_D
100 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZDATA
102 INTEGER :: IVERSION_PGD, IVERSION_PREP
103 INTEGER :: IBUGFIX_PGD, IBUGFIX_PREP
106 CHARACTER(LEN=1) :: YDIR
107 CHARACTER(LEN=3) :: YAREA
108 CHARACTER(LEN=5) :: YSURF
109 CHARACTER(LEN=12) :: YRECFM
110 CHARACTER(LEN=12) :: YRECFM0
111 CHARACTER(LEN=12) :: YRECFM1
112 CHARACTER(LEN=12) :: YRECFM2
113 CHARACTER(LEN=12) :: YRECFM3
117 INTEGER :: IPAR_LAYER
118 INTEGER :: IDATA_LAYER
120 LOGICAL :: GECOCLIMAP, GECOSG
121 LOGICAL :: GDATA, GDIM
123 REAL(KIND=JPRB) :: ZHOOK_HANDLE
132 IF (
lhook)
CALL dr_hook(
'GET_TEB_DEPTHS',0,zhook_handle)
135 IF (
PRESENT(hdir)) ydir = hdir
139 CALL read_surf(hfilepgdtype,yrecfm,iversion_pgd,iresp,hdir=
'-')
141 CALL read_surf(hfilepgdtype,yrecfm,ibugfix_pgd,iresp,hdir=
'-')
144 gdim = (iversion_pgd>8 .OR. iversion_pgd==8 .AND. ibugfix_pgd>0)
148 CALL read_surf(hfiletype,yrecfm,iversion_prep,iresp,hdir=
'-')
150 CALL read_surf(hfiletype,yrecfm,ibugfix_prep,iresp,hdir=
'-')
161 ALLOCATE(ydtco%XDATA_GARDEN(
SIZE(zdata,1)))
162 ALLOCATE(ydtco%XDATA_TOWN (
SIZE(zdata,1)))
163 ALLOCATE(ydtco%XDATA_BLD (
SIZE(zdata,1)))
169 ydtco%XDATA_TOWN (:) = dtco%XDATA_TOWN(:)
170 ydtco%XDATA_GARDEN(:) = dtco%XDATA_GARDEN(:)
171 ydtco%XDATA_BLD (:) = dtco%XDATA_BLD(:)
174 IF (
PRESENT(pd_roof))
THEN 181 yrecfm0 =
'PAR_RF_LAYER' 185 idata_layer = ndata_roof_layer
186 ilu =
SIZE(pd_roof,1)
187 ilayer =
SIZE(pd_roof,2)
190 IF (
PRESENT(pd_wall))
THEN 197 yrecfm0 =
'PAR_WL_LAYER' 201 idata_layer = ndata_wall_layer
202 ilu =
SIZE(pd_wall,1)
203 ilayer =
SIZE(pd_wall,2)
206 IF (
PRESENT(pd_road))
THEN 213 yrecfm0 =
'PAR_RD_LAYER' 217 idata_layer = ndata_road_layer
218 ilu =
SIZE(pd_road,1)
219 ilayer =
SIZE(pd_road,2)
222 IF (
PRESENT(pd_floor))
THEN 227 WHERE (ydtco%XDATA_TOWN>0.)
233 yrecfm0 =
'PAR_FL_LAYER' 234 yrecfm1 =
'L_D_FLOOR' 235 yrecfm2 =
'D_D_FLOOR' 237 idata_layer = ndata_floor_layer
238 ilu =
SIZE(pd_floor,1)
239 ilayer =
SIZE(pd_floor,2)
244 IF (iversion_pgd<7 .OR. (iversion_pgd==7 .AND. ibugfix_pgd<=2))
THEN 250 CALL read_surf(hfilepgdtype,yrecfm1,gdata,iresp,hdir=
'-')
255 CALL read_surf(hfilepgdtype,yrecfm0,ipar_layer,iresp,hdir=
'-')
257 ALLOCATE(zd(ilu,ipar_layer))
259 WRITE(yrecfm,fmt=
'(A,I1)') trim(yrecfm2),jl
260 CALL read_surf(hfilepgdtype,yrecfm,zd(:,jl),iresp,hdir=ydir)
272 ALLOCATE(zd(ilu,ilayer))
274 IF (iversion_prep>8 .OR. (iversion_prep==8 .AND. ibugfix_prep>=1))
THEN 276 CALL read_surf(hfiletype,
'WRITE_EXT ',gread_ext,iresp,hdir=
'-')
279 WRITE(yrecfm,fmt=
'(A,I1)') trim(yrecfm3),jl
280 CALL read_surf(hfiletype,yrecfm,zd(:,jl),iresp,hdir=ydir)
288 IF (.NOT.gread_ext)
THEN 290 IF (gdim.AND.gecosg)
THEN 291 ALLOCATE(gcover(
sum(ntype)))
293 ALLOCATE(gcover(ncover))
298 CALL old_name(hfilepgdtype,
'COVER_LIST ',yrecfm,
'-')
299 CALL read_surf(hfilepgdtype,yrecfm,gcover(:),iresp,hdir=
'-')
302 ALLOCATE(zcover(ilu,
count(gcover)))
304 ALLOCATE(zcover(0,0))
307 CALL read_surf_cov(hfilepgdtype,yrecfm,zcover(:,:),gcover,iresp,&
311 ALLOCATE(zpar_d(ilu,idata_layer))
315 CALL av_pgd (ydtco,zpar_d(:,jl), zcover, zdata(:,jl),yarea,
'ARI' 320 DEALLOCATE(gcover,zcover)
322 IF (iversion_prep<7 .OR. (iversion_prep==7 .AND. ibugfix_prep<=2))
THEN 324 zd(:,:) = zpar_d(:,:)
335 IF (
PRESENT(pd_roof )) pd_roof = zd
336 IF (
PRESENT(pd_wall )) pd_wall = zd
337 IF (
PRESENT(pd_road )) pd_road = zd
338 IF (
PRESENT(pd_floor)) pd_floor = zd
342 IF (
lhook)
CALL dr_hook(
'GET_TEB_DEPTHS',1,zhook_handle)
real, dimension(:,:), allocatable xdata_d_roof
subroutine old_name(HPROGRAM, HRECIN, HRECOUT, HDIR)
subroutine get_teb_depths(DTCO, HFILE, HFILETYPE, HFILEPGD, HFILEPGDTYP
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine read_surf_cov(HPROGRAM, HREC, PFIELD, OFLAG, KRESP, HCOMMENT, HDIR)
subroutine default_data_cover(PDATA_TOWN, PDATA_NATURE, PDATA_WATER, PDATA_SEA, PDATA_Z0_TOWN, PDATA_BLD_HEIGHT, PDATA_WALL_O_HOR, PDATA_BLD, PDATA_GARDEN, PDATA_ALB_ROOF, PDATA_ALB_ROAD, PDATA_ALB_WALL, PDATA_EMIS_ROOF, PDATA_EMIS_ROAD, PDATA_EMIS_WALL, PDATA_HC_ROOF, PDATA_TC_ROOF, PDATA_D_ROOF, PDATA_HC_ROAD, PDATA_TC_ROAD, PDATA_D_ROAD, PDATA_HC_WALL, PDATA_TC_WALL, PDATA_D_WALL, PDATA_H_TRAFFIC, PDATA_LE_TRAFFIC, PDATA_H_INDUSTRY, PDATA_LE_INDUSTRY, PDATA_VEGTYPE, PDATA_H_TREE, PDATA_WATSUP, PDATA_IRRIG, PDATA_ROOT_DEPTH, PDATA_GROUND_DEPTH, PDATA_DICE, TPDATA_SEED, TPDATA_REAP)
subroutine read_lecoclimap(HPROGRAM, OECOCLIMAP, OECOSG, HDIR)
real, dimension(:,:), allocatable xdata_d_road
real, dimension(:,:), allocatable xdata_d_floor
intent(out) overrides sub arrays one Sort by the least significant key first sum(iindex(1:n))
subroutine thermal_layers_conf(HTYPE, PD, PD_OUT, PHC, PHC_OUT, PTC, PTC
subroutine data_cover_init(YDATA_COVER)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK, HDIR)
real, dimension(:,:), allocatable xdata_d_wall