6 SUBROUTINE bem_morpho(PBLD, PWALL_O_HOR, PBLD_HEIGHT, PWALL_O_BLD, B)
48 REAL,
DIMENSION(:),
INTENT(IN) :: PBLD
49 REAL,
DIMENSION(:),
INTENT(IN) :: PWALL_O_HOR
50 REAL,
DIMENSION(:),
INTENT(IN) :: PBLD_HEIGHT
51 REAL,
DIMENSION(:),
INTENT(OUT) :: PWALL_O_BLD
52 TYPE(
bem_t),
INTENT(INOUT) :: B
56 REAL,
DIMENSION(SIZE(PBLD)):: ZF_AUX2
67 IF (b%XFLOOR_HEIGHT(jj) < 2.5)
THEN 69 b%XFLOOR_HEIGHT(jj) = 2.5
71 IF (b%XFLOOR_HEIGHT(jj) > pbld_height(jj))
THEN 74 b%XFLOOR_HEIGHT(jj) = pbld_height(jj)
80 IF (pbld(jj) > 0.9999 .AND. b%XF_WASTE_CAN(jj) > 0.)
THEN 83 b%XF_WASTE_CAN(jj) = 0.
90 b%XN_FLOOR(:) = float(nint(pbld_height(:) / b%XFLOOR_HEIGHT(:) ))
91 pwall_o_bld(:) = pwall_o_hor(:) * (1. - b%XGR(:)) / pbld(:)
92 b%XGLAZ_O_BLD(:) = pwall_o_hor(:) * b%XGR(:) / pbld(:)
94 WHERE(b%XN_FLOOR > 1.5)
110 b%XMASS_O_BLD(:) = 2 * (b%XN_FLOOR(:) - 1.)
111 b%XFLOOR_HW_RATIO(:) = pwall_o_hor(:) / b%XN_FLOOR(:) / pbld(:) / 2.
113 b%XF_FLOOR_MASS(:) = (b%XFLOOR_HW_RATIO(:)**2 + 1.)**0.5 - b%XFLOOR_HW_RATIO(:)
114 b%XF_FLOOR_WALL(:) = (1. - b%XF_FLOOR_MASS(:)) * (1. - b%XGR(:))
115 b%XF_FLOOR_WIN (:) = (1. - b%XF_FLOOR_MASS(:)) * b%XGR(:)
116 b%XF_FLOOR_ROOF(:) = 0.
118 zf_aux2(:) = (1. - b%XF_FLOOR_MASS(:)) / b%XFLOOR_HW_RATIO(:)
120 b%XF_WALL_FLOOR(:) = zf_aux2(:) / ( 2.*b%XN_FLOOR(:) )
121 b%XF_WALL_MASS (:) = b%XF_WALL_FLOOR(:) * (2.*b%XN_FLOOR(:)-2.)
122 b%XF_WALL_WIN (:) = (1. - zf_aux2(:)) * b%XGR(:)
124 b%XF_WIN_FLOOR(:) = b%XF_WALL_FLOOR(:)
125 b%XF_WIN_MASS (:) = b%XF_WALL_MASS (:)
126 b%XF_WIN_WALL (:) = (1. - b%XF_WIN_FLOOR(:) * 2. - b%XF_WIN_MASS(:) ) * (1. - b%XGR(:))
127 b%XF_WIN_WIN (:) = (1. - b%XF_WIN_FLOOR(:) * 2. - b%XF_WIN_MASS(:) ) * b%XGR(:)
129 b%XF_MASS_FLOOR(:) = b%XF_FLOOR_MASS(:) / b%XMASS_O_BLD(:)
130 b%XF_MASS_WALL (:) = pwall_o_bld(:) * b%XF_WALL_MASS(:) / b%XMASS_O_BLD(:)
131 b%XF_MASS_WIN (:) = b%XGLAZ_O_BLD (:) * b%XF_WIN_MASS(:) / b%XMASS_O_BLD(:)
142 b%XMASS_O_BLD(:) = 0.
143 b%XFLOOR_HW_RATIO(:) = pwall_o_hor(:) / pbld(:) / 2.
145 b%XF_FLOOR_ROOF(:) = (b%XFLOOR_HW_RATIO(:)**2 + 1.)**0.5 - b%XFLOOR_HW_RATIO(:)
146 b%XF_FLOOR_MASS(:) = 0.
147 b%XF_FLOOR_WALL(:) = (1. - b%XF_FLOOR_ROOF(:)) * (1. - b%XGR(:))
148 b%XF_FLOOR_WIN (:) = (1. - b%XF_FLOOR_ROOF(:)) * b%XGR(:)
150 zf_aux2(:) = (1. - b%XF_FLOOR_ROOF(:)) / b%XFLOOR_HW_RATIO(:)
152 b%XF_WALL_FLOOR(:) = zf_aux2(:) / 2.
153 b%XF_WALL_MASS (:) = 0.
154 b%XF_WALL_WIN (:) = (1. - zf_aux2(:)) * b%XGR(:)
156 b%XF_WIN_FLOOR(:) = b%XF_WALL_FLOOR(:)
157 b%XF_WIN_MASS (:) = 0.
158 b%XF_WIN_WALL (:) = (1. - b%XF_WIN_FLOOR(:) * 2. - b%XF_WIN_MASS(:) ) * (1. - b%XGR(:))
159 b%XF_WIN_WIN (:) = (1. - b%XF_WIN_FLOOR(:) * 2. - b%XF_WIN_MASS(:) ) * b%XGR(:)
161 b%XF_MASS_FLOOR(:) = 0.
162 b%XF_MASS_WALL (:) = 0.
163 b%XF_MASS_WIN (:) = 0.
subroutine bem_morpho(PBLD, PWALL_O_HOR, PBLD_HEIGHT, PWALL_O_BLD, B)