Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

sensible heat flux calculated by Noah-LSM coupled with BEP_BEM

Yonghang Xie

New member
Dear all

Recently, I read the code in module_sf_noahdrv.F and felt confused about the sensible heat flux calculated by Noah-LSM coupled with BEP_BEM.
Firstly, according to the code from the Call urban part as follows,
ALBEDO(I,J) = FRC_URB2D(I,J)*ALB_URB+(1-FRC_URB2D(I,J))*ALBEDOK ![-]
HFX(I,J) = FRC_URB2D(I,J)*SH_URB+(1-FRC_URB2D(I,J))*SHEAT ![W/m/m]
QFX(I,J) = FRC_URB2D(I,J)*LH_KINEMATIC_URB + (1-FRC_URB2D(I,J))*ETA_KINEMATIC ![kg/m/m/s]
LH(I,J) = FRC_URB2D(I,J)*LH_URB+(1-FRC_URB2D(I,J))*ETA ![W/m/m]
GRDFLX(I,J) = FRC_URB2D(I,J)*G_URB+(1-FRC_URB2D(I,J))*SSOIL ![W/m/m]
TSK(I,J) = FRC_URB2D(I,J)*TS_URB+(1-FRC_URB2D(I,J))*T1 ![K]
Q1 = FRC_URB2D(I,J)*QS_URB+(1-FRC_URB2D(I,J))*Q1 ![-]

it tells us that the gird sensible heat flux (HFX) is calculated by the proportions of the urban area and the vegetated area. So is latent heat flux.

Next, when it goes to the code from the part of Call BEP or Call BEP_BEM as follows,
IF (FRC_URB2D(I,J).GT.0.) THEN
rl_up_rural=-emiss_rural(i,j)*sigma_sb*(tsk_rural(i,j)**4.)-(1.-emiss_rural(i,j))*glw(i,j) !sigma_sb=5.67e-08 GLW downward long wave flux at ground surface (W/m^2)
rl_up_tot=(1.-frc_urb2d(i,j))*rl_up_rural+frc_urb2d(i,j)*rl_up_urb(i,j)
emiss(i,j)=(1.-frc_urb2d(i,j))*emiss_rural(i,j)+frc_urb2d(i,j)*emiss_urb(i,j)
ts_urb2d(i,j)=(max(0.,(-rl_up_urb(i,j)-(1.-emiss_urb(i,j))*glw(i,j))/emiss_urb(i,j)/sigma_sb))**0.25
tsk(i,j)=(max(0., (-1.*rl_up_tot-(1.-emiss(i,j))*glw(i,j) )/emiss(i,j)/sigma_sb))**.25
rs_abs_tot=(1.-frc_urb2d(i,j))*swdown(i,j)*(1.-albedo(i,j))+frc_urb2d(i,j)*rs_abs_urb(i,j)
if(swdown(i,j).gt.0.)then
albedo(i,j)=1.-rs_abs_tot/swdown(i,j)
else
albedo(i,j)=alb_rural(i,j)
endif
! rename *_urb to sh_urb2d,lh_urb2d,g_urb2d,rn_urb2d
grdflx(i,j)= (1.-frc_urb2d(i,j))*grdflx_rural(i,j)+frc_urb2d(i,j)*grdflx_urb(i,j)

qfx(i,j)=(1.-frc_urb2d(i,j))*qfx_rural(i,j)+qfx_urb(i,j)

! lh(i,j)=(1.-frc_urb2d(i,j))*qfx_rural(i,j)*xlv
lh(i,j)=qfx(i,j)*xlv
HFX(I,J) = HFX_URB(I,J)+(1-FRC_URB2D(I,J))*HFX_RURAL(I,J) ![W/m/m]

only the ground heat flux (grdflx) is calculated as the way of Call urban part. The sensible heat flux (HFX) and surface moisture flux (qfx) for latent heat flux are not multiplied by the fraction of the urban area which is different from the code of Call urban part.
I am confused about the calculation of the grid-scale sensible (latent) heat flux in BEP or BEP_BEM, because according to the description in the paper The integrated WRF/urban modeling system: development, evaluation, and applications to urban environmental problems by Chen Fei et al, the total grid-scale sensible heat flux can be estimated as follows:
QH = Fveg × QHveg + Furb × QHurb
where QH is the total sensible heat flux from the surface to the WRF model lowest atmospheric layer, Fveg is the fractional coverage of natural surfaces, such as grassland, shrubs, crops, and trees in cities, Furb is the fractional coverage of impervious surfaces, such as buildings, roads, and railways. QHveg is the sensible heat flux from Noah for natural surfaces, and QHurb is the sensible heat flux from the UCM for artificial surfaces.

I am grateful that someone can tell me some reasons or tips for my question.
 
Hi,
I apologize for the delay in response. I wanted to run this by a colleague who knows a bit more about this part of the code. They said they think this is because the heat and moisture fluxes (hfx_urb and qfx_urb) are derived from a_t_bep and a_q_bep, and both have been multiplied by frc_urb2d just above the part of the code you are looking at. Hopefully that helps!
 
Hi, Kwerner

Thank you so much for your reply.
As you said, I have confirmed that the codes to calculate a_t_bep and a_q_bep have been integrated with frc_urb2d before going to hfx_urb and qfx_urb.
So the formula for HFX (or QFX) is reasonable.
 
Top