7 PRAD_WL_FL, PRAD_RF_FL, PRAD_WIN_FL, PLOAD_FL, &
8 PRAD_FL_MA, PCONV_FL_BLD )
79 USE modi_layer_e_budget_get_coef
80 USE modi_layer_e_budget
90 TYPE(
bem_t),
INTENT(INOUT) :: B
92 REAL,
INTENT(IN) :: PTSTEP
93 REAL,
DIMENSION(:),
INTENT(OUT) :: PFLX_BLD_FL
94 REAL,
DIMENSION(:),
INTENT(OUT) :: PDQS_FL
95 REAL,
DIMENSION(:),
INTENT(OUT) :: PIMB_FL
96 REAL,
DIMENSION(:),
INTENT(IN) :: PRADHT_IN
98 REAL,
DIMENSION(:),
INTENT(IN) :: PRAD_RF_FL
99 REAL,
DIMENSION(:),
INTENT(IN) :: PRAD_WL_FL
100 REAL,
DIMENSION(:),
INTENT(IN) :: PRAD_WIN_FL
101 REAL,
DIMENSION(:),
INTENT(IN) :: PLOAD_FL
102 REAL,
DIMENSION(:),
INTENT(OUT) :: PRAD_FL_MA
103 REAL,
DIMENSION(:),
INTENT(OUT) :: PCONV_FL_BLD
111 REAL,
DIMENSION(SIZE(B%XT_FLOOR,1),SIZE(B%XT_FLOOR,2)) :: ZA,&
116 REAL,
DIMENSION(SIZE(B%XT_FLOOR,1)) :: ZTS_FL
117 REAL,
DIMENSION(SIZE(B%XT_FLOOR,1)) :: ZTS_FL_CONV
119 REAL,
DIMENSION(SIZE(B%XT_FLOOR,1)) :: ZCHTC_IN_FL
122 REAL(KIND=JPRB) :: ZHOOK_HANDLE
125 IF (
lhook)
CALL dr_hook(
'FLOOR_LAYER_E_BUDGET',0,zhook_handle)
129 zchtc_in_fl(:) =
chtc_up_doe(b%XT_FLOOR(:,1), b%XTI_BLD(:))
130 DO jj=1,
SIZE(zchtc_in_fl)
131 zchtc_in_fl(jj) = max(1., zchtc_in_fl(jj))
139 zts_fl(:) = b%XT_FLOOR(:,1)
141 zb(:,1) = zb(:,1) + zimpl * (zchtc_in_fl(:)*4./3. + pradht_in(:) * b%XF_FLOOR_MASS(:))
145 + zchtc_in_fl(:) * (b%XTI_BLD(:) - 1./3. * b%XT_FLOOR(:, 1) * (4* zexpl -1)) &
146 + b%XF_FLOOR_WIN (:) * prad_win_fl(:) + b%XF_FLOOR_WALL (:) * prad_wl_fl(:) &
147 + b%XF_FLOOR_ROOF (:) * prad_rf_fl(:) &
148 + pradht_in(:) * b%XF_FLOOR_MASS (:) * (b%XT_MASS(:,1) - zexpl * b%XT_FLOOR(:,1)) &
151 CALL layer_e_budget( b%XT_FLOOR, ptstep, zimpl, b%XHC_FLOOR, b%XTC_FLOOR, b%XD_FLOOR, &
152 za, zb, zc, zy, pdqs_fl )
156 zts_fl_conv(:) = 4./3. * zimpl * b%XT_FLOOR(:,1) + 1./3. * zts_fl(:) * (4 * zexpl - 1.)
157 zts_fl(:) = zexpl * zts_fl(:) + zimpl * b%XT_FLOOR(:,1)
161 prad_fl_ma(:) = pradht_in(:) * (zts_fl(:) - b%XT_MASS(:,1))
162 pconv_fl_bld(:) = zchtc_in_fl(:) * (zts_fl_conv(:) - b%XTI_BLD (:))
166 pflx_bld_fl(:) = - pconv_fl_bld(:) + b%XF_FLOOR_WIN (:) * prad_win_fl(:) &
167 + b%XF_FLOOR_WALL (:) * prad_wl_fl(:) + b%XF_FLOOR_ROOF (:) * prad_rf_fl(:) &
168 + pradht_in(:) * b%XF_FLOOR_MASS(:) * (b%XT_MASS(:,1) - zts_fl(:)) &
173 pimb_fl(:) = pflx_bld_fl(:) - pdqs_fl(:)
175 IF (
lhook)
CALL dr_hook(
'FLOOR_LAYER_E_BUDGET',1,zhook_handle)
subroutine layer_e_budget(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY, PDQS)
subroutine floor_layer_e_budget(B, PTSTEP, PFLX_BLD_FL, PDQS_FL, PIMB_FL, PRADHT_IN, PRAD_WL_FL, PRAD_RF_FL, PRAD_WIN_FL, PLOAD_FL, PRAD_FL_MA, PCONV_FL_BLD)
subroutine layer_e_budget_get_coef(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY)