57 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
59 TYPE(
teb_t),
INTENT(INOUT) :: T
66 REAL,
DIMENSION(SIZE(T%XBLD)) :: ZWALL_O_BLD
67 REAL,
DIMENSION(SIZE(T%XBLD)) :: ZWALL_O_HOR
69 REAL,
DIMENSION(2) :: ZRANGE_BLD = (/ 0.0001 , 0.9999 /)
70 REAL,
DIMENSION(2) :: ZRANGE_ROAD = (/ 0.0001 , 0.9999 /)
71 REAL,
DIMENSION(2) :: ZRANGE_BLD_HEIGHT = (/ 3. , 829.84 /)
72 REAL,
DIMENSION(2) :: ZRANGE_WALL_O_HOR = (/ 0.00012 , 322. /)
89 IF (t%XBLD_HEIGHT(jj) < zrange_bld_height(1) )
THEN 90 t%XBLD_HEIGHT(jj) = zrange_bld_height(1)
92 IF (t%XBLD_HEIGHT(jj) > zrange_bld_height(2)) &
93 CALL abor1_sfx(
'TEB_MORPHO: T%XBLD_HEIGHT higher than 829.84, highest building in the world, should be lower' 95 IF (t%XZ0_TOWN(jj) > t%XBLD_HEIGHT(jj))
THEN 96 CALL abor1_sfx(
'TEB_MORPHO: T%XZ0_TOWN higher than T%XBLD_HEIGHT, should be lower' 102 IF (t%XBLD(jj) < zrange_bld(1) )
THEN 103 t%XBLD(jj) = zrange_bld(1)
104 t%XGARDEN(jj) = min(t%XGARDEN(jj), 1.-2.*t%XBLD(jj))
111 IF (t%XBLD(jj) > zrange_bld(2))
THEN 112 t%XBLD(jj) = zrange_bld(2)
113 IF (t%XGARDEN(jj) > 0.)
THEN 122 IF (t%XWALL_O_HOR(jj) < 4. * sqrt(t%XBLD(jj))*t%XBLD_HEIGHT(jj)/1000.
THEN 123 t%XWALL_O_HOR(jj) = 4. * sqrt(t%XBLD(jj))*t%XBLD_HEIGHT(jj)/1000.
128 t%XWALL_O_BLD(jj) = t%XWALL_O_HOR(jj)/t%XBLD(jj)
130 IF (t%XWALL_O_BLD(jj) > (0.4 * t%XBLD_HEIGHT(jj)))
THEN 132 zwall_o_hor(jj) = t%XWALL_O_HOR(jj)
133 zwall_o_bld(jj) = t%XWALL_O_BLD(jj)
135 t%XWALL_O_HOR(jj) = 0.4 * t%XBLD (jj) * t%XBLD_HEIGHT(jj)
136 t%XWALL_O_BLD(jj) = t%XWALL_O_HOR(jj) / t%XBLD (jj)
142 t%XROAD (jj) = 1.-(t%XGARDEN(jj)+t%XBLD(jj))
143 IF (t%XROAD(jj) <= zrange_road(1) )
THEN 144 t%XROAD(jj) = zrange_road(1)
145 t%XGARDEN(jj) = max(t%XGARDEN(jj) - zrange_road(1), 0.)
146 IF (t%XH_TRAFFIC(jj) > 0. .OR. t%XLE_TRAFFIC(jj) > 0.)
THEN 147 t%XH_TRAFFIC(jj) = 0.
148 t%XLE_TRAFFIC(jj) = 0.
154 IF ( t%XBLD(jj) < zrange_bld(1) .OR. t%XBLD(jj) > zrange_bld(2) )
THEN 155 WRITE(iluout,*)
'WARNING : T%XBLD is still out of range after final corrections & 156 &for grid mesh',jj,
' : ',t%XBLD(jj)
159 IF ( t%XBLD_HEIGHT(jj) < zrange_bld_height(1) .OR. t%XBLD_HEIGHT(jj)
THEN 160 WRITE(iluout,*)
'WARNING : T%XBLD_HEIGHT is still out of range after final corrections & 161 &for grid mesh',jj,
' : ',t%XBLD_HEIGHT(jj)
164 IF ( t%XWALL_O_HOR(jj) < zrange_wall_o_hor(1) .OR. t%XWALL_O_HOR(jj)
THEN 165 WRITE(iluout,*)
'WARNING : T%XWALL_O_HOR is still out of range after final corrections & 166 &for grid mesh',jj,
' : ',t%XWALL_O_HOR(jj)
169 IF ( t%XWALL_O_BLD(jj) - (0.4 * t%XBLD_HEIGHT(jj)) > 10e-16 )
THEN 170 WRITE(iluout,*)
'WARNING : T%XWALL_O_BLD is still too high after final corrections & 171 &for grid mesh',jj,
' : ',t%XWALL_O_BLD(jj)
179 t%XCAN_HW_RATIO(:) = 0.5 * t%XWALL_O_HOR(:) / (1.-t%XBLD(:))
183 t%XROAD_O_GRND(:) = t%XROAD(:) / (t%XROAD(:) + t%XGARDEN(:))
184 t%XGARDEN_O_GRND(:) = t%XGARDEN(:) / (t%XROAD(:) + t%XGARDEN(:))
185 t%XWALL_O_GRND(:) = t%XWALL_O_HOR(:) / (t%XROAD(:) + t%XGARDEN(:))
189 t%XSVF_ROAD (:) = (sqrt(t%XCAN_HW_RATIO(:)**2+1.) - t%XCAN_HW_RATIO(:))
190 t%XSVF_GARDEN(:) = t%XSVF_ROAD(:)
191 t%XSVF_WALL (:) = 0.5*(t%XCAN_HW_RATIO(:)+1.-sqrt(t%XCAN_HW_RATIO(:)**
subroutine abor1_sfx(YTEXT)
subroutine teb_morpho(HPROGRAM, T)
subroutine get_luout(HPROGRAM, KLUOUT)