Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
working hill example with specified tign
- Loading branch information
Showing
6 changed files
with
254 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
Link namelist.input to one of the supplied files: | ||
|
||
namelist.input.hill the original hill example with line ignition | ||
namelist.input.tign ellipsoidal ignition up to specified time; run create_tign.m first to make the input file | ||
namelist.input.smallhil a smaller hill example | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
function tign=create_tign | ||
% nodify to your liking | ||
[ii,jj]=meshgrid(1:420); | ||
tign=sqrt(2*(ii-200).^2+(jj-171).^2)+1; | ||
% mesh(tign) | ||
write_array_2d('input_tign_g',tign) | ||
end | ||
function write_array_2d(filename,a) | ||
% write_array_2d(filename,a) | ||
% Purpose: write 2d matrix as input to WRF-Fire | ||
% | ||
% Arguments | ||
% filename string, the name of the file | ||
% a 2d matrix, the array to be written | ||
% | ||
% Example: write_array_2d('input_ht',ht) | ||
% | ||
% See also: | ||
% read_array_2d read the file back by a=read_array_2d(filename) | ||
% image_array_2d visualize the array by image_array_2d(a) | ||
[m,n]=size(a); | ||
h=fopen(filename,'w'); | ||
fprintf(h,'%i\n',m,n); | ||
fprintf(h,'%.7g\n',a'); | ||
fclose(h); | ||
end |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,197 @@ | ||
! this is namelist input for perimeter ignition by specifying time of ignition in file input_tign_g | ||
! this file has format: m=number of points in x direction, n=number of points in y direction, all tign(i,j) with i varying faster | ||
! and it can be created by running create_tign.m in matlab or octave | ||
|
||
|
||
&time_control | ||
run_days = 0, | ||
run_hours = 0, | ||
run_minutes = 5, | ||
run_seconds = 0, | ||
start_year = 0001, 0001, 0001, | ||
start_month = 01, 01, 01, | ||
start_day = 01, 01, 01, | ||
start_hour = 00, 00, 00, | ||
start_minute = 00, 00, 00, | ||
start_second = 00, 00, 00, | ||
end_year = 0001, 0001, 0001, | ||
end_month = 01, 01, 01, | ||
end_day = 01, 01, 01, | ||
end_hour = 00, 00, 00, | ||
end_minute = 600, 600, 600, | ||
end_second = 00, 00, 00, | ||
history_interval_s = 5, 30, 30, | ||
frames_per_outfile = 10, 1000, 1000, | ||
restart = .false., | ||
restart_interval = 1 | ||
io_form_history = 2 | ||
io_form_restart = 2 | ||
io_form_input = 2 | ||
io_form_boundary = 2 | ||
debug_level = 1 | ||
/ | ||
|
||
&domains | ||
time_step = 0, | ||
!time_step = 5, | ||
time_step_fract_num = 25, | ||
time_step_fract_den = 100, | ||
max_dom = 1, | ||
s_we = 1, 1, 1, | ||
e_we = 42, 43, 43, | ||
s_sn = 1, 1, 1, | ||
e_sn = 42, 43, 43, | ||
s_vert = 1, 1, 1, | ||
e_vert = 41, 41, 41, | ||
dx = 60, 30, 10, | ||
dy = 60, 30, 10, | ||
ztop = 1500, 1500, 1500, | ||
grid_id = 1, 2, 3, | ||
parent_id = 0, 1, 2, | ||
i_parent_start = 0, 1, 1, | ||
j_parent_start = 0, 1, 1, | ||
parent_grid_ratio = 1, 2, 3, | ||
parent_time_step_ratio = 1, 2, 3, | ||
feedback = 1, | ||
smooth_option = 0 | ||
sr_x = 10, 0, 0 | ||
sr_y = 10, 0, 0 | ||
/ | ||
|
||
&physics | ||
mp_physics = 0, 0, 0, | ||
ra_lw_physics = 0, 0, 0, | ||
ra_sw_physics = 0, 0, 0, | ||
radt = 30, 30, 30, | ||
sf_sfclay_physics = 0, 0, 0, | ||
sf_surface_physics = 0, 0, 0, | ||
bl_pbl_physics = 0, 0, 0, | ||
bldt = 0, 0, 0, | ||
cu_physics = 0, 0, 0, | ||
cudt = 0, 0, 0, | ||
isfflx = 1, | ||
ifsnow = 0, | ||
icloud = 0, | ||
num_soil_layers = 5, | ||
mp_zero_out = 0, | ||
/ | ||
|
||
&fdda | ||
/ | ||
|
||
&dynamics | ||
rk_ord = 3, | ||
diff_opt = 2, | ||
km_opt = 2, | ||
damp_opt = 0, | ||
zdamp = 5000., 5000., 5000., | ||
dampcoef = 0.2, 0.2, 0.2 | ||
khdif = 0.05, 0.05, 0.05, | ||
kvdif = 0.05, 0.05, 0.05, | ||
smdiv = 0.1, 0.1, 0.1, | ||
emdiv = 0.01, 0.01, 0.01, | ||
epssm = 0.1, 0.1, 0.1 | ||
mix_full_fields = .true., .true., .true., | ||
non_hydrostatic = .true., .true., .true., | ||
h_mom_adv_order = 5, 5, 5, | ||
v_mom_adv_order = 3, 3, 3, | ||
h_sca_adv_order = 5, 5, 5, | ||
v_sca_adv_order = 3, 3, 3, | ||
time_step_sound = 20, 20, 20, | ||
moist_adv_opt = 1, 1, 1, | ||
scalar_adv_opt = 1, 1, 1, | ||
/ | ||
|
||
&bdy_control | ||
periodic_x = .false.,.false.,.false., | ||
symmetric_xs = .false.,.false.,.false., | ||
symmetric_xe = .false.,.false.,.false., | ||
open_xs = .true., .false.,.false., | ||
open_xe = .true., .false.,.false., | ||
periodic_y = .false.,.false.,.false., | ||
symmetric_ys = .false.,.false.,.false., | ||
symmetric_ye = .false.,.false.,.false., | ||
open_ys = .true., .false.,.false., | ||
open_ye = .true., .false.,.false., | ||
nested = .false., .true., .true., | ||
/ | ||
|
||
&grib2 | ||
/ | ||
|
||
&namelist_quilt | ||
nio_tasks_per_group = 0, | ||
nio_groups = 1, | ||
/ | ||
|
||
&fire ! be sure to set sr_x,sr_y in domains-namelist (to set refinement in x,y) | ||
ifire = 2, ! integer, = 0: no fire, 2=turn on fire model | ||
fire_fuel_read = 0, ! integer, -1: from WPS, 0= use fire_fuel_cat, 1= by altitude | ||
fire_fuel_cat = 3, ! integer, if specified which fuel category? | ||
! ignition | ||
fire_replay_time =20, ! replay fire from input_tign_g until this, or set to 0 or less for no replay | ||
fire_num_ignitions = 0, ! integer, only the first fire_num_ignition used, up to 5 allowed | ||
fire_ignition_ros1 = 0.1, ! ignition rate of spread, m/s | ||
fire_ignition_start_x1 = 1005, ! start points of ignition lines, in m from lower left corner | ||
fire_ignition_start_y1 = 500, ! start points of ignition lines, in m from lower left corner | ||
fire_ignition_end_x1 = 1005, ! end points of ignition lines, in m from lower left corner | ||
fire_ignition_end_y1 = 1900, ! end points of ignition lines, in m from lower left corner | ||
fire_ignition_radius1 = 18, ! all within this radius will ignite, > fire mesh step | ||
fire_ignition_start_time1 = 2, ! sec for ignition from the start | ||
fire_ignition_end_time1 =502, ! sec for ignition from the start | ||
fire_ignition_ros2 = 0.01, ! ignition rate of spread, m/s | ||
fire_ignition_start_x2 = 1503, ! start points of ignition lines, in m from lower left corner | ||
fire_ignition_start_y2 = 500, ! start points of ignition lines, in m from lower left corner | ||
fire_ignition_end_x2 = 1503, ! end points of ignition lines, in m from lower left corner | ||
fire_ignition_end_y2 = 1900, ! end points of ignition lines, in m from lower left corner | ||
fire_ignition_radius2 = 18, ! all within this radius will ignite, > fire mesh step | ||
fire_ignition_start_time2 = 3, ! sec for ignition from the start! end ignition for sfire | ||
fire_ignition_end_time2 =503, ! sec for ignition from the start! end ignition for sfire | ||
fire_ignition_ros3 = 0.1, ! ignition rate of spread, m/s | ||
!fire_ignition_start_x3 = 1400, ! start points of ignition lines, in m from lower left corner | ||
!fire_ignition_start_y3 = 1400, ! start points of ignition lines, in m from lower left corner | ||
!fire_ignition_end_x3 = 1400, ! end points of ignition lines, in m from lower left corner | ||
!fire_ignition_end_y3 = 1400, ! end points of ignition lines, in m from lower left corner | ||
!fire_ignition_radius3 = 50, ! all within this radius will ignite, > fire mesh step | ||
!fire_ignition_start_time3 = 4, ! sec for ignition from the start! end ignition for sfire | ||
!fire_ignition_end_time3 = 4, ! sec for ignition from the start! end ignition for sfire | ||
! | ||
! verbosity | ||
fire_print_msg = 1, ! 1 print fire debugging messages | ||
fire_print_file = 0, ! 1 write files for matlab | ||
! | ||
! experiments | ||
! | ||
|
||
fire_const_time = -1., ! (s) if >0, time from start to stop fire evolution and keep heat output constant | ||
fire_const_grnhfx = -1, ! (W/s) if both >=0, use this flux (meant to be used when fire_const_time=ignition time) | ||
fire_const_grnqfx = -1, ! (W/s) if both >=0, use this flux (meant to be used when fire_const_time=ignition time) | ||
fire_test_steps=0, ! >0 = on first call, do specified number of steps and terminate (testing only) | ||
fire_mountain_type=1, ! in ideal: 0=none, 1= hill, 2=EW ridge, 3=NS ridge | ||
fire_mountain_height=100., ! (m) ideal mountain height | ||
fire_mountain_start_x=900., ! (m) coord of start of the mountain from lower left corder (just like ignition) | ||
fire_mountain_start_y=1000., ! (m) coord of start of the mountain from lower left corder (just like ignition) | ||
fire_mountain_end_x=1400., ! (m) coord of end of the mountain from lower left corder (just like ignition) | ||
fire_mountain_end_y=1600., ! (m) coord of end of the mountain from lower left corder (just like ignition) | ||
fire_topo_from_atm=0, ! 0 = fire mesh topo set from fine-res data, 1 = populate by interpolating from atmosphere | ||
!delt_perturbation = 3.0, ! Temperature perturbation for creating cold (negative) / warm (positive) bubble [K], 0 turns it off | ||
!xrad_perturbation = 10000.0, ! Horizontal radius of the bubble in E-W direction [m] | ||
!yrad_perturbation = 10000.0, ! Horizontal radius of the bubble in N-S direction [m] | ||
!zrad_perturbation = 1500.0, ! Vertical radius of the bubble [m] | ||
!hght_perturbation = 1500.0, ! Perturbation height - height at which the warm/cold bubble will be suspended [m] | ||
|
||
! | ||
! method switches for developers only, do not change! | ||
! | ||
fire_boundary_guard = -1, ! integer, number of cells to stop when fire close to the domain boundary, -1 turn off | ||
fire_fuel_left_irl=2, ! refinement to integrate fuel_left, must be even | ||
fire_fuel_left_jrl=2, ! refinement to integrate fuel_left, must be even | ||
fire_atm_feedback=1.0, ! real, multiplier for heat fluxes, 1.=normal, 0.=turn off two-way coupling | ||
fire_back_weight=0.5, ! RK timestepping coefficient, 0=forward, 0.5=Heun | ||
fire_grows_only=1, ! if >0 level set function cannot increase = fire can only grow | ||
fire_viscosity=0.4, ! artificial viscosity in level set method (max 1, needed with fire_upwinding=0) | ||
fire_upwinding=3, ! 0=none, 1=standard, 2=godunov, 3=eno, 4=sethian | ||
fire_fuel_left_method=1, ! for now, use 1 only | ||
fire_lfn_ext_up=1.0, ! 0.=extend level set function at boundary by reflection, 1.=always up | ||
fire_advection=0, ! 0 = cawfe, 1 = use abs speed/slope in spread rate, then project on normal to fireline | ||
/ |