7 pflx_bld_floor, pdqs_floor, pimb_floor, &
8 pf_floor_mass, pf_floor_wall, pf_floor_win, &
9 pf_floor_roof, pradht_in, &
10 pts_mass, prad_wall_floor, prad_roof_floor, &
11 prad_win_floor, pload_floor, pti_bld, &
12 prad_floor_mass, pconv_floor_bld )
81 USE modi_layer_e_budget_get_coef
82 USE modi_layer_e_budget
85 USE yomhook
,ONLY : lhook, dr_hook
86 USE parkind1
,ONLY : jprb
92 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pt_floor
93 REAL,
INTENT(IN) :: ptstep
94 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc_floor
95 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc_floor
97 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd_floor
98 REAL,
DIMENSION(:),
INTENT(OUT) :: pflx_bld_floor
99 REAL,
DIMENSION(:),
INTENT(OUT) :: pdqs_floor
100 REAL,
DIMENSION(:),
INTENT(OUT) :: pimb_floor
101 REAL,
DIMENSION(:),
INTENT(IN) :: pf_floor_mass
102 REAL,
DIMENSION(:),
INTENT(IN) :: pf_floor_wall
103 REAL,
DIMENSION(:),
INTENT(IN) :: pf_floor_win
104 REAL,
DIMENSION(:),
INTENT(IN) :: pf_floor_roof
105 REAL,
DIMENSION(:),
INTENT(IN) :: pradht_in
107 REAL,
DIMENSION(:),
INTENT(IN) :: pts_mass
108 REAL,
DIMENSION(:),
INTENT(IN) :: prad_roof_floor
109 REAL,
DIMENSION(:),
INTENT(IN) :: prad_wall_floor
110 REAL,
DIMENSION(:),
INTENT(IN) :: prad_win_floor
111 REAL,
DIMENSION(:),
INTENT(IN) :: pti_bld
112 REAL,
DIMENSION(:),
INTENT(IN) :: pload_floor
113 REAL,
DIMENSION(:),
INTENT(OUT) :: prad_floor_mass
114 REAL,
DIMENSION(:),
INTENT(OUT) :: pconv_floor_bld
122 REAL,
DIMENSION(SIZE(PT_FLOOR,1),SIZE(PT_FLOOR,2)) :: za,&
127 REAL,
DIMENSION(SIZE(PT_FLOOR,1)) :: zts_floor
128 REAL,
DIMENSION(SIZE(PT_FLOOR,1)) :: zts_floor_conv
130 REAL,
DIMENSION(SIZE(PT_FLOOR,1)) :: zchtc_in_floor
133 REAL(KIND=JPRB) :: zhook_handle
136 IF (lhook) CALL dr_hook(
'FLOOR_LAYER_E_BUDGET',0,zhook_handle)
140 zchtc_in_floor(:) =
chtc_up_doe(pt_floor(:,1), pti_bld(:))
141 DO jj=1,
SIZE(zchtc_in_floor)
142 zchtc_in_floor(jj) = max(1., zchtc_in_floor(jj))
150 zts_floor(:) = pt_floor(:,1)
152 zb(:,1) = zb(:,1) + zimpl * &
153 (zchtc_in_floor(:)*4./3. + pradht_in(:) * pf_floor_mass(:))
157 + zchtc_in_floor(:) * (pti_bld(:) - 1./3. * pt_floor(:, 1) * (4* zexpl -1)) &
158 + pf_floor_win(:) * prad_win_floor(:) &
159 + pf_floor_wall(:) * prad_wall_floor(:) &
160 + pf_floor_roof(:) * prad_roof_floor(:) &
161 + pradht_in(:) * pf_floor_mass(:) * (pts_mass(:) - zexpl * pt_floor(:,1)) &
164 CALL
layer_e_budget( pt_floor, ptstep, zimpl, phc_floor, ptc_floor, pd_floor, &
165 za, zb, zc, zy, pdqs_floor )
169 zts_floor_conv(:) = 4./3. * zimpl * pt_floor(:,1) + 1./3. * zts_floor(:) * (4 * zexpl - 1.)
170 zts_floor(:) = zexpl * zts_floor(:) + zimpl * pt_floor(:,1)
174 prad_floor_mass(:) = pradht_in(:) * (zts_floor(:) - pts_mass(:))
175 pconv_floor_bld(:) = zchtc_in_floor(:) * (zts_floor_conv(:) - pti_bld(:))
179 pflx_bld_floor(:) = - pconv_floor_bld(:) &
180 + pf_floor_win(:) * prad_win_floor(:) &
181 + pf_floor_wall(:) * prad_wall_floor(:) &
182 + pf_floor_roof(:) * prad_roof_floor(:) &
183 + pradht_in(:) * pf_floor_mass(:) * (pts_mass(:) - zts_floor(:)) &
188 pimb_floor(:) = pflx_bld_floor(:) - pdqs_floor(:)
190 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(PT_FLOOR, PTSTEP, PHC_FLOOR, PTC_FLOOR, PD_FLOOR, PFLX_BLD_FLOOR, PDQS_FLOOR, PIMB_FLOOR, PF_FLOOR_MASS, PF_FLOOR_WALL, PF_FLOOR_WIN, PF_FLOOR_ROOF, PRADHT_IN, PTS_MASS, PRAD_WALL_FLOOR, PRAD_ROOF_FLOOR, PRAD_WIN_FLOOR, PLOAD_FLOOR, PTI_BLD, PRAD_FLOOR_MASS, PCONV_FLOOR_BLD)
subroutine layer_e_budget_get_coef(PT, PTSTEP, PIMPL, PHC, PTC, PD, PA, PB, PC, PY)