Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Surface Energy Balance Ground Heat Flux

kkoepnick

Kirstin Koepnick
New Member
I am trying to replicate the CESM2(CAM5) output for QICE_MELT and QSNOMELT, which I understand are calculated from the surface energy balance. However, I’m unsure about the correct formulation of the ground heat flux term.

Right now, I’m using the following variables from the land model:
  • FSA for net shortwave
  • FIRA for net longwave
  • FSH for sensible heat flux
  • EFLX_LH_TOT for latent heat flux
  • FGR for ground heat flux
I’ve been assuming the energy balance as:
SEB = FSA – FIRA – FSH – EFLX_LH_TOT – FGR,
and calculating melt rate as SEB / (latent heat of fusion × density of water).

Despite this, I’m still unable to reproduce the values in QICE_MELT + QSNOMELT. Does anyone know whether FGR is the correct variable to use for ground heat flux in this context, or if there are additional terms I might be missing in the energy balance (maybe FSM?)? Also, is it correct to assume that the surface mass melt is equivalent to QICE_MELT + QSNOMELT ?

Any insight or tips would be greatly appreciated! Thank you in advance.

Best,
Kirstin
 

oleson

Keith Oleson
CSEG and Liaisons
Staff member
I doubt my post here is going to answer your question about QICE_MELT and QSNOMELT. If not, I will move this to the CISM Forum since from a previous email it looked like you were trying to reconstruct those fields over ice sheets. But the surface energy balance in CLM (e.g., release-cesm2.1.5) is checked at the patch level:

if (.not. lun%urbpoi(l)) then
errseb(p) = sabv(p) + sabg_chk(p) + forc_lwrad(c) - eflx_lwrad_out(p) &
- eflx_sh_tot(p) - eflx_lh_tot(p) - eflx_soil_grnd(p)
else
errseb(p) = sabv(p) + sabg(p) &
- eflx_lwrad_net(p) &
- eflx_sh_tot(p) - eflx_lh_tot(p) - eflx_soil_grnd(p) &
+ eflx_wasteheat_patch(p) + eflx_heat_from_ac_patch(p) + eflx_traffic_patch(p)
end if

So errseb should be near zero for all patches (the error check is > 1.e-7).

The corresponding history fields are:
sabv -> SABV
sabg -> SABG
sabg_chk -> not output
forc_lwrad -> FLDS
eflx_lwrad_out -> FIRE
eflx_sh_tot -> FSH
eflx_lh_tot -> EFLX_LH_TOT
eflx_soil_grnd -> FGR
eflx_lwrad_net -> FIRA
eflx_wasteheat -> WASTEHEAT
eflx_heat_from_ac -> HEAT_FROM_AC
eflx_traffic is zero everywhere.

So from history fields, including urban areas, the model should balance everywhere as:

SABV + SABG - FIRA - FSH - EFLX_LH_TOT - FGR + WASTEHEAT + HEAT_FROM_AC

FSA = SABV + SABG.
FGR here includes snow melt (FSM).

Unfortunately, there are gridcells where sabg is not the same as sabg_chk and so one can't quite reconstruct energy balance at gridcell level from history fields.

Your expression is similar except that it doesn't include the urban terms and any snow melt is already contained in the FGR term.
 

kkoepnick

Kirstin Koepnick
New Member
Thank you for your response! That is very helpful! But yes I am curious about SEB over ice sheets. So would that be the reason why melt from the SEB reconstructed from history fields does not match QICE_MELT + QSNOMELT? Perhaps moving to CISM Forum would make sense. Thank you again.
 
Top