7 PLW_RAD, PPS, PQSAT_ROAD, PDELT_ROAD, PEXNS, &
8 PABS_SW_ROAD, PGSNOW_ROAD, PQ_LOWCAN, PT_LOWCAN, &
9 PTS_WALL_A, PTS_WALL_B, PTSNOW_ROAD, PTS_GARDEN, &
10 PLW_WA_TO_R, PLW_WB_TO_R, PLW_S_TO_R, PLW_WIN_TO_R, &
11 PEMIT_LW_ROAD, PDQS_ROAD, PABS_LW_ROAD, PHFREE_ROAD, &
12 PLEFREE_ROAD, PIMB_ROAD, PRR )
102 USE modi_layer_e_budget
103 USE modi_layer_e_budget_get_coef
112 TYPE(
teb_t),
INTENT(INOUT) :: T
113 TYPE(
bem_t),
INTENT(INOUT) :: B
115 REAL,
INTENT(IN) :: PTSTEP
116 REAL,
DIMENSION(:),
INTENT(IN) :: PDN_ROAD
117 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
118 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_ROAD
120 REAL,
DIMENSION(:),
INTENT(IN) :: PAC_ROAD_WAT
123 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_RAD
124 REAL,
DIMENSION(:),
INTENT(IN) :: PPS
125 REAL,
DIMENSION(:),
INTENT(IN) :: PQSAT_ROAD
126 REAL,
DIMENSION(:),
INTENT(IN) :: PDELT_ROAD
127 REAL,
DIMENSION(:),
INTENT(IN) :: PEXNS
128 REAL,
DIMENSION(:),
INTENT(IN) :: PABS_SW_ROAD
129 REAL,
DIMENSION(:),
INTENT(IN) :: PGSNOW_ROAD
132 REAL,
DIMENSION(:),
INTENT(IN) :: PQ_LOWCAN
133 REAL,
DIMENSION(:),
INTENT(IN) :: PT_LOWCAN
134 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_WALL_A
135 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_WALL_B
136 REAL,
DIMENSION(:),
INTENT(IN) :: PTSNOW_ROAD
137 REAL,
DIMENSION(:),
INTENT(IN) :: PTS_GARDEN
139 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_WA_TO_R
140 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_WB_TO_R
141 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_S_TO_R
142 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_WIN_TO_R
144 REAL,
DIMENSION(:),
INTENT(OUT) :: PEMIT_LW_ROAD
145 REAL,
DIMENSION(:),
INTENT(OUT) :: PDQS_ROAD
146 REAL,
DIMENSION(:),
INTENT(OUT) :: PABS_LW_ROAD
147 REAL,
DIMENSION(:),
INTENT(OUT) :: PHFREE_ROAD
149 REAL,
DIMENSION(:),
INTENT(OUT) :: PLEFREE_ROAD
151 REAL,
DIMENSION(:),
INTENT(OUT) :: PIMB_ROAD
153 REAL,
DIMENSION(:),
INTENT(IN) :: PRR
161 REAL,
DIMENSION(SIZE(T%XT_ROAD,1),SIZE(T%XT_ROAD,2)) :: ZA,&
166 REAL,
DIMENSION(SIZE(PPS)) :: ZDN_ROAD
167 REAL,
DIMENSION(SIZE(PPS)) :: ZDF_ROAD
169 REAL,
DIMENSION(SIZE(PPS)) :: ZDQSAT_ROAD
170 REAL,
DIMENSION(SIZE(PPS)) :: ZRHO_ACF_R
172 REAL,
DIMENSION(SIZE(PPS)) :: ZRHO_ACF_R_WAT
175 REAL,
DIMENSION(SIZE(PPS)) :: ZTS_ROAD
176 REAL,
DIMENSION(SIZE(PPS)) :: ZHEAT_RR
177 REAL,
DIMENSION(SIZE(PPS)) :: ZT_SKY
179 INTEGER :: IROAD_LAYER
181 REAL(KIND=JPRB) :: ZHOOK_HANDLE
183 IF (
lhook)
CALL dr_hook(
'ROAD_LAYER_E_BUDGET',0,zhook_handle)
191 iroad_layer =
SIZE(t%XT_ROAD,2)
193 DO jj=1,
SIZE(pdn_road)
195 zdn_road(jj) = pdn_road(jj)
196 zdf_road(jj) = 1. - zdn_road(jj)
201 zts_road(jj) = t%XT_ROAD(jj,1)
206 zrho_acf_r(jj) = prhoa(jj) * pac_road(jj) * zdf_road(jj)
207 zrho_acf_r_wat(jj) = prhoa(jj) * pac_road_wat(jj) * zdf_road(jj)
212 zt_sky(jj) = (plw_rad(jj)/
xstefan)**0.25
219 zdqsat_road(:) =
dqsat(zts_road(:),pps(:),pqsat_road(:))
226 DO jj=1,
SIZE(t%XT_ROAD,1)
228 zb(jj,1) = zb(jj,1) + zimpl *
xcpd/pexns(jj) * zrho_acf_r(jj) &
229 + zimpl *
xlvtt * zrho_acf_r_wat(jj) * pdelt_road(jj) * zdqsat_road(jj)
231 zy(jj,1) = zy(jj,1) &
232 +
xcpd/pexns(jj) * zrho_acf_r(jj) * ( pt_lowcan(jj) - zexpl * zts_road(jj) ) &
233 + zdf_road(jj)*pabs_sw_road(jj) + zdn_road(jj)*pgsnow_road(jj) &
234 +
xlvtt * zrho_acf_r_wat(jj) * pdelt_road(jj) &
235 * ( pq_lowcan(jj) - pqsat_road(jj) + zimpl * zdqsat_road(jj) * zts_road(jj) )
237 zb(jj,1) = zb(jj,1) &
238 + zimpl * zdf_road(jj) * ( plw_s_to_r(jj) + plw_wa_to_r(jj) + &
239 plw_wb_to_r(jj) + plw_win_to_r(jj) + &
242 zy(jj,1) = zy(jj,1) &
244 plw_s_to_r(jj) * (zt_sky(jj) - zexpl * zts_road(jj)) &
245 + plw_win_to_r(jj) * (b%XT_WIN1 (jj) - zexpl * zts_road(jj)) &
246 + plw_wa_to_r(jj) * (pts_wall_a(jj) - zexpl * zts_road(jj)) &
247 + plw_wb_to_r(jj) * (pts_wall_b(jj) - zexpl * zts_road(jj)) &
248 + prr(jj) *
xcl * (pt_lowcan(jj) - zexpl * zts_road(jj) ))
253 CALL layer_e_budget( t%XT_ROAD, ptstep, zimpl, t%XHC_ROAD, t%XTC_ROAD, t%XD_ROAD, &
254 za, zb, zc, zy, pdqs_road )
262 DO jj=1,
SIZE(t%XT_ROAD,1)
265 zts_road(jj) = zexpl * zts_road(jj) + zimpl * t%XT_ROAD(jj,1)
266 pabs_lw_road(jj) = plw_s_to_r(jj) * (zt_sky(jj) - zts_road(jj)) + &
267 plw_wa_to_r(jj) * (pts_wall_a(jj) - zts_road(jj)) + &
268 plw_wb_to_r(jj) * (pts_wall_b(jj) - zts_road(jj)) + &
269 plw_win_to_r(jj) * (b%XT_WIN1(jj) - zts_road(jj))
273 pemit_lw_road(jj) =
xstefan * t%XT_ROAD(jj,1)**4 + &
274 (1 - t%XEMIS_ROAD(jj))/t%XEMIS_ROAD(jj) * pabs_lw_road(jj)
279 phfree_road(jj) = zrho_acf_r(jj) *
xcpd/pexns(jj) * &
280 ( zimpl*t%XT_ROAD(jj,1) + zexpl*zts_road(jj) - pt_lowcan(jj) )
285 plefree_road(jj) = zrho_acf_r_wat(jj) *
xlvtt * pdelt_road(jj) * &
286 ( pqsat_road(jj) - pq_lowcan(jj) + &
287 zimpl * zdqsat_road(jj) * (t%XT_ROAD(jj,1) - zts_road(jj)) )
288 zheat_rr(jj) = prr(jj) *
xcl * (zts_road(jj) - pt_lowcan(jj))
296 pimb_road(jj) = pabs_sw_road(jj) + pabs_lw_road(jj) - pdqs_road(jj) &
297 - zdf_road(jj) * ( phfree_road(jj) + plefree_road(jj)) &
298 - zdn_road(jj) * pgsnow_road(jj)
303 IF (
lhook)
CALL dr_hook(
'ROAD_LAYER_E_BUDGET',1,zhook_handle)
subroutine layer_e_budget(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY, PDQS)
subroutine layer_e_budget_get_coef(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY)
subroutine road_layer_e_budget(T, B, PTSTEP, PDN_ROAD, PRHOA, PAC_ROAD, PAC_ROAD_WAT, PLW_RAD, PPS, PQSAT_ROAD, PDELT_ROAD, PEXNS, PABS_SW_ROAD, PGSNOW_ROAD, PQ_LOWCAN, PT_LOWCAN, PTS_WALL_A, PTS_WALL_B, PTSNOW_ROAD, PTS_GARDEN, PLW_WA_TO_R, PLW_WB_TO_R, PLW_S_TO_R, PLW_WIN_TO_R, PEMIT_LW_ROAD, PDQS_ROAD, PABS_LW_ROAD, PHFREE_ROAD, PLEFREE_ROAD, PIMB_ROAD, PRR)