SURFEX v8.1
General documentation of Surfex
wall_layer_e_budget.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ##########################################################################
6  SUBROUTINE wall_layer_e_budget(TOP, T, B, PT_WL, PTS_WL_B, PTI_WL_B, PTSTEP, PDN_RD, &
7  PRHOA, PAC_WL, PAC_BLD, PLW_RAD, PPS, PEXNS, PABS_SW_WL, &
8  PT_CANYON, PTS_RD, PTSNOW_RD, PTS_GD, PTS_FL, &
9  PLW_WA_TO_WB, PLW_R_TO_W, PLW_G_TO_W, PLW_NR_TO_W, &
10  PLW_WIN_TO_W, PLW_S_TO_W, PFLX_BLD_WL, PDQS_WL, &
11  PABS_LW_WL, PEMIT_LW_WL, PH_WL, PIMB_WL, PRADHT_IN, &
12  PRAD_RF_WL, PRAD_WL_WIN, PRAD_WL_FL, PRAD_WL_MA, &
13  PCONV_WL_BLD, PLOAD_IN_WL )
14 ! ##########################################################################
15 !
16 !!**** *ROAD_WALL_LAYER_E_BUDGET*
17 !!
18 !! PURPOSE
19 !! -------
20 !
21 ! Computes the evoultion of roads and walls surface temperatures
22 !
23 !
24 !!** METHOD
25 ! ------
26 !
27 ! 6 : equations for evolution of Ts_road and Ts_wall simultaneously
28 ! *************************************************************
29 !
30 ! dTw_k(t) / dt = 1/(dw_k*Cw_k) * (- 2*Kw_k-1*(Tw_k-Tw_k-1)/(dw_k-1 +dw_k)
31 ! - 2*Kw_k *(Tw_k-Tw_k+1)/(dw_k+1 +dw_k) )
32 !
33 ! dTw_1(t) / dt = 1/(dw_1*Cw_1) * ( Rn_w - H_w - LE_w
34 ! - 2*Kw_1*(Tw_1-Tw_2)/(dw_1 +dw_2) )
35 !
36 !
37 ! with
38 !
39 ! K*_k = (d*_k+ d*_k+1)/(d*_k/k*_k+ d*_k+1/k*_k+1)
40 !
41 ! Rn_w = abs_Rg_w
42 ! - sigma * emis_w * Ts_w**4 (t+dt)
43 ! + emis_w * SVF_w * LWR
44 ! + sigma * emis_w * emis_r * SVF_w * Ts_r**4 (t+dt)
45 ! + sigma * emis_w * emis_w * (1-2*SVF_w) * Ts_w**4 (t+dt)
46 ! + emis_w (1-emis_r) * SVF_r * SVF_w * LWR
47 ! + emis_w (1-emis_w) * SVF_w * (1-2*SVF_w) * LWR
48 ! + sigma * emis_w * emis_w * (1-emis_r) * SVF_w * (1- SVF_r) * Ts_w**4 (t+dt)
49 ! + sigma * emis_w * emis_w * (1-emis_w) * (1-2*SVF_w) * (1-2*SVF_w) * Ts_w**4 (t+dt)
50 ! + sigma * emis_w * emis_r * (1-emis_w) * SVF_w * (1-2*SVF_w) * Ts_r**4 (t+dt)
51 !
52 ! H_w = rho Cp CH V ( Ts_w (t+dt) - Ta_canyon )
53 !
54 ! LE_w = rho Lv CH V ( qs_w (t+dt) - qa_canyon )
55 !
56 !
57 ! The system is implicited (or semi-implicited).
58 !
59 ! ZIMPL=1 ---> implicit system
60 ! ZIMPL=0.5 ---> semi-implicit system
61 ! ZIMPL=0 ---> explicit system
62 !
63 !
64 !
65 !
66 !! EXTERNAL
67 !! --------
68 !!
69 !!
70 !! IMPLICIT ARGUMENTS
71 !! ------------------
72 !!
73 !! MODD_CST
74 !!
75 !!
76 !! REFERENCE
77 !! ---------
78 !!
79 !!
80 !! AUTHOR
81 !! ------
82 !!
83 !! V. Masson * Meteo-France *
84 !!
85 !! MODIFICATIONS
86 !! -------------
87 !! Original 23/01/98
88 !! 21/11/01 (V. Masson and A. Lemonsu) bug of latent flux
89 !! for very strong evaporation (all reservoir emptied
90 !! in one time-step)
91 !! 02/11 (V. Masson) splits the routine for road and walls separately
92 !! 01/12 (V. Masson) separates the 2 walls
93 !! 09/12 (G. Pigeon) modif internal convective coef convection
94 !! 10/12 (G. Pigeon) add solar heat gain of indoor wall
95 !-------------------------------------------------------------------------------
96 !
97 !* 0. DECLARATIONS
98 ! ------------
99 !
101 USE modd_teb_n, ONLY : teb_t
102 USE modd_bem_n, ONLY : bem_t
103 !
104 USE modd_surf_par, ONLY : xundef
105 USE modd_csts,ONLY : xcpd, xstefan
106 !
107 USE modi_layer_e_budget_get_coef
108 USE modi_layer_e_budget
109 USE mode_conv_doe
110 !
111 USE yomhook ,ONLY : lhook, dr_hook
112 USE parkind1 ,ONLY : jprb
113 !
114 IMPLICIT NONE
115 !
116 !* 0.1 declarations of arguments
117 !
118 TYPE(teb_options_t), INTENT(INOUT) :: TOP
119 TYPE(teb_t), INTENT(INOUT) :: T
120 TYPE(bem_t), INTENT(INOUT) :: B
121 !
122 REAL, DIMENSION(:,:), INTENT(INOUT) :: PT_WL ! wall layers temperatures
123 REAL, DIMENSION(:), INTENT(IN) :: PTS_WL_B ! opposite wall surface temperature
124 REAL, DIMENSION(:), INTENT(IN) :: PTI_WL_B ! opposite wall internal temperature
125 REAL, INTENT(IN) :: PTSTEP ! time step
126 REAL, DIMENSION(:), INTENT(IN) :: PDN_RD ! snow-covered fraction on roads
127 REAL, DIMENSION(:), INTENT(IN) :: PRHOA ! rho
128 REAL, DIMENSION(:), INTENT(IN) :: PAC_WL ! aerodynamical conductance [m/s]
129 ! ! between wall and canyon
130 REAL, DIMENSION(:), INTENT(IN) :: PAC_BLD ! aerodynamical conductance
131  ! inside the building itself
132 REAL, DIMENSION(:), INTENT(IN) :: PLW_RAD ! atmospheric infrared radiation
133 REAL, DIMENSION(:), INTENT(IN) :: PPS ! pressure at the surface
134 REAL, DIMENSION(:), INTENT(IN) :: PEXNS ! surface Exner function
135 REAL, DIMENSION(:), INTENT(IN) :: PABS_SW_WL ! absorbed solar radiation
136 REAL, DIMENSION(:), INTENT(IN) :: PT_CANYON ! air canyon temperature
137 REAL, DIMENSION(:), INTENT(IN) :: PTS_RD ! road surface temperature
138 REAL, DIMENSION(:), INTENT(IN) :: PTSNOW_RD ! road snow temperature
139 REAL, DIMENSION(:), INTENT(IN) :: PTS_GD ! green area surface temperature
140 REAL, DIMENSION(:), INTENT(IN) :: PTS_FL ! floor layers temperatures [K]
141 !
142 REAL, DIMENSION(:), INTENT(IN) :: PLW_WA_TO_WB ! LW interactions wall -> opposite wall
143 REAL, DIMENSION(:), INTENT(IN) :: PLW_R_TO_W ! LW interactions road -> wall ; DEF formulation
144 REAL, DIMENSION(:), INTENT(IN) :: PLW_G_TO_W ! LW interactions garden -> wall ; DEF formulation
145 REAL, DIMENSION(:), INTENT(IN) :: PLW_S_TO_W ! LW interactions sky -> wall
146 REAL, DIMENSION(:), INTENT(IN) :: PLW_NR_TO_W ! LW interactions road(snow) -> wall
147 REAL, DIMENSION(:), INTENT(IN) :: PLW_WIN_TO_W ! Radiative heat trasfer coeff wall-window
148  ! [W K-1 m-2]
149 !
150 REAL, DIMENSION(:), INTENT(OUT) :: PFLX_BLD_WL! flux from bld to wall
151 REAL, DIMENSION(:), INTENT(INOUT) :: PDQS_WL ! heat storage inside the wall
152 REAL, DIMENSION(:), INTENT(OUT) :: PABS_LW_WL ! absorbed infrared rad. [W m-2(wall)]
153 REAL, DIMENSION(:), INTENT(OUT) :: PEMIT_LW_WL ! LW flux emitted by the wall [W m-2(wall)]
154 REAL, DIMENSION(:), INTENT(OUT) :: PH_WL ! Sensible heat flux from wall to air [W/m2(wall)]
155  ! wall = facade - glazing
156 REAL, DIMENSION(:), INTENT(OUT) :: PIMB_WL ! wall residual energy imbalance
157  ! for verification [W m-2]
158 REAL, DIMENSION(:), INTENT(IN) :: PRADHT_IN ! Indoor radiant heat transfer coefficient
159  ! [W K-1 m-2]
160 REAL, DIMENSION(:), INTENT(IN) :: PRAD_RF_WL ! rad. fluxes from roof to wall [W m-2(roof)]
161 REAL, DIMENSION(:), INTENT(OUT) :: PRAD_WL_WIN ! rad. fluxes from wall to win [W m-2(wall)]
162 REAL, DIMENSION(:), INTENT(OUT) :: PRAD_WL_FL! rad. fluxes from wall to floor [W m-2(wall)]
163 REAL, DIMENSION(:), INTENT(OUT) :: PRAD_WL_MA ! rad. fluxes from wall to mass [W m-2(wall)]
164 REAL, DIMENSION(:), INTENT(OUT) :: PCONV_WL_BLD ! conv. fluxes from wall to bld [W m-2(wall)]
165 
166 REAL, DIMENSION(:), INTENT(IN) :: PLOAD_IN_WL ! LOAD from solar heat gain + rad int. gains W/m2 [Wall]
167 
168 
169 !
170 !* 0.2 declarations of local variables
171 !
172 !
173 REAL :: ZIMPL=1.0 ! implicit coefficient
174 REAL :: ZEXPL=0.0 ! explicit coefficient
175 !
176 REAL, DIMENSION(SIZE(PPS),SIZE(PT_WL,2)) :: ZA,& ! lower diag.
177  ZB,& ! main diag.
178  ZC,& ! upper diag.
179  ZY ! r.h.s.
180 !
181 REAL, DIMENSION(SIZE(PPS)) :: ZMTC_O_D_WL_IN
182 REAL, DIMENSION(SIZE(PPS)) :: ZDF_RD ! Road snow free fraction
183 REAL, DIMENSION(SIZE(PPS)) :: ZRHO_ACF_W ! rho * conductance
184 ! ! * snow-free f.
185 !
186 ! thermal capacity times layer depth
187 REAL, DIMENSION(SIZE(PPS)) :: ZTS_WL ! wall surface temperature
188 REAL, DIMENSION(SIZE(PPS)) :: ZTI_WL ! wall indoor surface temperature
189 REAL, DIMENSION(SIZE(PPS)) :: ZTI_WL_CONV ! wall indoor surface temperature for conv. flux
190 REAL, DIMENSION(SIZE(PPS)) :: ZT_SKY ! sky temperature [K]
191 !
192 REAL, DIMENSION(SIZE(PPS)) :: ZTI_RF ! Indoor roof temperature [K]
193 REAL, DIMENSION(SIZE(PPS)) :: ZDIF_RAD_WL_RF !diff between the rad flux that should receive the wall from the roof
194  ! and what it really receives [W m-2(bld)]
195 REAL, DIMENSION(SIZE(PPS)) :: ZRAD_WL_RF ! rad flux between the wall and the roof computed for the wall balance
196 REAL, DIMENSION(SIZE(PPS)) :: ZF_WL_WL ! View factor wall-wall inside the building
197 REAL, DIMENSION(SIZE(PPS)) :: ZCHTC_IN_WL ! indoor convective heat transfer coeff wall [W m-2 K-1]
198 INTEGER :: IWL_LAYER ! number of wall layers
199 INTEGER :: JJ ! loop counter
200 REAL(KIND=JPRB) :: ZHOOK_HANDLE
201 !-------------------------------------------------------------------------------
202 IF (lhook) CALL dr_hook('WALL_LAYER_E_BUDGET',0,zhook_handle)
203 !
204 pflx_bld_wl = xundef
205 pimb_wl = xundef
206 prad_wl_win = xundef
207 prad_wl_fl= xundef
208 prad_wl_ma = xundef
209 pconv_wl_bld = xundef
210 
211 !
212  CALL layer_e_budget_get_coef( pt_wl, ptstep, zimpl, t%XHC_WALL, t%XTC_WALL, t%XD_WALL, &
213  za, zb, zc, zy )
214 !
215 iwl_layer = SIZE(pt_wl,2)
216 !
217 DO jj=1,SIZE(pdn_rd)
218  !
219  zdf_rd(jj) = 1. - pdn_rd(jj)
220  !
221  zts_wl(jj) = pt_wl(jj,1)
222  zti_wl(jj) = pt_wl(jj, iwl_layer)
223  !
224  !* 2.1 outdoor convective flux properties
225  ! ----------------------------------
226  !
227  zrho_acf_w(jj) = prhoa(jj) * pac_wl(jj)
228  !
229  !* 2.2 Sky temperature
230  ! ---------------
231  !
232  zt_sky(jj) = (plw_rad(jj)/xstefan)**0.25
233  !
234  !* 2.3 indoor average thermal conductivity
235  ! -----------------------------------
236  !
237  IF (top%CBEM .EQ. "DEF") THEN
238  zmtc_o_d_wl_in(jj) = 2. * t%XTC_WALL(jj,iwl_layer) / t%XD_WALL (jj,iwl_layer)
239  zmtc_o_d_wl_in(jj) = 1./( 1./zmtc_o_d_wl_in(jj) + 1./(xcpd*prhoa(jj)*pac_bld(jj)))
240  ENDIF
241 ENDDO
242  !
243  !* 2.4 indoor convective coefficient
244  ! -----------------------------
245  !
246  zchtc_in_wl(:) = chtc_vert_doe(pt_wl(:,iwl_layer), b%XTI_BLD(:))
247  DO jj=1,SIZE(zchtc_in_wl)
248  zchtc_in_wl(jj) = max(1., zchtc_in_wl(jj))
249  ENDDO
250 
251 !
252 !-------------------------------------------------------------------------------
253 !
254 !* 3. Outer wall layer coefficients
255 ! ------------------------------
256 !
257 DO jj=1,SIZE(pt_wl,1)
258  !
259  zb(jj,1) = zb(jj,1) + zimpl * xcpd/pexns(jj) * zrho_acf_w(jj)
260  !
261  zy(jj,1) = zy(jj,1) + pabs_sw_wl(jj) &
262  + xcpd/pexns(jj) * zrho_acf_w(jj) * ( pt_canyon(jj) - zexpl * zts_wl(jj) )
263  !
264  !
265  zb(jj,1) = zb(jj,1) &
266  + zimpl * ( plw_s_to_w(jj) + plw_wa_to_wb(jj) &
267  + zdf_rd(jj)*plw_r_to_w(jj) + plw_g_to_w(jj) &
268  + pdn_rd(jj) * plw_nr_to_w(jj) &
269  + plw_win_to_w(jj) )
270  !
271  zy(jj,1) = zy(jj,1) + &
272  plw_s_to_w(jj) * (zt_sky(jj) - zexpl * zts_wl(jj)) &
273  + plw_wa_to_wb(jj) * (pts_wl_b(jj) - zexpl * zts_wl(jj)) &
274  + zdf_rd(jj) * plw_r_to_w(jj) * (pts_rd(jj) - zexpl * zts_wl(jj)) &
275  + pdn_rd(jj) * plw_nr_to_w(jj) * (ptsnow_rd(jj)- zexpl * zts_wl(jj)) &
276  + plw_win_to_w(jj) * (b%XT_WIN1(jj) - zexpl * zts_wl(jj))
277  !
278  IF (SIZE(pts_gd)>0) THEN
279  zy(jj,1) = zy(jj,1) + plw_g_to_w(jj) * (pts_gd(jj) - zexpl * zts_wl(jj))
280  ENDIF
281  !
282 ENDDO
283 !
284 !-------------------------------------------------------------------------------
285 !
286 !* 4. Inside wall layer coefficients
287 ! -----------------------------
288 !
289 DO jj=1,SIZE(pt_wl,1)
290  !
291  IF (top%CBEM=="DEF") THEN
292  !
293  zb(jj,iwl_layer) = zb(jj,iwl_layer) + zimpl * zmtc_o_d_wl_in(jj)
294  !
295  zy(jj,iwl_layer) = zy(jj,iwl_layer) &
296  + zmtc_o_d_wl_in(jj) * b%XTI_BLD(jj) &
297  - zexpl * zmtc_o_d_wl_in(jj) * pt_wl(jj,iwl_layer)
298  !
299  ELSEIF (top%CBEM=="BEM") THEN
300  !
301  zf_wl_wl(jj) = 1. - b%XF_WALL_MASS(jj) - b%XF_WALL_WIN(jj) - 2.*b%XF_WALL_FLOOR(jj)
302  !
303  zb(jj,iwl_layer) = zb(jj,iwl_layer) + zimpl * &
304  (zchtc_in_wl(jj) * 4./3. + pradht_in(jj) * &
305  ( b%XF_WALL_MASS(jj) + b%XF_WALL_WIN (jj) &
306  + zf_wl_wl(jj) + 2 * b%XF_WALL_FLOOR(jj)))
307  !
308  zti_rf(jj) = prad_rf_wl(jj) / pradht_in(jj) + pt_wl(jj,iwl_layer)
309  !
310  zy(jj,iwl_layer) = zy(jj,iwl_layer) + &
311  zchtc_in_wl(jj) * (b%XTI_BLD(jj) - 1./3. * pt_wl(jj, iwl_layer) * (4 * zexpl -1)) + &
312  pradht_in(jj) * ( &
313  b%XF_WALL_MASS (jj) * (b%XT_MASS(jj,1) - zexpl * pt_wl(jj,iwl_layer)) + &
314  b%XF_WALL_WIN (jj) * (b%XT_WIN2 (jj) - zexpl * pt_wl(jj,iwl_layer)) + &
315  b%XF_WALL_FLOOR(jj) * (pts_fl(jj) - zexpl * pt_wl(jj,iwl_layer)) + &
316  zf_wl_wl(jj) * (pti_wl_b(jj) - zexpl * pt_wl(jj,iwl_layer)) + &
317  b%XF_WALL_FLOOR(jj) * (zti_rf(jj) - zexpl * pt_wl(jj,iwl_layer)) )+ &
318  pload_in_wl(jj)
319  !
320  ENDIF
321  !
322 END DO
323 !
324 !-------------------------------------------------------------------------------
325 !
326 !* 5. heat conduction calculation
327 ! ---------------------------
328 !
329  CALL layer_e_budget( pt_wl, ptstep, zimpl, t%XHC_WALL, t%XTC_WALL, t%XD_WALL, &
330  za, zb, zc, zy, pdqs_wl )
331 !
332 !-------------------------------------------------------------------------------
333 !
334 !* 6. diagnostics of flux echanged with the wall
335 ! ------------------------------------------
336 !
337 !
338 !* radiative surface temperature used during the energy balance
339 zts_wl(:) = zimpl * pt_wl(:,1) + zexpl * zts_wl(:)
340 !
341 pabs_lw_wl(:) = plw_s_to_w(:) * (zt_sky(:) - zts_wl(:)) + &
342  zdf_rd(:) *plw_r_to_w(:) * (pts_rd(:) - zts_wl(:)) + &
343  plw_wa_to_wb(:) * (pts_wl_b(:) - zts_wl(:)) + &
344  plw_win_to_w(:) * (b%XT_WIN1(:) - zts_wl(:)) + &
345  pdn_rd(:) *plw_nr_to_w(:) * (ptsnow_rd(:) - zts_wl(:))
346 !
347 IF (SIZE(pts_gd)>0) THEN
348  pabs_lw_wl(:) = pabs_lw_wl(:) + plw_g_to_w(:) * (pts_gd(:) - zts_wl(:))
349 ENDIF
350 !
351 !* emitted lw flux
352 pemit_lw_wl(:) = xstefan * pt_wl(:,1)**4 + &
353  (1 - t%XEMIS_WALL(:))/t%XEMIS_WALL(:) * pabs_lw_wl(:)
354 !
355 !* sensible heat flux to outdoor
356 ph_wl(:) = zrho_acf_w(:) * xcpd/pexns(:) * &
357  ( zimpl*pt_wl(:,1) + zexpl*zts_wl(:) - pt_canyon(:) )
358 !
359 IF (top%CBEM=='BEM') THEN
360  !
361  !compute ZTI_WALL used in flux calculation
362  zti_wl_conv(:) = 4./3. * zimpl * pt_wl(:,iwl_layer) + 1./3. * zti_wl(:) * (4 * zexpl -1.)
363  zti_wl(:) = zexpl * zti_wl(:) + zimpl * pt_wl(:,iwl_layer)
364  !
365  !compute IR exchanged fluxes with the roof in the wall balance
366  zrad_wl_rf(:) = pradht_in(:) * (zti_wl(:) - zti_rf(:))
367  !compute the difference with the IR flux echanged between roof and wall for
368  !the roof balance, this difference will be added to the floor
369  zdif_rad_wl_rf(:) = zrad_wl_rf(:) + prad_rf_wl(:)
370 
371  !compute exchanged fluxes with other surfaces for which the balance is done after
372  prad_wl_fl(:) = pradht_in(:) * (zti_wl(:) - pts_fl(:))
373  ! contribution of the difference between the flux from the wall/flux from
374  ! the roof
375  prad_wl_fl(:) = prad_wl_fl(:) + zdif_rad_wl_rf(:)
376  prad_wl_ma(:) = pradht_in(:) * (zti_wl(:) - b%XT_MASS(:,1))
377  prad_wl_win(:) = pradht_in(:) * (zti_wl(:) - b%XT_WIN2(:))
378  pconv_wl_bld(:) = zchtc_in_wl(:) * (zti_wl_conv(:) - b%XTI_BLD (:))
379  !
380  !
381  pflx_bld_wl(:) = -pconv_wl_bld(:) &
382  + b%XF_WALL_FLOOR(:) * prad_rf_wl(:) &
383  + pradht_in(:) *(b%XF_WALL_MASS (:) * (b%XT_MASS(:,1) - zti_wl(:)) &
384  + b%XF_WALL_WIN (:) * (b%XT_WIN2 (:) - zti_wl(:)) &
385  + b%XF_WALL_FLOOR(:) * (pts_fl(:) - zti_wl(:)) )
386 !
387 !* wall energy residual imbalance for verification
388 ! -----------------------------------------------
389  pimb_wl(:) = pabs_sw_wl(:) + pabs_lw_wl(:) &
390  - pdqs_wl(:) - ph_wl(:) &
391  + pflx_bld_wl(:)
392 !
393 !
394 END IF
395 !
396 !-------------------------------------------------------------------------------
397 IF (lhook) CALL dr_hook('WALL_LAYER_E_BUDGET',1,zhook_handle)
398 !
399 END SUBROUTINE wall_layer_e_budget
real, save xcpd
Definition: modd_csts.F90:63
real, save xstefan
Definition: modd_csts.F90:59
real, parameter xundef
integer, parameter jprb
Definition: parkind1.F90:32
subroutine layer_e_budget(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY, PDQS)
logical lhook
Definition: yomhook.F90:15
subroutine wall_layer_e_budget(TOP, T, B, PT_WL, PTS_WL_B, PTI_WL_B, PTSTEP, PDN_RD, PRHOA, PAC_WL, PAC_BLD, PLW_RAD, PPS, PEXNS, PABS_SW_WL, PT_CANYON, PTS_RD, PTSNOW_RD, PTS_GD, PTS_FL, PLW_WA_TO_WB, PLW_R_TO_W, PLW_G_TO_W, PLW_NR_TO_W, PLW_WIN_TO_W, PLW_S_TO_W, PFLX_BLD_WL, PDQS_WL, PABS_LW_WL, PEMIT_LW_WL, PH_WL, PIMB_WL, PRADHT_IN, PRAD_RF_WL, PRAD_WL_WIN, PRAD_WL_FL, PRAD_WL_MA, PCONV_WL_BLD, PLOAD_IN_WL)
subroutine layer_e_budget_get_coef(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY)