7 pdn_road, prhoa, pac_road, pac_road_wat, &
8 plw_rad, pps, pqsat_road, pdelt_road, pexns, &
9 pabs_sw_road, pgsnow_road, pq_lowcan, pt_lowcan, &
10 pts_wall_a, pts_wall_b, ptsnow_road, &
11 pts_garden, pts_win, &
12 plw_wa_to_r, plw_wb_to_r, plw_s_to_r, plw_win_to_r, &
13 pemis_road, pemit_lw_road, pdqs_road, pabs_lw_road, &
14 phfree_road, plefree_road, pimb_road, prr )
97 USE modd_csts,ONLY : xcpd, xlvtt, xstefan, xcl
101 USE modi_layer_e_budget
102 USE modi_layer_e_budget_get_coef
104 USE yomhook
,ONLY : lhook, dr_hook
105 USE parkind1
,ONLY : jprb
112 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pt_road
113 REAL,
INTENT(IN) :: ptstep
114 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc_road
115 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc_road
116 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_road
117 REAL,
DIMENSION(:),
INTENT(IN) :: pdn_road
118 REAL,
DIMENSION(:),
INTENT(IN) :: prhoa
119 REAL,
DIMENSION(:),
INTENT(IN) :: pac_road
121 REAL,
DIMENSION(:),
INTENT(IN) :: pac_road_wat
124 REAL,
DIMENSION(:),
INTENT(IN) :: plw_rad
125 REAL,
DIMENSION(:),
INTENT(IN) :: pps
126 REAL,
DIMENSION(:),
INTENT(IN) :: pqsat_road
127 REAL,
DIMENSION(:),
INTENT(IN) :: pdelt_road
128 REAL,
DIMENSION(:),
INTENT(IN) :: pexns
129 REAL,
DIMENSION(:),
INTENT(IN) :: pabs_sw_road
130 REAL,
DIMENSION(:),
INTENT(IN) :: pgsnow_road
133 REAL,
DIMENSION(:),
INTENT(IN) :: pq_lowcan
134 REAL,
DIMENSION(:),
INTENT(IN) :: pt_lowcan
135 REAL,
DIMENSION(:),
INTENT(IN) :: pts_wall_a
136 REAL,
DIMENSION(:),
INTENT(IN) :: pts_wall_b
137 REAL,
DIMENSION(:),
INTENT(IN) :: ptsnow_road
138 REAL,
DIMENSION(:),
INTENT(IN) :: pts_garden
139 REAL,
DIMENSION(:),
INTENT(IN) :: pts_win
141 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wa_to_r
142 REAL,
DIMENSION(:),
INTENT(IN) :: plw_wb_to_r
143 REAL,
DIMENSION(:),
INTENT(IN) :: plw_s_to_r
144 REAL,
DIMENSION(:),
INTENT(IN) :: plw_win_to_r
146 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_road
148 REAL,
DIMENSION(:),
INTENT(OUT) :: pemit_lw_road
149 REAL,
DIMENSION(:),
INTENT(OUT) :: pdqs_road
150 REAL,
DIMENSION(:),
INTENT(OUT) :: pabs_lw_road
151 REAL,
DIMENSION(:),
INTENT(OUT) :: phfree_road
153 REAL,
DIMENSION(:),
INTENT(OUT) :: plefree_road
155 REAL,
DIMENSION(:),
INTENT(OUT) :: pimb_road
157 REAL,
DIMENSION(:),
INTENT(IN) :: prr
165 REAL,
DIMENSION(SIZE(PT_ROAD,1),SIZE(PT_ROAD,2)) :: za,&
170 REAL,
DIMENSION(SIZE(PPS)) :: zdn_road
171 REAL,
DIMENSION(SIZE(PPS)) :: zdf_road
173 REAL,
DIMENSION(SIZE(PPS)) :: zdqsat_road
174 REAL,
DIMENSION(SIZE(PPS)) :: zrho_acf_r
176 REAL,
DIMENSION(SIZE(PPS)) :: zrho_acf_r_wat
179 REAL,
DIMENSION(SIZE(PPS)) :: zts_road
180 REAL,
DIMENSION(SIZE(PPS)) :: zheat_rr
181 REAL,
DIMENSION(SIZE(PPS)) :: zt_sky
183 INTEGER :: iroad_layer
185 REAL(KIND=JPRB) :: zhook_handle
187 IF (lhook) CALL dr_hook(
'ROAD_LAYER_E_BUDGET',0,zhook_handle)
195 iroad_layer =
SIZE(pt_road,2)
197 DO jj=1,
SIZE(pdn_road)
199 zdn_road(jj) = pdn_road(jj)
200 zdf_road(jj) = 1. - zdn_road(jj)
205 zts_road(jj) = pt_road(jj,1)
210 zrho_acf_r(jj) = prhoa(jj) * pac_road(jj) * zdf_road(jj)
211 zrho_acf_r_wat(jj) = prhoa(jj) * pac_road_wat(jj) * zdf_road(jj)
216 zt_sky(jj) = (plw_rad(jj)/xstefan)**0.25
223 zdqsat_road(:) =
dqsat(zts_road(:),pps(:),pqsat_road(:))
230 DO jj=1,
SIZE(pt_road,1)
232 zb(jj,1) = zb(jj,1) + zimpl * xcpd/pexns(jj) * zrho_acf_r(jj) &
233 + zimpl * xlvtt * zrho_acf_r_wat(jj) * pdelt_road(jj) * zdqsat_road(jj)
235 zy(jj,1) = zy(jj,1) &
236 + xcpd/pexns(jj) * zrho_acf_r(jj) * ( pt_lowcan(jj) - zexpl * zts_road(jj) ) &
237 + zdf_road(jj)*pabs_sw_road(jj) + zdn_road(jj)*pgsnow_road(jj) &
238 + xlvtt * zrho_acf_r_wat(jj) * pdelt_road(jj) &
239 * ( pq_lowcan(jj) - pqsat_road(jj) + zimpl * zdqsat_road(jj) * zts_road(jj) )
241 zb(jj,1) = zb(jj,1) &
242 + zimpl * zdf_road(jj) * ( plw_s_to_r(jj) + plw_wa_to_r(jj) + &
243 plw_wb_to_r(jj) + plw_win_to_r(jj) + &
246 zy(jj,1) = zy(jj,1) &
248 plw_s_to_r(jj) * (zt_sky(jj) - zexpl * zts_road(jj)) &
249 + plw_win_to_r(jj) * (pts_win(jj) - zexpl * zts_road(jj)) &
250 + plw_wa_to_r(jj) * (pts_wall_a(jj) - zexpl * zts_road(jj)) &
251 + plw_wb_to_r(jj) * (pts_wall_b(jj) - zexpl * zts_road(jj)) &
252 + prr(jj) * xcl * (pt_lowcan(jj)- zexpl * zts_road(jj) ))
257 CALL
layer_e_budget( pt_road, ptstep, zimpl, phc_road, ptc_road, pd_road, &
258 za, zb, zc, zy, pdqs_road )
266 DO jj=1,
SIZE(pt_road,1)
269 zts_road(jj) = zexpl * zts_road(jj) + zimpl * pt_road(jj,1)
270 pabs_lw_road(jj) = plw_s_to_r(jj) * (zt_sky(jj) - zts_road(jj)) + &
271 plw_wa_to_r(jj) * (pts_wall_a(jj) - zts_road(jj)) + &
272 plw_wb_to_r(jj) * (pts_wall_b(jj) - zts_road(jj)) + &
273 plw_win_to_r(jj) * (pts_win(jj) - zts_road(jj))
277 pemit_lw_road(jj) = xstefan * pt_road(jj,1)**4 + &
278 (1 - pemis_road(jj))/pemis_road(jj) * pabs_lw_road(jj)
283 phfree_road(jj) = zrho_acf_r(jj) * xcpd/pexns(jj) * &
284 ( zimpl*pt_road(jj,1) + zexpl*zts_road(jj) - pt_lowcan(jj) )
289 plefree_road(jj) = zrho_acf_r_wat(jj) * xlvtt * pdelt_road(jj) * &
290 ( pqsat_road(jj) - pq_lowcan(jj) + &
291 zimpl * zdqsat_road(jj) * (pt_road(jj,1) - zts_road(jj)) )
292 zheat_rr(jj) = prr(jj) * xcl * (zts_road(jj) - pt_lowcan(jj))
300 pimb_road(jj) = pabs_sw_road(jj) + pabs_lw_road(jj) - pdqs_road(jj) &
301 - zdf_road(jj) * ( phfree_road(jj) + plefree_road(jj)) &
302 - zdn_road(jj) * pgsnow_road(jj)
307 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 road_layer_e_budget(PT_ROAD, PTSTEP, PHC_ROAD, PTC_ROAD, PD_ROAD, 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, PTS_WIN, PLW_WA_TO_R, PLW_WB_TO_R, PLW_S_TO_R, PLW_WIN_TO_R, PEMIS_ROAD, PEMIT_LW_ROAD, PDQS_ROAD, PABS_LW_ROAD, PHFREE_ROAD, PLEFREE_ROAD, PIMB_ROAD, PRR)
subroutine layer_e_budget_get_coef(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY)