54 USE yomhook
,ONLY : lhook, dr_hook
55 USE parkind1
,ONLY : jprb
67 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
73 REAL(KIND=JPRB) :: zhook_handle
75 REAL,
DIMENSION(:),
ALLOCATABLE :: zwork
85 IF (lhook) CALL dr_hook(
'READ_BLD_DESCRIPTION_n',0,zhook_handle)
93 hprogram,
'VERSION',iversion,iresp)
95 hprogram,
'BUG',ibugfix,iresp)
103 hprogram,
'BLD_DESC_CNF',zwork,iresp,hdir=
'-')
105 bdd%NDESC_BLD = nint(zwork(1))
106 bdd%NDESC_AGE = nint(zwork(2))
107 bdd%NDESC_USE = nint(zwork(3))
108 bdd%NDESC_WALL_LAYER = nint(zwork(4))
109 bdd%NDESC_ROOF_LAYER = nint(zwork(5))
110 bdd%NDESC_ROAD_LAYER = nint(zwork(6))
111 bdd%NDESC_FLOOR_LAYER = nint(zwork(7))
115 bdd%NDESC_CODE = bdd%NDESC_BLD * bdd%NDESC_AGE
122 ALLOCATE(bdd%NDESC_BLD_LIST(bdd%NDESC_BLD))
123 ALLOCATE(bdd%NDESC_CODE_LIST(bdd%NDESC_CODE))
124 ALLOCATE(bdd%XDESC_ALB_ROOF(bdd%NDESC_CODE))
125 ALLOCATE(bdd%XDESC_ALB_ROAD(bdd%NDESC_CODE))
126 ALLOCATE(bdd%XDESC_ALB_WALL(bdd%NDESC_CODE))
127 ALLOCATE(bdd%XDESC_EMIS_ROOF(bdd%NDESC_CODE))
128 ALLOCATE(bdd%XDESC_EMIS_ROAD(bdd%NDESC_CODE))
129 ALLOCATE(bdd%XDESC_EMIS_WALL(bdd%NDESC_CODE))
130 ALLOCATE(bdd%XDESC_HC_ROOF(bdd%NDESC_CODE,bdd%NDESC_ROOF_LAYER))
131 ALLOCATE(bdd%XDESC_TC_ROOF(bdd%NDESC_CODE,bdd%NDESC_ROOF_LAYER))
132 ALLOCATE(bdd%XDESC_D_ROOF (bdd%NDESC_CODE,bdd%NDESC_ROOF_LAYER))
133 ALLOCATE(bdd%XDESC_HC_ROAD(bdd%NDESC_CODE,bdd%NDESC_ROAD_LAYER))
134 ALLOCATE(bdd%XDESC_TC_ROAD(bdd%NDESC_CODE,bdd%NDESC_ROAD_LAYER))
135 ALLOCATE(bdd%XDESC_D_ROAD (bdd%NDESC_CODE,bdd%NDESC_ROAD_LAYER))
136 ALLOCATE(bdd%XDESC_HC_WALL(bdd%NDESC_CODE,bdd%NDESC_WALL_LAYER))
137 ALLOCATE(bdd%XDESC_TC_WALL(bdd%NDESC_CODE,bdd%NDESC_WALL_LAYER))
138 ALLOCATE(bdd%XDESC_D_WALL (bdd%NDESC_CODE,bdd%NDESC_WALL_LAYER))
139 ALLOCATE(bdd%XDESC_HC_FLOOR(bdd%NDESC_CODE,bdd%NDESC_FLOOR_LAYER))
140 ALLOCATE(bdd%XDESC_TC_FLOOR(bdd%NDESC_CODE,bdd%NDESC_FLOOR_LAYER))
141 ALLOCATE(bdd%XDESC_D_FLOOR (bdd%NDESC_CODE,bdd%NDESC_FLOOR_LAYER))
142 ALLOCATE(bdd%XDESC_SHGC(bdd%NDESC_CODE))
143 ALLOCATE(bdd%XDESC_U_WIN(bdd%NDESC_CODE))
144 ALLOCATE(bdd%XDESC_GR(bdd%NDESC_CODE))
146 ALLOCATE(bdd%XDESC_F_WASTE_CAN(bdd%NDESC_CODE))
147 ALLOCATE(bdd%XDESC_F_WATER_COND(bdd%NDESC_CODE))
148 ALLOCATE(bdd%XDESC_COP_RAT(bdd%NDESC_CODE))
149 ALLOCATE(bdd%XDESC_EFF_HEAT(bdd%NDESC_CODE))
150 ALLOCATE(bdd%XDESC_INF(bdd%NDESC_CODE))
151 ALLOCATE(bdd%XDESC_V_VENT(bdd%NDESC_CODE))
152 ALLOCATE(bdd%XDESC_GREENROOF(bdd%NDESC_CODE))
154 ALLOCATE(bdd%XDESC_EMIS_PANEL(bdd%NDESC_CODE))
155 ALLOCATE(bdd%XDESC_ALB_PANEL (bdd%NDESC_CODE))
156 ALLOCATE(bdd%XDESC_EFF_PANEL (bdd%NDESC_CODE))
157 ALLOCATE(bdd%XDESC_FRAC_PANEL(bdd%NDESC_CODE))
159 ALLOCATE(bdd%NDESC_USE_LIST(bdd%NDESC_USE))
160 ALLOCATE(bdd%XDESC_TCOOL_TARGET(bdd%NDESC_USE))
161 ALLOCATE(bdd%XDESC_THEAT_TARGET(bdd%NDESC_USE))
162 ALLOCATE(bdd%XDESC_QIN(bdd%NDESC_USE))
163 ALLOCATE(bdd%XDESC_QIN_FLAT(bdd%NDESC_USE))
164 ALLOCATE(bdd%XDESC_SHGC_SH(bdd%NDESC_USE))
165 ALLOCATE(bdd%XDESC_SHADE(bdd%NDESC_USE))
166 ALLOCATE(bdd%XDESC_NATVENT(bdd%NDESC_USE))
167 ALLOCATE(bdd%XDESC_RESIDENTIAL(bdd%NDESC_USE))
169 ALLOCATE(bdd%NDESC_AGE_LIST(bdd%NDESC_AGE))
170 ALLOCATE(bdd%NDESC_AGE_DATE(bdd%NDESC_AGE))
173 bdd%XDESC_EMIS_PANEL = 0.9
174 bdd%XDESC_ALB_PANEL = 0.1
175 bdd%XDESC_EFF_PANEL = 0.14
176 bdd%XDESC_FRAC_PANEL = 0.
182 itot=(21+3*bdd%NDESC_ROOF_LAYER+3*bdd%NDESC_ROAD_LAYER+3*bdd%NDESC_WALL_LAYER+3*bdd%NDESC_FLOOR_LAYER)*bdd%NDESC_CODE &
183 + 9*bdd%NDESC_USE + 2*bdd%NDESC_AGE + bdd%NDESC_BLD
184 ALLOCATE(zwork(itot))
187 hprogram,
'BLD_DESC_DAT',zwork,iresp,hdir=
'-')
191 CALL
up_desc_ind(bdd%NDESC_BLD) ; bdd%NDESC_BLD_LIST(:) = nint(zwork(i1:i2))
192 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%NDESC_CODE_LIST(:) = nint(zwork(i1:i2))
193 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_ALB_ROOF(:) = zwork(i1:i2)
194 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_ALB_ROAD(:) = zwork(i1:i2)
195 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_ALB_WALL(:) = zwork(i1:i2)
196 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_EMIS_ROOF(:) = zwork(i1:i2)
197 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_EMIS_ROAD(:) = zwork(i1:i2)
198 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_EMIS_WALL(:) = zwork(i1:i2)
199 DO jl=1,bdd%NDESC_ROOF_LAYER
200 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_HC_ROOF(:,jl) = zwork(i1:i2)
202 DO jl=1,bdd%NDESC_ROOF_LAYER
203 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_TC_ROOF(:,jl) = zwork(i1:i2)
205 DO jl=1,bdd%NDESC_ROOF_LAYER
206 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_D_ROOF (:,jl) = zwork(i1:i2)
208 DO jl=1,bdd%NDESC_ROAD_LAYER
209 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_HC_ROAD(:,jl) = zwork(i1:i2)
211 DO jl=1,bdd%NDESC_ROAD_LAYER
212 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_TC_ROAD(:,jl) = zwork(i1:i2)
214 DO jl=1,bdd%NDESC_ROAD_LAYER
215 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_D_ROAD (:,jl) = zwork(i1:i2)
217 DO jl=1,bdd%NDESC_WALL_LAYER
218 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_HC_WALL(:,jl) = zwork(i1:i2)
220 DO jl=1,bdd%NDESC_WALL_LAYER
221 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_TC_WALL(:,jl) = zwork(i1:i2)
223 DO jl=1,bdd%NDESC_WALL_LAYER
224 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_D_WALL (:,jl) = zwork(i1:i2)
226 DO jl=1,bdd%NDESC_FLOOR_LAYER
227 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_HC_FLOOR(:,jl) = zwork(i1:i2)
229 DO jl=1,bdd%NDESC_FLOOR_LAYER
230 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_TC_FLOOR(:,jl) = zwork(i1:i2)
232 DO jl=1,bdd%NDESC_FLOOR_LAYER
233 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_D_FLOOR (:,jl) = zwork(i1:i2)
236 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_SHGC(:) = zwork(i1:i2)
237 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_U_WIN(:) = zwork(i1:i2)
238 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_GR(:) = zwork(i1:i2)
240 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_F_WASTE_CAN(:) = zwork(i1:i2)
241 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_F_WATER_COND(:) = zwork(i1:i2)
242 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_COP_RAT(:) = zwork(i1:i2)
243 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_EFF_HEAT(:) = zwork(i1:i2)
244 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_INF(:) = zwork(i1:i2)
245 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_V_VENT(:) = zwork(i1:i2)
246 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_GREENROOF(:) = zwork(i1:i2)
247 IF (iversion>7 .OR. (iversion==7 .AND. ibugfix>=4))
THEN
248 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_EMIS_PANEL(:) = zwork(i1:i2)
249 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_ALB_PANEL(:) = zwork(i1:i2)
250 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_EFF_PANEL(:) = zwork(i1:i2)
251 CALL
up_desc_ind(bdd%NDESC_CODE) ; bdd%XDESC_FRAC_PANEL(:) = zwork(i1:i2)
254 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%NDESC_USE_LIST(:) = nint(zwork(i1:i2))
255 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%XDESC_TCOOL_TARGET(:) = zwork(i1:i2)
256 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%XDESC_THEAT_TARGET(:) = zwork(i1:i2)
257 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%XDESC_QIN(:) = zwork(i1:i2)
258 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%XDESC_QIN_FLAT(:) = zwork(i1:i2)
259 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%XDESC_SHGC_SH(:) = zwork(i1:i2)
260 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%XDESC_SHADE(:) = zwork(i1:i2)
261 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%XDESC_NATVENT(:) = zwork(i1:i2)
262 CALL
up_desc_ind(bdd%NDESC_USE) ; bdd%XDESC_RESIDENTIAL(:) = zwork(i1:i2)
264 CALL
up_desc_ind(bdd%NDESC_AGE) ; bdd%NDESC_AGE_LIST(:) = nint(zwork(i1:i2))
265 CALL
up_desc_ind(bdd%NDESC_AGE) ; bdd%NDESC_AGE_DATE(:) = nint(zwork(i1:i2))
269 IF (lhook) CALL dr_hook(
'READ_BLD_DESCRIPTION_n',1,zhook_handle)
273 INTEGER,
INTENT(IN) :: k
subroutine up_desc_ind(K)
subroutine read_bld_description_n(BDD, HPROGRAM)