Follow this procedure:
(1) Obtain the special 30-second land use dataset that has inland lake water defined as category 28 (ocean-connected water is still category 16). The purpose of this is to have a separate land use category that will tell real.exe to do something different than for ocean points.
(2) Put the data in the same place as the normal landuse_30s data file.
(3) Edit the GEOGRID.TBL file. Under the section called name=LANDUSEF make the changes shown below:
name=LANDUSEF
priority=1
dest_type=categorical
z_dim_name=land_cat
landmask_water=modis_30s:17 #Calculate a landmask from this field
landmask_water=default:16,28 #Calculate a landmask from this field
dominant=LU_INDEX
interp_option = modis_30s:nearest_neighbor
interp_option = lake30s:average_gcell(3.0)+search #YOU NEED TO ADD THIS LINE!!
interp_option = 30s:nearest_neighbor+search
interp_option = 2m:four_pt
interp_option = 5m:four_pt
interp_option = 10m:four_pt
interp_option = default:nearest_neighbor+search
rel_path= modis_30s:modis_landuse_20class_30s
rel_path= lake30s:landuse_30s_with_lakes #YOU NEED TO ADD THIS LINE!!
rel_path= 30s:landuse_30s
rel_path= 2m:landuse_2m
rel_path= 5m:landuse_5m
rel_path= 10m:landuse_10m
rel_path= default:landuse_30s
The first change just tells the land mask calculation to recognize both categories 16 and 28 as water, which does not pertain to fixing the lakes problem, but if you do not do this, the land mask will be wrong. The second change tells geogrid how to interpolate when lake30s is requested. The third change tells geogrid where to look for the lake30s data.
(4) In namelist.wps, change geog_data_res as follows:
geog_data_res = 'lake30s+5km','lake30s+2km','lake30s+30s'
This tells geogrid to use lake30s, if available (it will only occur for landuse, since that is the only field for which it is defined in GEOGRID.TBL).
Also add the following line to the &metgrid section:
constants_name = 'TAVGSFC'
This tells metgrid to look for the TAVGSFC field when metgrid is eventually run. TAVGSFC needs to be generated after running ungrib, using the utility program avg_tsfc.exe.
(5) After running ungrib.exe, also run util/avg_tsfc.exe. This creates the TAVGSFC file, which contains, at every grid point, the diurnally-averaged surface air temperature. This si the temperature that inland lakes will be assigned, which is typically better than what the lakes would otherwise be assigned if they were categorized as ocean, but in some situations it may be a degradation of the lake temperature, so be cautious.
(6) Before running WRF, add the following line to the &physics section of the namelist.input file:
num_land_cat = 28
WRF will stop with an error if you do not do this.
(1) Obtain the special 30-second land use dataset that has inland lake water defined as category 28 (ocean-connected water is still category 16). The purpose of this is to have a separate land use category that will tell real.exe to do something different than for ocean points.
(2) Put the data in the same place as the normal landuse_30s data file.
(3) Edit the GEOGRID.TBL file. Under the section called name=LANDUSEF make the changes shown below:
name=LANDUSEF
priority=1
dest_type=categorical
z_dim_name=land_cat
landmask_water=modis_30s:17 #Calculate a landmask from this field
landmask_water=default:16,28 #Calculate a landmask from this field
dominant=LU_INDEX
interp_option = modis_30s:nearest_neighbor
interp_option = lake30s:average_gcell(3.0)+search #YOU NEED TO ADD THIS LINE!!
interp_option = 30s:nearest_neighbor+search
interp_option = 2m:four_pt
interp_option = 5m:four_pt
interp_option = 10m:four_pt
interp_option = default:nearest_neighbor+search
rel_path= modis_30s:modis_landuse_20class_30s
rel_path= lake30s:landuse_30s_with_lakes #YOU NEED TO ADD THIS LINE!!
rel_path= 30s:landuse_30s
rel_path= 2m:landuse_2m
rel_path= 5m:landuse_5m
rel_path= 10m:landuse_10m
rel_path= default:landuse_30s
The first change just tells the land mask calculation to recognize both categories 16 and 28 as water, which does not pertain to fixing the lakes problem, but if you do not do this, the land mask will be wrong. The second change tells geogrid how to interpolate when lake30s is requested. The third change tells geogrid where to look for the lake30s data.
(4) In namelist.wps, change geog_data_res as follows:
geog_data_res = 'lake30s+5km','lake30s+2km','lake30s+30s'
This tells geogrid to use lake30s, if available (it will only occur for landuse, since that is the only field for which it is defined in GEOGRID.TBL).
Also add the following line to the &metgrid section:
constants_name = 'TAVGSFC'
This tells metgrid to look for the TAVGSFC field when metgrid is eventually run. TAVGSFC needs to be generated after running ungrib, using the utility program avg_tsfc.exe.
(5) After running ungrib.exe, also run util/avg_tsfc.exe. This creates the TAVGSFC file, which contains, at every grid point, the diurnally-averaged surface air temperature. This si the temperature that inland lakes will be assigned, which is typically better than what the lakes would otherwise be assigned if they were categorized as ocean, but in some situations it may be a degradation of the lake temperature, so be cautious.
(6) Before running WRF, add the following line to the &physics section of the namelist.input file:
num_land_cat = 28
WRF will stop with an error if you do not do this.