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

Latent Heat Flux Is Zero in Urban Land

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.

Yichen Yang

New member
Hi all,

I need some help to understand what I'm seeing in my modeling results. I'm running a 2-way nested case with double-domain in Guangzhou, China, a city with humid summer. I use WRF and WPS 3.9, MODIS 21-category land use data, and BNU global soil type data, all can be accessed from the wrf user web. ( I used unified Noah LSM, with no mosaic approach used, and no UCM coupled.

I'm observing:
(1) The latent heat flux (LH) for urban grids is consistently zero.
(2) The soil moisture, no matter for what layer (0-10/10-40/40-100/100-200cm), is higher for urban grids than for vegetated grids.

For the zero latent heat flux, I guess the reason is that the urban land is free of vegetation as the dominant approach is used. UCM assumes that urban grids have vegetations but it's not coupled in my case. So this is expected or not too surprising. But am I right?

However, the higher soil moisture for urban grids than for vegetated grids is counterintuitive to me. My results are showing that soil moisture for both type of grids changes with time, but urban soil moisture is consistently higher than vegetation soil moisture by ~0.07. I wonder why that happened. My understanding is that urban grids, at least in the dominant approach, are pure urban, so they are impervious. So what does the 'soil layer' actually mean for such man-made material which cannot hold water? Does it physically make sense?

Thank you very much
Hi Yichen,
have you looked at time series of soil moisture at urban grids? Do they change with time or they are time-invariant? Thanks.
Hi Ming,

I did check that. They did change with time. Please see the picture attached. I picked an urban grid, a forestry grid, and a grassy grid, and plotted their soil moisture at the first layer of GFS data (0-10 cm) with time. A big jump occurred on around July 12th, which I guess is due to model instability? But no matter how they changed, urban moisture was all the way higher than rural moisture.

I learned that soil moisture needs to be spun up for a long time (several years) for dry areas, but for Guangzhou which is a humid city the moisture map showed special variability instantly after initialization. So I'm supposing this is not related to the spinning-up issue.

In addition, I found in VEGPARM.TBL, there are 2 fields (maybe related to transpiration) set to 999 for the urban class. Perhaps they are preventing the urban grids from losing water initialized by the high moisture values from reanalysis data. Again, I'm still confused by the idea 'soil moisture of urban grids'. In a dominant approach, the impervious surface should block all the evaporation regardless of the soil conditions underneath. But please correct me if I'm wrong. Please let me know what you think.

Many thanks,


  • single-grid-plot.png
    127 KB · Views: 491
The results look unreasonable to me, but I don't have an immediate explanation why. I will discuss this with our expert and get back to you. It may take time and thanks for your attention.
Thank you for your work and take you time. I'm moving to the canopy model now to see if I can bypass the strange results since urban class will have vegetation fractions.
Hi Yicheng,
I am sorry to answer late because this issue takes quite a time to figure out.

Looking at the codes, you can find that when UCM is activated, the soil temperature and soil moisture are calculated every time step for each layer using the similar soil solvers as for other land types. It is just the soil moisture parameters used for these urban soil calculations are confined to a very small range so that the urban soil still varies but in a much smaller range compared to other natural land types.

The physical meaning of soil moisture at urban grids would be the soil parameters are set to mimic the impervious surface but not 100% impervious. In reality, not all urban surfaces (e.g., urban parks) are impervious, so that assumption is still reasonable. It is a representation of the mean state for the urban grid. This is my personal understanding.

In module_sf_noahdrv.F, the urban grid is assigned a "NATURAL" land type (category 5 in VEGPARM.TBL) before calling the UCM. If you did not couple the UCM and put sf_urban_phys>0 in namelist, then the urban grid will be treated as a "NATURAL" type. See the following code:
! the "NATURAL" category in the VEGPARM.TBL
	                  IF( IVGTYP(I,J) == ISURBAN    .or. IVGTYP(I,J) == LCZ_1 .or. IVGTYP(I,J) == LCZ_2 .or. &
	                      IVGTYP(I,J) == LCZ_3      .or. IVGTYP(I,J) == LCZ_4 .or. IVGTYP(I,J) == LCZ_5 .or. &
	                      IVGTYP(I,J) == LCZ_6      .or. IVGTYP(I,J) == LCZ_7 .or. IVGTYP(I,J) == LCZ_8 .or. &
	                      IVGTYP(I,J) == LCZ_9      .or. IVGTYP(I,J) == LCZ_10 .or. IVGTYP(I,J) == LCZ_11 ) THEN
	                 SHDFAC = SHDTBL(NATURAL)
If the urban code is not coupled and the sf_urban_phys =0 in namelist,the urban grid will be treated as a generic urban type based on MODIS or USGS land cover with prescribed urban parameters in VEGPARM.TBL and SOILPARM.TBL.

Hope this is helpful for you.
Hello Ming,

I want to thank you for exploring this. I really appreciate your explanation. I took a look at module_sf_noahdrv.F and found the emissivity is set to 0.98 for an urban grid. Is that just for the urban vegetation or for the whole grid?

Say there's a urban grid of LCZ 6 (65% urban and the rest vegetation). For my understanding, the EMISS in the wrf output should be a weighted average of all emissivity values of vegetation, roof, and ground in a grid. My current problem is that, the emissivity of urban vegetation is set to 0.98 (in VEGPARM.TBL), and the emissivity of roof and ground is around 0.91-0.93 (in URBPARM.TBL), but the output emissivity is consistently 0.98 for that grid (LCZ 6). This doesn't seems to be possible if the weighted averaging is true. Otherwise, my model is assuming zero urban fraction for that grid to get an emissivity of 0.98. While I checked the FRC_URB2D, it looks normal.

Any idea? I appreciate any comments!

My understanding is that, emissivity is not a weighted value based on fractions of various landuse types (e.g., urban, vegetation, roof, etc.). It is the value corresponding to the dominant landuse type.
If you turn off urban scheme, then the value in VEGPARM.tbl will be used. If you turn on urban scheme, then the value in URBPARM.tbl will be used.
Unfortunately the values could be different for the same landuse type in different TBL. We need to address this issue to make them consistent.
Hi Ming,

I'm sorry to bother you again. Please let me first thank you for taking time to help me out! After you last explanation, I continued to explore more model results and the codes. I just want to report something I found and would like you to confirm if my understanding is correct.

You mentioned:
"If you turn off urban scheme, then the value in VEGPARM.tbl will be used. If you turn on urban scheme, then the value in URBPARM.tbl will be used."

I'm actually seeing clues that the WRF SLUCM is not exporting the emissivity for the urban portion of an urban grid. The EMISS in the wrfout, if the sf_urban_physics = 1, is taken from VEGPARM.TBL for the rural grids. This is correct. When it comes to an urban grid, it takes the prescribed value of 'Natural' type in the table, which corresponds with the emissivity of the vegetated portion. The emissivity of the urban portion is calculated in module_sf_urban.F using URBPARAM.TBL, but is not delivered to module_sf_noahdrv.F. Below is the part in module_sf_noahdrv.F that calls the SLUCM and combines the returned urban variables (TS_URB2D, SH_URB and so on) with the rural variables using FRC_URB2D. We can see that the surface energy fluxes are combined well, as well as the albedo. But emissivity is not. My guess is that the EMISS_URB is calculated for sure in module_sf_urban.F. It's just not outputted.
            TS_URB2D(I,J) = TS_URB
            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]

