I run WRF-ARW with ERA5 as an output, with two nested domains over Alaska (12 and 4 km). I use sf_lake_physics = 1 and use_lakedepth = 1 with MODIS lakes and the optional lake depth data. The snow inputs are also from ERA5, but with some custom pre-processing. Suffice it to say we've put a lot of thought into our snow inputs.
We originally neglected to switch on lake physics and just did some successful troubleshooting of temperature anomalies over lakes (lakes much too warm in the winter). At the WPS stage, I run avg_tsfc.exe between ungrib and metgrid, and pick up the field TAVGSFC via constants_name = 'TAVGSFC' in namelist.wps. We're now happy with the skin temperatures over our lakes - this is not the problem I'm asking about.
All of this works as described. The one odd thing when I closely inspect the output data is that over the areas that get landuse class 21 ("lake"), the value for SNOW is always 0. Even if there is adjacent snow, even if there is snow accumulation. Is this normal, and/or is there a way for me to make it snow on frozen lakes?
I copy my template for namelist.input below for all the physics options etc. (It gets filled by a Python script.)
We originally neglected to switch on lake physics and just did some successful troubleshooting of temperature anomalies over lakes (lakes much too warm in the winter). At the WPS stage, I run avg_tsfc.exe between ungrib and metgrid, and pick up the field TAVGSFC via constants_name = 'TAVGSFC' in namelist.wps. We're now happy with the skin temperatures over our lakes - this is not the problem I'm asking about.
All of this works as described. The one odd thing when I closely inspect the output data is that over the areas that get landuse class 21 ("lake"), the value for SNOW is always 0. Even if there is adjacent snow, even if there is snow accumulation. Is this normal, and/or is there a way for me to make it snow on frozen lakes?
I copy my template for namelist.input below for all the physics options etc. (It gets filled by a Python script.)
Code:
&time_control
run_days = 0,
run_hours = 54,
run_minutes = 0,
run_seconds = 0,
start_year = {startyear:s}, {startyear:s},
start_month = {startmonth:s}, {startmonth:s},
start_day = {startday:s}, {startday:s},
start_hour = {starthours:s}, {starthours:s},
end_year = {endyear:s}, {endyear:s},
end_month = {endmonth:s}, {endmonth:s},
end_day = {endday:s}, {endday:s},
end_hour = {endhours:s}, {endhours:s},
interval_seconds = 10800
input_from_file = .true.,.true.,
iofields_filename = 'iovars_d01.txt', 'iovars_d02.txt',
ignore_iofields_warning = .true.,
history_interval = 60, 60,
frames_per_outfile = 6, 6,
restart = .false.,
restart_interval = 7200,
io_form_history = 2
io_form_restart = 2
io_form_input = 2
io_form_boundary = 2
io_form_auxinput4 = 2
auxinput4_inname = 'wrflowinp_d<domain>',
auxinput4_interval = 180, 180,
/
&domains
time_step = {timestep:s},
time_step_fract_num = 0,
time_step_fract_den = 1,
max_dom = 2,
e_we = 265, 421,
e_sn = 205, 451,
e_vert = 50, 50,
p_top_requested = 5000,
num_metgrid_levels = 38,
num_metgrid_soil_levels = 4,
dx = 12000, 4000,
dy = 12000, 4000,
grid_id = 1, 2,
parent_id = 0, 1,
i_parent_start = 1, 68,
j_parent_start = 1, 27,
parent_grid_ratio = 1, 3,
parent_time_step_ratio = 1, 3,
parent_time_step_ratio = 1, 3,
feedback = 1,
smooth_option = 0
/
&physics
mp_physics = 10, 10,
ra_lw_physics = 4, 4,
ra_sw_physics = 4, 4,
radt = 5, 5,
sf_sfclay_physics = 91, 91,
sf_surface_physics = 2, 2,
bl_pbl_physics = 1, 1,
bldt = 0, 0,
cu_physics = 3, 0,
cudt = 0, 0,
icloud = 1,
num_land_cat = 21,
sf_lake_physics = 1, 1,
lakedepth_default = 10., 10.,
use_lakedepth = 1,
sf_urban_physics = 0, 0,
fractional_seaice = 1,
sst_update = 1,
/
&fdda
grid_fdda = 2
gfdda_inname = "wrffdda_d<domain>"
gfdda_interval_m = 360
gfdda_end_h = 54
io_form_gfdda = 2
fgdt = 0
if_no_pbl_nudging_uv = 0
if_no_pbl_nudging_t = 0
if_no_pbl_nudging_q = 0
if_no_pbl_nudging_ph = 0
if_zfac_uv = 0
k_zfac_uv = 10
if_zfac_t = 0
k_zfac_t = 10
if_zfac_q = 0
k_zfac_q = 10
if_zfac_ph = 0
k_zfac_ph = 10
guv = 0.0003
gt = 0.0003
gq = 0.0003
gph = 0.0003
dk_zfac_uv = 1
dk_zfac_t = 1
dk_zfac_ph = 1
xwavenum = 3
ywavenum = 3
if_ramping = 0
dtramp_min = 60.0
/
&dynamics
hybrid_opt = 2,
w_damping = 0,
diff_opt = 2, 2,
km_opt = 4, 4,
diff_6th_opt = 0, 0,
diff_6th_factor = 0.12, 0.12,
base_temp = 290.
damp_opt = 3,
zdamp = 5000., 5000.,
dampcoef = 0.2, 0.2,
khdif = 0, 0,
kvdif = 0, 0,
non_hydrostatic = .true., .true.,
moist_adv_opt = 1, 1,
scalar_adv_opt = 1, 1,
gwd_opt = 1, 0,
/
&bdy_control
spec_bdy_width = 5,
specified = .true.
/
&grib2
/
&namelist_quilt
nio_tasks_per_group = 0,
nio_groups = 1,