8 hfilepgd, hfilepgdtype, pd_roof, pd_road, pd_wall, pd_floor)
50 USE modd_data_cover, ONLY : xdata_d_roof, xdata_d_road, xdata_d_wall, xdata_d_floor
52 ndata_wall_layer, ndata_floor_layer
59 USE modi_thermal_layers_conf
60 USE modi_open_aux_io_surf
61 USE modi_close_aux_io_surf
63 USE yomhook
,ONLY : lhook, dr_hook
64 USE parkind1
,ONLY : jprb
78 CHARACTER(LEN=28),
INTENT(IN) :: hfilepgd
79 CHARACTER(LEN=6),
INTENT(IN) :: hfilepgdtype
81 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: pd_roof
82 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: pd_road
83 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: pd_wall
84 REAL,
DIMENSION(:,:),
INTENT(OUT),
OPTIONAL :: pd_floor
89 LOGICAL,
DIMENSION(JPCOVER) :: gcover
90 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zcover
91 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zd
92 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zpar_d
93 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zpar_hc, zpar_tc, zhc, ztc
97 CHARACTER(LEN=5) :: ysurf
98 CHARACTER(LEN=12) :: yrecfm
99 CHARACTER(LEN=12) :: yrecfm0
100 CHARACTER(LEN=12) :: yrecfm1
101 CHARACTER(LEN=12) :: yrecfm2
102 CHARACTER(LEN=3) :: yarea
105 REAL,
DIMENSION(SIZE(XDATA_D_ROOF,1),SIZE(XDATA_D_ROOF,2)) :: zdata
108 INTEGER :: ipar_layer
109 INTEGER :: idata_layer
111 REAL(KIND=JPRB) :: zhook_handle
120 IF (lhook) CALL dr_hook(
'GET_TEB_DEPTHS',0,zhook_handle)
123 hfilepgd,hfilepgdtype,
'FULL ')
126 hfilepgdtype,yrecfm,iversion,iresp)
129 hfilepgdtype,yrecfm,ibugfix,iresp)
132 IF (present(pd_roof))
THEN
135 yrecfm0 =
'PAR_RF_LAYER'
138 idata_layer = ndata_roof_layer
139 ilu =
SIZE(pd_roof,1)
140 ilayer =
SIZE(pd_roof,2)
143 IF (present(pd_wall))
THEN
146 yrecfm0 =
'PAR_WL_LAYER'
149 idata_layer = ndata_wall_layer
150 ilu =
SIZE(pd_wall,1)
151 ilayer =
SIZE(pd_wall,2)
154 IF (present(pd_road))
THEN
157 yrecfm0 =
'PAR_RD_LAYER'
160 idata_layer = ndata_road_layer
161 ilu =
SIZE(pd_road,1)
162 ilayer =
SIZE(pd_road,2)
165 IF (present(pd_floor))
THEN
167 zdata = xdata_d_floor
168 yrecfm0 =
'PAR_FL_LAYER'
169 yrecfm1 =
'L_D_FLOOR'
170 yrecfm2 =
'D_D_FLOOR'
171 idata_layer = ndata_floor_layer
172 ilu =
SIZE(pd_floor,1)
173 ilayer =
SIZE(pd_floor,2)
177 ALLOCATE(zd(ilu,ilayer))
180 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2))
THEN
184 hfilepgd,hfilepgdtype,
'TOWN ')
186 hfilepgdtype,yrecfm1,gdata,iresp)
194 hfilepgd,hfilepgdtype,
'TOWN ')
196 hfilepgdtype,yrecfm0,ipar_layer,iresp)
198 ALLOCATE(zpar_d(ilu,ipar_layer))
199 DO jlayer=1,ipar_layer
200 WRITE(yrecfm,fmt=
'(A,I1)') trim(yrecfm2),jlayer
202 hfilepgdtype,yrecfm,zpar_d(:,jlayer),iresp,hdir=
'A')
209 hfilepgd,hfilepgdtype,
'FULL ')
210 ALLOCATE(zpar_d(ilu,idata_layer))
213 hfilepgdtype,
'COVER_LIST ',yrecfm)
215 hfilepgdtype,yrecfm,gcover(:),iresp,hdir=
'-')
217 ALLOCATE(zcover(ilu,count(gcover)))
220 hfilepgdtype,yrecfm,zcover(:,:),gcover,iresp,hdir=
'A')
223 DO jlayer=1,idata_layer
225 zpar_d(:,jlayer), zcover, zdata(:,jlayer),yarea,
'ARI',gcover)
233 IF (iversion<7 .OR. (iversion==7 .AND. ibugfix<=2))
THEN
235 zd(:,:) = zpar_d(:,:)
238 ALLOCATE(zpar_hc(ilu,
SIZE(zpar_d,2)))
239 ALLOCATE(zpar_tc(ilu,
SIZE(zpar_d,2)))
240 ALLOCATE(ztc(ilu,ilayer))
241 ALLOCATE(zhc(ilu,ilayer))
251 IF (present(pd_roof )) pd_roof = zd
252 IF (present(pd_wall )) pd_wall = zd
253 IF (present(pd_road )) pd_road = zd
254 IF (present(pd_floor)) pd_floor = zd
258 IF (lhook) CALL dr_hook(
'GET_TEB_DEPTHS',1,zhook_handle)
subroutine, public read_surf_cov(HPROGRAM, HREC, PFIELD, OFLAG, KRESP, HCOMMENT, HDIR)
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK)
subroutine get_teb_depths(DTCO, HFILEPGD, HFILEPGDTYPE, PD_ROOF, PD_ROAD, PD_WALL, PD_FLOOR)
subroutine thermal_layers_conf(HTYPE, PHC, PTC, PD, PHC_OUT, PTC_OUT, PD_OUT)
subroutine old_name(HPROGRAM, HRECIN, HRECOUT)