This is different in the BEP model (sf_urban_physics = 2). I had a simple run using BEP and the EMISS for the urban grids has good space variations, and is basically around 0.93, unlike SLUCM which gave constantly 0.98. When I checked the part of BEP in module_sf_noahdrv.F (below), I see a line which combines emiss_rural with emiss_urb.
           IF (FRC_URB2D(I,J).GT.0.) THEN
              tsk(i,j)=(max(0., (-1.*rl_up_tot-(1.-emiss(i,j))*glw(i,j) )/emiss(i,j)/sigma_sb))**.25

This maybe is an explanation why SLUCM and BEP give so different emissivity values for urban grids. That is, BEP combines emiss_urb and emiss_rural, but SLUCM didn't do so.

This problem is also related to my recent post: (, from which I guess the surface roughness for the urban portion is calculated in the urban module, but not combined with the rural counterparts in the NOAH module. So ZNT and Z0 in wrfout uses 'Natural' values instead of a combined value.

If you have a chance, please let me know if what I said makes any sense.
I'm sorry for this long reply after this longtime. For research purpose, I really need to know what are the emissivity and ZNT of the urban portion based on those building parameters. I really appreciate your help!

Thanks for the detailed description of the urban issue. I am not an urban model person, but combining your description with related codes in WRF, I guess I agree with you. Your explanation of this issue is correct and that answers the question why ZNT in wrfout is low over land points.
Another related issue is, despite the wrong values of emissivity and ZNT in wrfout, other important physical variables suck as HFX, LH etc are correct because they are reasonably calculated over urban land points and passed into Noah driver.
Thanks again!
Hi Ming,

Thank you for confirming this. I will dig into this to see if I can modify the code a bit to output a representative EM value for the urban portion.

Thank you again!