7 pemis_r, psvf_r, pemis_w, psvf_w, pemis_g, &
8 proad, pgarden, pesnow_r, &
9 pts_sr, pts_w_a, pts_w_b, pts_r, pts_g, pts_win, &
10 plw_wa_to_wb, plw_wa_to_r, plw_wb_to_r, &
11 plw_wa_to_nr,plw_wb_to_nr, &
12 plw_wa_to_g, plw_wb_to_g, &
13 plw_wa_to_win, plw_wb_to_win, &
14 plw_r_to_wa, plw_r_to_wb, plw_r_to_win, &
15 plw_g_to_wa, plw_g_to_wb, plw_g_to_win, &
16 plw_s_to_wa, plw_s_to_wb, plw_s_to_r, &
17 plw_s_to_nr, plw_s_to_g, plw_s_to_win, &
18 plw_win_to_wa, plw_win_to_wb, plw_win_to_r, &
19 plw_win_to_nr, plw_win_to_g, &
20 plw_nr_to_wa, plw_nr_to_wb, plw_nr_to_win )
69 USE yomhook
,ONLY : lhook, dr_hook
70 USE parkind1
,ONLY : jprb
78 REAL,
DIMENSION(:),
INTENT(IN) :: pgr
79 REAL,
DIMENSION(:),
INTENT(IN) :: pbld
80 REAL,
DIMENSION(:),
INTENT(IN) :: plw_rad
81 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_r
82 REAL,
DIMENSION(:),
INTENT(IN) :: psvf_r
83 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_w
84 REAL,
DIMENSION(:),
INTENT(IN) :: psvf_w
85 REAL,
DIMENSION(:),
INTENT(IN) :: pemis_g
86 REAL,
DIMENSION(:),
INTENT(IN) :: proad
87 REAL,
DIMENSION(:),
INTENT(IN) :: pgarden
88 REAL,
DIMENSION(:),
INTENT(IN) :: pesnow_r
90 REAL,
DIMENSION(:),
INTENT(IN) :: pts_w_a
91 REAL,
DIMENSION(:),
INTENT(IN) :: pts_w_b
92 REAL,
DIMENSION(:),
INTENT(IN) :: pts_r
93 REAL,
DIMENSION(:),
INTENT(IN) :: pts_g
94 REAL,
DIMENSION(:),
INTENT(IN) :: pts_win
95 REAL,
DIMENSION(:),
INTENT(IN) :: pts_sr
97 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wa_to_wb
98 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wa_to_r
99 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wb_to_r
100 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wa_to_nr
101 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wb_to_nr
102 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wa_to_g
103 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wb_to_g
104 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wa_to_win
105 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_wb_to_win
107 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_r_to_wa
108 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_r_to_wb
109 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_r_to_win
111 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_g_to_wa
112 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_g_to_wb
113 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_g_to_win
115 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_s_to_wa
116 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_s_to_wb
117 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_s_to_r
118 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_s_to_nr
119 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_s_to_g
120 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_s_to_win
122 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_win_to_wa
123 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_win_to_wb
124 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_win_to_r
125 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_win_to_nr
126 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_win_to_g
128 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_nr_to_wa
129 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_nr_to_wb
130 REAL,
DIMENSION(:),
INTENT(OUT) :: plw_nr_to_win
134 REAL,
DIMENSION(SIZE(PBLD)) :: zt_s
136 REAL,
DIMENSION(SIZE(PBLD)) :: zemis_win
137 REAL,
DIMENSION(SIZE(PBLD)) :: zf_w_w
138 REAL,
DIMENSION(SIZE(PBLD)) :: zf_r_w
139 REAL,
DIMENSION(SIZE(PBLD)) :: zf_r_win
140 REAL,
DIMENSION(SIZE(PBLD)) :: zf_w_r
141 REAL,
DIMENSION(SIZE(PBLD)) :: zf_w_g
142 REAL,
DIMENSION(SIZE(PBLD)) :: zf_w_win
143 REAL,
DIMENSION(SIZE(PBLD)) :: zf_w_nr
144 REAL,
DIMENSION(SIZE(PBLD)) :: zf_win_w
145 REAL,
DIMENSION(SIZE(PBLD)) :: zf_win_r
146 REAL,
DIMENSION(SIZE(PBLD)) :: zf_win_g
147 REAL,
DIMENSION(SIZE(PBLD)) :: zf_win_nr
148 REAL,
DIMENSION(SIZE(PBLD)) :: zf_g_w
149 REAL,
DIMENSION(SIZE(PBLD)) :: zf_g_win
151 REAL :: ze1, ze2, zf, zt1, zt2, zlw
152 zlw(ze1,ze2,zf,zt1,zt2) = 4.*xstefan*ze1*ze2*zf*((zt1+zt2)/2.)**3
155 REAL(KIND=JPRB) :: zhook_handle
157 IF (lhook) CALL dr_hook(
'URBAN_LW_COEF',0,zhook_handle)
159 zt_s(:) = (plw_rad(:)/xstefan)**0.25
166 zf_w_r(jj) = psvf_w(jj) * (proad(jj) /(1.-pbld(jj)))
167 zf_w_g(jj) = psvf_w(jj) * (pgarden(jj)/(1.-pbld(jj)))
168 zf_w_nr(jj) = psvf_w(jj)
170 zf_win_r(jj) = zf_w_r(jj)
171 zf_win_g(jj) = zf_w_g(jj)
172 zf_win_nr(jj) = zf_w_nr(jj)
174 zf_r_w(jj) = (1 - psvf_r(jj))*(1.-pgr(jj)) * 0.5
175 zf_r_win(jj) = (1 - psvf_r(jj))*pgr(jj)
177 zf_g_w(jj) = zf_r_w(jj)
178 zf_g_win(jj) = zf_r_win(jj)
180 zf_win_w(jj) = (1.-2.*psvf_w(jj))*(1.-pgr(jj))
181 zf_w_w(jj) = (1.-2.*psvf_w(jj))*(1.-pgr(jj))
182 zf_w_win(jj) = (1.-2.*psvf_w(jj))*pgr(jj)
185 plw_wa_to_wb(jj)=zlw(pemis_w(jj),pemis_w(jj),zf_w_w(jj),pts_w_a(jj),pts_w_b(jj))
187 plw_wa_to_r(jj) = zlw(pemis_w(jj),pemis_r(jj),zf_r_w(jj),pts_w_a(jj),pts_r(jj))
188 plw_wb_to_r(jj) = zlw(pemis_w(jj),pemis_r(jj),zf_r_w(jj),pts_w_b(jj),pts_r(jj))
189 plw_r_to_wa(jj) = zlw(pemis_r(jj),pemis_w(jj),zf_w_r(jj),pts_r(jj),pts_w_a(jj))
190 plw_r_to_wb(jj) = zlw(pemis_r(jj),pemis_w(jj),zf_w_r(jj),pts_r(jj),pts_w_b(jj))
192 plw_wa_to_g(jj) = zlw(pemis_w(jj),pemis_g(jj),zf_g_w(jj),pts_w_a(jj),pts_g(jj))
193 plw_wb_to_g(jj) = zlw(pemis_w(jj),pemis_g(jj),zf_g_w(jj),pts_w_b(jj),pts_g(jj))
194 plw_g_to_wa(jj) = zlw(pemis_g(jj),pemis_w(jj),zf_w_g(jj),pts_g(jj),pts_w_a(jj))
195 plw_g_to_wb(jj) = zlw(pemis_g(jj),pemis_w(jj),zf_w_g(jj),pts_g(jj),pts_w_b(jj))
198 IF (pts_sr(jj) .EQ. xundef)
THEN
199 plw_wa_to_nr(jj) = 0.
200 plw_wb_to_nr(jj) = 0.
201 plw_nr_to_wa(jj) = 0.
202 plw_nr_to_wb(jj) = 0.
204 plw_win_to_nr(jj) = 0.
205 plw_nr_to_win(jj) = 0
209 plw_wa_to_nr(jj) = zlw(pemis_w(jj),pesnow_r(jj),zf_r_w(jj),pts_w_a(jj),pts_sr(jj))
210 plw_wb_to_nr(jj) = zlw(pemis_w(jj),pesnow_r(jj),zf_r_w(jj),pts_w_b(jj),pts_sr(jj))
211 plw_nr_to_wa(jj) = zlw(pesnow_r(jj),pemis_w(jj),zf_w_nr(jj),pts_sr(jj),pts_w_a(jj))
212 plw_nr_to_wb(jj) = zlw(pesnow_r(jj),pemis_w(jj),zf_w_nr(jj),pts_sr(jj),pts_w_b(jj))
214 plw_win_to_nr(jj)= zlw(zemis_win(jj),pesnow_r(jj),zf_r_win(jj),pts_win(jj),pts_sr(jj))
215 plw_nr_to_win(jj)= zlw(pesnow_r(jj),zemis_win(jj),zf_win_nr(jj),pts_sr(jj),pts_win(jj))
217 plw_s_to_nr(jj) = zlw(1.,pesnow_r(jj),psvf_r(jj),zt_s(jj),pts_sr(jj))
220 plw_win_to_r(jj)= zlw(zemis_win(jj),pemis_r(jj),zf_r_win(jj),pts_win(jj),pts_r(jj))
221 plw_r_to_win(jj)= zlw(pemis_r(jj),zemis_win(jj),zf_win_r(jj),pts_r(jj),pts_win(jj))
223 plw_win_to_g(jj)= zlw(zemis_win(jj),pemis_g(jj),zf_g_win(jj),pts_win(jj),pts_g(jj))
224 plw_g_to_win(jj)= zlw(pemis_g(jj),zemis_win(jj),zf_win_g(jj),pts_g(jj),pts_win(jj))
226 plw_win_to_wa(jj) = zlw(zemis_win(jj),pemis_w(jj),zf_w_win(jj),pts_win(jj),pts_w_a(jj))
227 plw_win_to_wb(jj) = zlw(zemis_win(jj),pemis_w(jj),zf_w_win(jj),pts_win(jj),pts_w_b(jj))
228 plw_wa_to_win(jj) = zlw(pemis_w(jj),zemis_win(jj),zf_win_w(jj),pts_w_a(jj),pts_win(jj))
229 plw_wb_to_win(jj) = zlw(pemis_w(jj),zemis_win(jj),zf_win_w(jj),pts_w_b(jj),pts_win(jj))
231 plw_s_to_win(jj) = zlw(1.,zemis_win(jj),psvf_w(jj),zt_s(jj),pts_win(jj))
233 plw_s_to_wa(jj) = zlw(1.,pemis_w(jj),psvf_w(jj),zt_s(jj),pts_w_a(jj))
234 plw_s_to_wb(jj) = zlw(1.,pemis_w(jj),psvf_w(jj),zt_s(jj),pts_w_b(jj))
236 plw_s_to_g(jj) = zlw(1.,pemis_g(jj),psvf_r(jj),zt_s(jj),pts_g(jj))
237 plw_s_to_r(jj) = zlw(1.,pemis_r(jj),psvf_r(jj),zt_s(jj),pts_r(jj))
238 plw_s_to_nr(jj) = zlw(1.,pesnow_r(jj),psvf_r(jj),zt_s(jj),pts_sr(jj))
242 IF (lhook) CALL dr_hook(
'URBAN_LW_COEF',1,zhook_handle)
subroutine urban_lw_coef(PGR, PBLD, PLW_RAD, PEMIS_R, PSVF_R, PEMIS_W, PSVF_W, PEMIS_G, PROAD, PGARDEN, PESNOW_R, PTS_SR, PTS_W_A, PTS_W_B, PTS_R, PTS_G, PTS_WIN, PLW_WA_TO_WB, PLW_WA_TO_R, PLW_WB_TO_R, PLW_WA_TO_NR, PLW_WB_TO_NR, PLW_WA_TO_G, PLW_WB_TO_G, PLW_WA_TO_WIN, PLW_WB_TO_WIN, PLW_R_TO_WA, PLW_R_TO_WB, PLW_R_TO_WIN, PLW_G_TO_WA, PLW_G_TO_WB, PLW_G_TO_WIN, PLW_S_TO_WA, PLW_S_TO_WB, PLW_S_TO_R, PLW_S_TO_NR, PLW_S_TO_G, PLW_S_TO_WIN, PLW_WIN_TO_WA, PLW_WIN_TO_WB, PLW_WIN_TO_R, PLW_WIN_TO_NR, PLW_WIN_TO_G, PLW_NR_TO_WA, PLW_NR_TO_WB, PLW_NR_TO_WIN)