From aa3e80cde268f7758c4cd4f55e2e53147fdffc73 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Sat, 31 Oct 2009 18:45:46 -0600 Subject: [PATCH 01/14] cp small -> hill --- wrfv2_fire/test/em_fire/hill/ideal.exe | 1 + wrfv2_fire/test/em_fire/hill/input_sounding | 48 ++++++ wrfv2_fire/test/em_fire/hill/namelist.fire | 41 +++++ wrfv2_fire/test/em_fire/hill/namelist.input | 180 ++++++++++++++++++++ wrfv2_fire/test/em_fire/hill/wrf.exe | 1 + 5 files changed, 271 insertions(+) create mode 120000 wrfv2_fire/test/em_fire/hill/ideal.exe create mode 100644 wrfv2_fire/test/em_fire/hill/input_sounding create mode 100644 wrfv2_fire/test/em_fire/hill/namelist.fire create mode 100644 wrfv2_fire/test/em_fire/hill/namelist.input create mode 120000 wrfv2_fire/test/em_fire/hill/wrf.exe diff --git a/wrfv2_fire/test/em_fire/hill/ideal.exe b/wrfv2_fire/test/em_fire/hill/ideal.exe new file mode 120000 index 00000000..73c506f3 --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/ideal.exe @@ -0,0 +1 @@ +../ideal.exe \ No newline at end of file diff --git a/wrfv2_fire/test/em_fire/hill/input_sounding b/wrfv2_fire/test/em_fire/hill/input_sounding new file mode 100644 index 00000000..0f91581b --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/input_sounding @@ -0,0 +1,48 @@ + 1000.00 300.00 14.00 + 250.00 300.45 14.00 -7.88 -3.58 + 750.00 301.25 14.00 -6.94 -0.89 + 1250.00 302.47 13.50 -5.17 1.33 + 1750.00 303.93 11.10 -2.76 2.84 + 2250.00 305.31 9.06 0.01 3.47 + 2750.00 306.81 7.36 2.87 3.49 + 3250.00 308.46 5.95 5.73 3.49 + 3750.00 310.03 4.78 8.58 3.49 + 4250.00 311.74 3.82 11.44 3.49 + 4750.00 313.48 3.01 14.30 3.49 + 5250.00 315.24 2.36 17.15 3.49 + 5750.00 317.18 1.80 20.01 3.49 + 6250.00 319.02 1.41 22.87 3.49 + 6750.00 320.88 1.07 25.73 3.49 + 7250.00 322.80 0.80 27.15 3.49 + 7750.00 324.87 0.60 27.15 3.49 + 8250.00 326.86 0.43 27.15 3.49 + 8750.00 328.89 0.32 27.15 3.49 + 9250.00 330.39 0.24 27.15 3.49 + 9750.00 332.80 0.17 27.15 3.49 + 10250.00 335.23 0.10 27.15 3.49 + 10750.00 337.31 0.08 27.15 3.49 + 11250.00 339.55 0.05 27.15 3.49 + 11750.00 342.82 0.03 27.15 3.49 + 12250.00 349.88 0.04 27.15 3.49 + 12750.00 357.34 0.04 27.15 3.49 + 13250.00 364.91 0.04 27.15 3.49 + 13750.00 373.22 0.04 27.15 3.49 + 14250.00 381.67 0.04 27.15 3.49 + 14750.00 390.29 0.04 27.15 3.49 + 15250.00 398.91 0.04 27.15 3.49 + 15750.00 407.53 0.04 27.15 3.49 + 16250.00 416.15 0.04 27.15 3.49 + 16750.00 424.77 0.04 27.15 3.49 + 17250.00 433.39 0.04 27.15 3.49 + 17750.00 442.01 0.04 27.15 3.49 + 18250.00 450.63 0.04 27.15 3.49 + 18750.00 459.25 0.04 27.15 3.49 + 19250.00 467.87 0.04 27.15 3.49 + 19750.00 476.49 0.04 27.15 3.49 + 20250.00 485.11 0.04 27.15 3.49 + 20750.00 493.73 0.04 27.15 3.49 + 21250.00 502.35 0.04 27.15 3.49 + 21750.00 510.97 0.04 27.15 3.49 + 22250.00 519.59 0.04 27.15 3.49 + 22750.00 528.21 0.04 27.15 3.49 + diff --git a/wrfv2_fire/test/em_fire/hill/namelist.fire b/wrfv2_fire/test/em_fire/hill/namelist.fire new file mode 100644 index 00000000..8a7ae12a --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/namelist.fire @@ -0,0 +1,41 @@ +&fuel_scalars ! scalar fuel constants +cmbcnst = 17.433e+06, ! J/kg combustion heat dry fuel +hfgl = 17.e4 , ! W/m^2 heat flux to ignite canopy +fuelmc_g = 0.08, ! ground fuel moisture, set = 0 for dry +!jc fuelmc_g = 0.09, ! ground fuel moisture, set = 0 for dry +fuelmc_c = 1.00, ! canopy fuel moisture, set = 0 for dry +nfuelcats = 13, ! number of fuel categories used +no_fuel_cat = 14 ! extra category for no fuel +/ + +&fuel_categories + fgi = 0.166, 0.897, 0.675, 2.468, 0.785, 1.345, 1.092, +!jc fgi= 0.166, 0.897, 1.076, 2.468, 0.785, 1.345, 1.092 + 1.121, 0.780, 2.694, 2.582, 7.749, 13.024, 1.e-7, + fueldepthm=0.305, 0.305, 0.762, 1.829, 0.61, 0.762, 0.762, + 0.061, 0.061, 0.305, 0.305, 0.701, 0.914, 0.305, + savr = 3500., 2784., 1500., 1739., 1683., 1564., 1562., + 1889., 2484., 1764., 1182., 1145., 1159., 3500., + fuelmce = 0.12, 0.15, 0.25, 0.20, 0.20, 0.25, 0.40, + 0.30, 0.25, 0.25, 0.15, 0.20, 0.25, 0.12, + fueldens = 32.,32.,32.,32.,32.,32.,32. , + 32.,32.,32.,32.,32.,32.,32. , ! 32 if solid, 19 if rotten + st = 0.0555, 0.0555, 0.0555, 0.0555, 0.0555, 0.0555, 0.0555, + 0.0555, 0.0555, 0.0555, 0.0555, 0.0555, 0.0555, 0.0555, + se = 0.010, 0.010, 0.010, 0.010, 0.010, 0.010, 0.010, + 0.010, 0.010, 0.010, 0.010, 0.010, 0.010, 0.010, + ! ----- Notes on weight: (4) - best fit of Latham data; + ! (5)-(7) could be 60-120; (8)-(10) could be 300-1600; + ! (11)-(13) could be 300-1600 + weight = 7., 7., 7., 180., 100., 100., 100., + 900., 900., 900., 900., 900., 900., 7. , +! !----- 1.12083 is 5 tons/acre. 5-50 tons/acre orig., 100-300 after blowdown +! fci_d = 0., 0., 0., 1.123, 0., 0., 0., +! 1.121, 1.121, 1.121, 1.121, 1.121, 1.121, 0., +! fct = 60., 60., 60., 60., 60., 60., 60., +! 60., 120., 180., 180., 180., 180. , 60., +! ichap = 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + / + + + diff --git a/wrfv2_fire/test/em_fire/hill/namelist.input b/wrfv2_fire/test/em_fire/hill/namelist.input new file mode 100644 index 00000000..75f76aba --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/namelist.input @@ -0,0 +1,180 @@ + &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 = 5, 30, 30, + frames_per_outfile = 1000, 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 = 101 + / + + &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_num_ignitions = 3, ! integer, only the first fire_num_ignition used, up to 5 allowed + fire_ignition_start_x1 = 1000, ! 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 = 1000, ! 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_time1 = 2, ! sec for ignition from the start + fire_ignition_start_x2 = 1500, ! 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 = 1500, ! 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_time2 = 3, ! sec for ignition from the start! end ignition for sfire + 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_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=0, ! in ideal: 0=none, 1= hill, 2=EW ridge, 3=NS ridge + fire_mountain_height=500., ! (m) ideal mountain height + fire_mountain_start_x=1000., ! (m) coord of start of the mountain from lower left corder (just like ignition) + fire_mountain_start_y=1100., ! (m) coord of start of the mountain from lower left corder (just like ignition) + fire_mountain_end_x=1500., ! (m) coord of end of the mountain from lower left corder (just like ignition) + fire_mountain_end_y=1400., ! (m) coord of end of the mountain from lower left corder (just like ignition) + fire_topo_from_atm=1, ! 0 = fire mesh topo set from fine-res data, 1 = populate by interpolating from atmosphere + +! +! 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 +/ diff --git a/wrfv2_fire/test/em_fire/hill/wrf.exe b/wrfv2_fire/test/em_fire/hill/wrf.exe new file mode 120000 index 00000000..e2b9ddb9 --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/wrf.exe @@ -0,0 +1 @@ +../wrf.exe \ No newline at end of file From 2787730def358a3815596b59c09c4fefa4285704 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Sun, 1 Nov 2009 11:14:36 -0700 Subject: [PATCH 02/14] hill example --- wrfv2_fire/test/em_fire/hill/namelist.input | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wrfv2_fire/test/em_fire/hill/namelist.input b/wrfv2_fire/test/em_fire/hill/namelist.input index 75f76aba..36583ab8 100644 --- a/wrfv2_fire/test/em_fire/hill/namelist.input +++ b/wrfv2_fire/test/em_fire/hill/namelist.input @@ -155,8 +155,8 @@ 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=0, ! in ideal: 0=none, 1= hill, 2=EW ridge, 3=NS ridge - fire_mountain_height=500., ! (m) ideal mountain height + 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=1000., ! (m) coord of start of the mountain from lower left corder (just like ignition) fire_mountain_start_y=1100., ! (m) coord of start of the mountain from lower left corder (just like ignition) fire_mountain_end_x=1500., ! (m) coord of end of the mountain from lower left corder (just like ignition) From d41c3a66d10e013375dca05a59874de94f88b882 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Sun, 1 Nov 2009 15:54:45 -0700 Subject: [PATCH 03/14] added hillframe.m to do one picture of flow --- wrfv2_fire/test/em_fire/hill/hillframe.m | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 wrfv2_fire/test/em_fire/hill/hillframe.m diff --git a/wrfv2_fire/test/em_fire/hill/hillframe.m b/wrfv2_fire/test/em_fire/hill/hillframe.m new file mode 100644 index 00000000..b318b530 --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/hillframe.m @@ -0,0 +1,27 @@ +disp('1. install mexnc under the same directory as wrf-fire, then') +disp('2. start matlab in wrf/WRFV3/test/em_fire to set up the paths properly') +disp('3. read a wrfrst file into the workspace as in') +disp(' >> ncload wrfrst_d01_0001-01-01_00:01:00') + +clf +dmin=[1,1]; +dmax=[410,410]; +qstep=[5,5]; +dmin=[150,150]; +dmax=[300,300]; +qstep=[5,5]; +% surface wind arrows +ii=dmin(1):qstep(1):dmax(1);jj=dmin(2):qstep(2):dmax(2); +hq=quiver3(fxlong(ii,jj),fxlat(ii,jj),zsf(ii,jj),uf(ii,jj),vf(ii,jj),zeros(size(vf(ii,jj)))); +hold on +i=dmin(1):dmax(1);j=dmin(2):dmax(2); +% surface colored by heat flux +hs=surf(fxlong(i,j),fxlat(i,j),zsf(i,j),fgrnhfx(i,j),'EdgeColor','none'); colorbar +[c,hc]=contour3(fxlong(i,j),fxlat(i,j),zsf(i,j)); +for h=hc(:)', set(h,'EdgeColor','black');end +axis equal +xlabel('x (m)') +ylabel('y (m)') +zlabel('z (m)') +hold off +drawnow \ No newline at end of file From 4aa02ce8c807715d5e3f2395bfcd0b994bf3a3a7 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Sun, 1 Nov 2009 16:07:06 -0700 Subject: [PATCH 04/14] namelists --- wrfv2_fire/test/em_fire/hill/namelist.input | 26 +-- .../em_fire/hill/namelist.input.smallhill | 180 ++++++++++++++++++ 2 files changed, 193 insertions(+), 13 deletions(-) create mode 100644 wrfv2_fire/test/em_fire/hill/namelist.input.smallhill diff --git a/wrfv2_fire/test/em_fire/hill/namelist.input b/wrfv2_fire/test/em_fire/hill/namelist.input index 36583ab8..d7111a41 100644 --- a/wrfv2_fire/test/em_fire/hill/namelist.input +++ b/wrfv2_fire/test/em_fire/hill/namelist.input @@ -124,7 +124,7 @@ 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_num_ignitions = 3, ! integer, only the first fire_num_ignition used, up to 5 allowed + fire_num_ignitions = 2, ! integer, only the first fire_num_ignition used, up to 5 allowed fire_ignition_start_x1 = 1000, ! 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 = 1000, ! end points of ignition lines, in m from lower left corner @@ -137,12 +137,12 @@ 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_time2 = 3, ! sec for ignition from the start! end ignition for sfire - 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_time3 = 4, ! sec for ignition from the start! end ignition for sfire + !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_time3 = 4, ! sec for ignition from the start! end ignition for sfire ! ! verbosity fire_print_msg = 1, ! 1 print fire debugging messages @@ -156,12 +156,12 @@ 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=1000., ! (m) coord of start of the mountain from lower left corder (just like ignition) - fire_mountain_start_y=1100., ! (m) coord of start of the mountain from lower left corder (just like ignition) - fire_mountain_end_x=1500., ! (m) coord of end of the mountain from lower left corder (just like ignition) - fire_mountain_end_y=1400., ! (m) coord of end of the mountain from lower left corder (just like ignition) - fire_topo_from_atm=1, ! 0 = fire mesh topo set from fine-res data, 1 = populate by interpolating from atmosphere + fire_mountain_height=200., ! (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 ! ! method switches for developers only, do not change! diff --git a/wrfv2_fire/test/em_fire/hill/namelist.input.smallhill b/wrfv2_fire/test/em_fire/hill/namelist.input.smallhill new file mode 100644 index 00000000..b0308d8c --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/namelist.input.smallhill @@ -0,0 +1,180 @@ + &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 = 5, 30, 30, + frames_per_outfile = 1000, 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 = 101 + / + + &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_num_ignitions = 2, ! integer, only the first fire_num_ignition used, up to 5 allowed + fire_ignition_start_x1 = 1000, ! 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 = 1000, ! 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_time1 = 2, ! sec for ignition from the start + fire_ignition_start_x2 = 1500, ! 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 = 1500, ! 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_time2 = 3, ! sec for ignition from the start! end ignition for sfire + !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_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=1000., ! (m) coord of start of the mountain from lower left corder (just like ignition) + fire_mountain_start_y=1100., ! (m) coord of start of the mountain from lower left corder (just like ignition) + fire_mountain_end_x=1500., ! (m) coord of end of the mountain from lower left corder (just like ignition) + fire_mountain_end_y=1400., ! (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 + +! +! 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 +/ From 2a4491587dd9e97cc4dcd21c626c466ee9dcdfb4 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Sun, 1 Nov 2009 23:05:03 -0700 Subject: [PATCH 05/14] added atm visualization --- wrfv2_fire/test/em_fire/hill/hillframe.m | 69 +++++++++++++++++++++--- 1 file changed, 62 insertions(+), 7 deletions(-) diff --git a/wrfv2_fire/test/em_fire/hill/hillframe.m b/wrfv2_fire/test/em_fire/hill/hillframe.m index b318b530..dc2df182 100644 --- a/wrfv2_fire/test/em_fire/hill/hillframe.m +++ b/wrfv2_fire/test/em_fire/hill/hillframe.m @@ -3,22 +3,77 @@ disp('3. read a wrfrst file into the workspace as in') disp(' >> ncload wrfrst_d01_0001-01-01_00:01:00') +% note the variables are read here without the WRF permutation of dimensions +ideal=1 + +if ideal, + u=u_2; + v=v_2; + w=w_2; + ph = ph_2; + r=[10,10]; % refinement factor + % do not have xlong and xlat in ideal case, but we made the coordinates up + % for fxlong and fxlat, so interpolate + n=size(xlong); + [xa,ya]=ndgrid(r(1)*[1/2:1:n(1)],r(2)*[1/2:1:n(2)]); % centers of atm cells in fire grid + axlong = interp2(fxlong,xa,ya); % fake coordinates for display + axlat = interp2(fxlat,xa,ya); % fake coordinates for display +else + axlong=xlong; axlat=xlat; % in real case, xlong xlat populated +end + clf -dmin=[1,1]; -dmax=[410,410]; -qstep=[5,5]; -dmin=[150,150]; -dmax=[300,300]; -qstep=[5,5]; +amin=[15,15,1]; % the atm grid part to show +amax=[30,30,1]; +amin=[1,1,1]; % the atm grid part to show +amax=[41,41,1]; + +qstep=[5,5]; % quiver step for wind on the surface fire grid +astep=[1,1,1]; % quiver step for wind on the atmosphere grid +qs=1.5; % scaling for quiver arrows + + +%------------------------------------------------- + +% compute the corresponding part of the fire grid +dmin=1+r.*(amin(1:2)-1); +dmax=r.*amax(1:2); + + % surface wind arrows ii=dmin(1):qstep(1):dmax(1);jj=dmin(2):qstep(2):dmax(2); -hq=quiver3(fxlong(ii,jj),fxlat(ii,jj),zsf(ii,jj),uf(ii,jj),vf(ii,jj),zeros(size(vf(ii,jj)))); +hq=quiver3(fxlong(ii,jj),fxlat(ii,jj),zsf(ii,jj),qs*uf(ii,jj),qs*vf(ii,jj),zeros(size(vf(ii,jj))),0); hold on i=dmin(1):dmax(1);j=dmin(2):dmax(2); + % surface colored by heat flux hs=surf(fxlong(i,j),fxlat(i,j),zsf(i,j),fgrnhfx(i,j),'EdgeColor','none'); colorbar [c,hc]=contour3(fxlong(i,j),fxlat(i,j),zsf(i,j)); for h=hc(:)', set(h,'EdgeColor','black');end + +err_hgt = big(hgt-phb(:,:,1)/9.81) % the lowest background geopotential height is terrain height + +% geopotential altitude of the centers of lower cell face +% ph is perturbation from the background phb +% note ph and phb are staggered just as w +a = (ph+phb)/9.81; + +% interpolate the geopotential and w velocity from staggered grid to cell centers +ac = (a(:,:,1:end-1)+a(:,:,2:end))/2; +wc = (w(:,:,1:end-1)+w(:,:,2:end))/2; +% interpolate u and v components of wind velocity from staggered grid to cell centers +uc = (u(1:end-1,:,:)+u(2:end,:,:))/2; % from front and rear face to the center +vc = (v(:,1:end-1,:)+v(:,2:end,:))/2; % from front and rear face to the center + +% atmosphere wind arrows +ia=amin(1):astep(1):amax(1); +ja=amin(2):astep(2):amax(2); +for k=amin(3):astep(3):amax(3), + hqa=quiver3(axlong(ia,ja),axlat(ia,ja),ac(ia,ja,k),... % position + qs*u(ia,ja,k),qs*v(ia,ja,k),qs*w(ia,ja,k),0); % wind arrow +end + +caxis([0,1e6]); % for heat flux color axis equal xlabel('x (m)') ylabel('y (m)') From 1737e4ee22c78bcd1b1377ceeb12cddaec921ab1 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Mon, 2 Nov 2009 09:40:10 -0700 Subject: [PATCH 06/14] showing K=1 and 2, hill semi-transparent to see the ground wind better --- wrfv2_fire/test/em_fire/hill/hillframe.m | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wrfv2_fire/test/em_fire/hill/hillframe.m b/wrfv2_fire/test/em_fire/hill/hillframe.m index dc2df182..3e8dda80 100644 --- a/wrfv2_fire/test/em_fire/hill/hillframe.m +++ b/wrfv2_fire/test/em_fire/hill/hillframe.m @@ -1,5 +1,6 @@ disp('1. install mexnc under the same directory as wrf-fire, then') disp('2. start matlab in wrf/WRFV3/test/em_fire to set up the paths properly') +disp(' or cd there and run startup while in the directory') disp('3. read a wrfrst file into the workspace as in') disp(' >> ncload wrfrst_d01_0001-01-01_00:01:00') @@ -24,9 +25,9 @@ clf amin=[15,15,1]; % the atm grid part to show -amax=[30,30,1]; +amax=[30,30,2]; amin=[1,1,1]; % the atm grid part to show -amax=[41,41,1]; +amax=[41,41,2]; qstep=[5,5]; % quiver step for wind on the surface fire grid astep=[1,1,1]; % quiver step for wind on the atmosphere grid @@ -47,7 +48,7 @@ i=dmin(1):dmax(1);j=dmin(2):dmax(2); % surface colored by heat flux -hs=surf(fxlong(i,j),fxlat(i,j),zsf(i,j),fgrnhfx(i,j),'EdgeColor','none'); colorbar +hs=surf(fxlong(i,j),fxlat(i,j),zsf(i,j),fgrnhfx(i,j),'EdgeColor','none','FaceAlpha',0.7); colorbar [c,hc]=contour3(fxlong(i,j),fxlat(i,j),zsf(i,j)); for h=hc(:)', set(h,'EdgeColor','black');end From 9237c5529ee03a53d14c448a5fabefc13704819a Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Tue, 3 Nov 2009 21:47:15 -0700 Subject: [PATCH 07/14] separated frame3d.m, wrfout2frame3d works for real case --- wrfv2_fire/test/em_fire/hill/frame3d.m | 91 +++++++++++++++++++ wrfv2_fire/test/em_fire/hill/hillframe.m | 66 ++------------ wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m | 42 +++++++++ 3 files changed, 141 insertions(+), 58 deletions(-) create mode 100644 wrfv2_fire/test/em_fire/hill/frame3d.m create mode 100644 wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m diff --git a/wrfv2_fire/test/em_fire/hill/frame3d.m b/wrfv2_fire/test/em_fire/hill/frame3d.m new file mode 100644 index 00000000..38e2acf0 --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/frame3d.m @@ -0,0 +1,91 @@ +function frame3d(swind,amin,amax,astep,qstep,qs,... + fxlong,fxlat,xlong,xlat,zsf,fgrnhfx,uf,vf,u,v,w,ph,phb,hgt) + +clf,hold off + +r = size(fxlong)./(size(xlong)+1); % refinement ratio +ideal = all(xlong ==0); % not populated in ideal case + +if ideal, + % do not have xlong and xlat in ideal case, but we made the coordinates up + % for fxlong and fxlat, so interpolate + n=size(xlong); + [xa,ya]=ndgrid(r(1)*[1/2:1:n(1)],r(2)*[1/2:1:n(2)]); % centers of atm cells in fire grid + axlong = interp2(fxlong,xa,ya); % fake coordinates for display + axlat = interp2(fxlat,xa,ya); % fake coordinates for display + xscale=1; + yscale=1; +else + axlong=xlong; axlat=xlat; % in real case, xlong xlat populated + er=6378e3; % earth radius in m + deg2rad=2*pi/360; % 1 degree in radians + % degrees to meters, long and lat + lat_deg2m=er*deg2rad; + long_deg2m=er*deg2rad*cos(deg2rad*mean(xlat(find(xlat)))); + xscale=1/long_deg2m; + yscale=1/lat_deg2m; +end +aspect_ratio = [xscale yscale 1]; + +% compute the corresponding part of the fire grid +dmin=1+r.*(amin(1:2)-1); +dmax=r.*amax(1:2); + +% surface colored by heat flux +i=dmin(1):dmax(1);j=dmin(2):dmax(2); +hs=surf(fxlong(i,j),fxlat(i,j),zsf(i,j),fgrnhfx(i,j),'EdgeColor','none','FaceAlpha',0.7); +caxis([0,1e6]); % for heat flux color +axis tight, colorbar +hold on +[c,hc]=contour3(fxlong(i,j),fxlat(i,j),zsf(i,j)); +for h=hc(:)', set(h,'EdgeColor','black');end % color the contours black + + +% surface wind arrows +if swind, + ii=dmin(1):qstep(1):dmax(1);jj=dmin(2):qstep(2):dmax(2); + hq=quiver3(fxlong(ii,jj),fxlat(ii,jj),zsf(ii,jj),xscale*uf(ii,jj),yscale*vf(ii,jj),zeros(size(vf(ii,jj))),qs); + set(hq,'Color','black') +end + +% geopotential altitude of the centers of lower cell face +% ph is perturbation from the background phb +% note ph and phb are staggered just as w +a = (ph+phb)/9.81; +% check if the lowest background geopotential height is terrain height +err_hgt = big(hgt-phb(:,:,1)/9.81) +% interpolate the geopotential and w velocity from staggered grid to cell centers +ac = (a(:,:,1:end-1)+a(:,:,2:end))/2; +wc = (w(:,:,1:end-1)+w(:,:,2:end))/2; +% interpolate u and v components of wind velocity from staggered grid to cell centers +uc = (u(1:end-1,:,:)+u(2:end,:,:))/2; % from front and rear face to the center +vc = (v(:,1:end-1,:)+v(:,2:end,:))/2; % from front and rear face to the center + +% atmosphere wind arrows +ia=amin(1):astep(1):amax(1); +ja=amin(2):astep(2):amax(2); +colors={'white','red','green','blue','black'}; +for k=amin(3):astep(3):amax(3), + q1=u(ia,ja,k)*xscale; + q2=v(ia,ja,k)*yscale; + q3=w(ia,ja,k); + hqa=quiver3(axlong(ia,ja),axlat(ia,ja),ac(ia,ja,k),q1,q2,q3,qs); + set(gca,'DataAspectRatio',[xscale yscale 1]); + i=1+mod(k-1,length(colors)); + set(hqa,'Color',colors{i}); +end + +if ideal + xlabel('x (m)') + ylabel('y (m)') +else + % set(gca,'PlotBoxAspectRatioMode','auto'); + xlabel('longitude (deg)') + ylabel('latitutude (deg)') +end +zlabel('z (m)') +set(gca,'DataAspectRatio',[xscale yscale 1]); +hold off +drawnow + +end \ No newline at end of file diff --git a/wrfv2_fire/test/em_fire/hill/hillframe.m b/wrfv2_fire/test/em_fire/hill/hillframe.m index 3e8dda80..f7fbf46a 100644 --- a/wrfv2_fire/test/em_fire/hill/hillframe.m +++ b/wrfv2_fire/test/em_fire/hill/hillframe.m @@ -5,22 +5,14 @@ disp(' >> ncload wrfrst_d01_0001-01-01_00:01:00') % note the variables are read here without the WRF permutation of dimensions -ideal=1 +ideal=1; +rst=1; -if ideal, +if rst, u=u_2; v=v_2; w=w_2; ph = ph_2; - r=[10,10]; % refinement factor - % do not have xlong and xlat in ideal case, but we made the coordinates up - % for fxlong and fxlat, so interpolate - n=size(xlong); - [xa,ya]=ndgrid(r(1)*[1/2:1:n(1)],r(2)*[1/2:1:n(2)]); % centers of atm cells in fire grid - axlong = interp2(fxlong,xa,ya); % fake coordinates for display - axlat = interp2(fxlat,xa,ya); % fake coordinates for display -else - axlong=xlong; axlat=xlat; % in real case, xlong xlat populated end clf @@ -31,53 +23,11 @@ qstep=[5,5]; % quiver step for wind on the surface fire grid astep=[1,1,1]; % quiver step for wind on the atmosphere grid -qs=1.5; % scaling for quiver arrows - +qs=1.5; % scaling for quiver arrows +r=[10,10]; % refinement factor +swind=1; % plot surface wind %------------------------------------------------- -% compute the corresponding part of the fire grid -dmin=1+r.*(amin(1:2)-1); -dmax=r.*amax(1:2); - - -% surface wind arrows -ii=dmin(1):qstep(1):dmax(1);jj=dmin(2):qstep(2):dmax(2); -hq=quiver3(fxlong(ii,jj),fxlat(ii,jj),zsf(ii,jj),qs*uf(ii,jj),qs*vf(ii,jj),zeros(size(vf(ii,jj))),0); -hold on -i=dmin(1):dmax(1);j=dmin(2):dmax(2); - -% surface colored by heat flux -hs=surf(fxlong(i,j),fxlat(i,j),zsf(i,j),fgrnhfx(i,j),'EdgeColor','none','FaceAlpha',0.7); colorbar -[c,hc]=contour3(fxlong(i,j),fxlat(i,j),zsf(i,j)); -for h=hc(:)', set(h,'EdgeColor','black');end - -err_hgt = big(hgt-phb(:,:,1)/9.81) % the lowest background geopotential height is terrain height - -% geopotential altitude of the centers of lower cell face -% ph is perturbation from the background phb -% note ph and phb are staggered just as w -a = (ph+phb)/9.81; - -% interpolate the geopotential and w velocity from staggered grid to cell centers -ac = (a(:,:,1:end-1)+a(:,:,2:end))/2; -wc = (w(:,:,1:end-1)+w(:,:,2:end))/2; -% interpolate u and v components of wind velocity from staggered grid to cell centers -uc = (u(1:end-1,:,:)+u(2:end,:,:))/2; % from front and rear face to the center -vc = (v(:,1:end-1,:)+v(:,2:end,:))/2; % from front and rear face to the center - -% atmosphere wind arrows -ia=amin(1):astep(1):amax(1); -ja=amin(2):astep(2):amax(2); -for k=amin(3):astep(3):amax(3), - hqa=quiver3(axlong(ia,ja),axlat(ia,ja),ac(ia,ja,k),... % position - qs*u(ia,ja,k),qs*v(ia,ja,k),qs*w(ia,ja,k),0); % wind arrow -end - -caxis([0,1e6]); % for heat flux color -axis equal -xlabel('x (m)') -ylabel('y (m)') -zlabel('z (m)') -hold off -drawnow \ No newline at end of file +frame3d(swind,amin,amax,astep,qstep,qs,... + fxlong,fxlat,xlong,xlat,zsf,fgrnhfx,uf,vf,u,v,w,ph,phb,hgt) \ No newline at end of file diff --git a/wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m b/wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m new file mode 100644 index 00000000..f8b64a3f --- /dev/null +++ b/wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m @@ -0,0 +1,42 @@ +% function wrfout2frame3d(file,steps) +disp('1. file=''wrfout file''') +disp('2. steps=[1:20] % time steps to display') +disp('3. wrfout2frame3d') + +fxlong =ncread(file,'FXLONG'); +fxlat =ncread(file,'FXLAT'); +xlong =ncread(file,'XLONG'); +xlat =ncread(file,'XLAT'); +zsf =ncread(file,'ZSF'); +fgrnhfx=ncread(file,'FGRNHFX'); +uf =ncread(file,'UF'); +vf =ncread(file,'VF'); +u =ncread(file,'U'); +v =ncread(file,'V'); +w =ncread(file,'W'); +ph =ncread(file,'PH'); +phb =ncread(file,'PHB'); +hgt =ncread(file,'HGT'); + + +% note the variables are read here without the WRF permutation of dimensions + +amin=[15,15,1]; % the atm grid part to show +amax=[30,30,2]; +amin=[1,1,1]; % the atm grid part to show +amax=[41,41,2]; + +qstep=[20,20]; % quiver step for wind on the surface fire grid +astep=[2,2,1]; % quiver step for wind on the atmosphere grid +qs=1e-3; % scaling for quiver arrows +swind=0; % do not display surface wind + +%------------------------------------------------- + +for k=steps, + frame3d(swind,amin,amax,astep,qstep,qs,... + fxlong(:,:,k),fxlat(:,:,k),xlong(:,:,k),xlat(:,:,k),... + zsf(:,:,k),fgrnhfx(:,:,k),uf(:,:,k),vf(:,:,k),... + u(:,:,:,k),v(:,:,:,k),w(:,:,:,k),... + ph(:,:,:,k),phb(:,:,:,k),hgt(:,:,k)) +end \ No newline at end of file From ed4778b5ea673fee942ea066845f86b18a2d02e3 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Wed, 4 Nov 2009 00:17:17 -0700 Subject: [PATCH 08/14] added avi movie --- wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m b/wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m index f8b64a3f..827f10f5 100644 --- a/wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m +++ b/wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m @@ -17,14 +17,15 @@ ph =ncread(file,'PH'); phb =ncread(file,'PHB'); hgt =ncread(file,'HGT'); +itimestep=ncread(file,'ITIMESTEP'); % note the variables are read here without the WRF permutation of dimensions amin=[15,15,1]; % the atm grid part to show amax=[30,30,2]; -amin=[1,1,1]; % the atm grid part to show -amax=[41,41,2]; +amin=[10,10,1]; % the atm grid part to show +amax=[30,30,1]; qstep=[20,20]; % quiver step for wind on the surface fire grid astep=[2,2,1]; % quiver step for wind on the atmosphere grid @@ -33,10 +34,15 @@ %------------------------------------------------- +a=avifile('fire.avi'); for k=steps, frame3d(swind,amin,amax,astep,qstep,qs,... fxlong(:,:,k),fxlat(:,:,k),xlong(:,:,k),xlat(:,:,k),... zsf(:,:,k),fgrnhfx(:,:,k),uf(:,:,k),vf(:,:,k),... u(:,:,:,k),v(:,:,:,k),w(:,:,:,k),... ph(:,:,:,k),phb(:,:,:,k),hgt(:,:,k)) -end \ No newline at end of file + title(['Timestep ',num2str(itimestep(k))]) + F=getframe(gcf); + a=addframe(a,F); +end +a=close(a); \ No newline at end of file From faee9fff73f10f358e8d1fab72960fe4195cc311 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Fri, 13 Nov 2009 16:42:37 -0700 Subject: [PATCH 09/14] mv vis3d scripts from em_fire/hill to Matlab/vis3d --- .../hill => other/Matlab/vis3d}/frame3d.m | 0 .../hill => other/Matlab/vis3d}/hillframe.m | 0 .../Matlab/vis3d}/wrfout2frame3d.m | 0 wrfv2_fire/test/em_fire/startup.m | 29 +++++++++---------- 4 files changed, 13 insertions(+), 16 deletions(-) rename {wrfv2_fire/test/em_fire/hill => other/Matlab/vis3d}/frame3d.m (100%) rename {wrfv2_fire/test/em_fire/hill => other/Matlab/vis3d}/hillframe.m (100%) rename {wrfv2_fire/test/em_fire/hill => other/Matlab/vis3d}/wrfout2frame3d.m (100%) diff --git a/wrfv2_fire/test/em_fire/hill/frame3d.m b/other/Matlab/vis3d/frame3d.m similarity index 100% rename from wrfv2_fire/test/em_fire/hill/frame3d.m rename to other/Matlab/vis3d/frame3d.m diff --git a/wrfv2_fire/test/em_fire/hill/hillframe.m b/other/Matlab/vis3d/hillframe.m similarity index 100% rename from wrfv2_fire/test/em_fire/hill/hillframe.m rename to other/Matlab/vis3d/hillframe.m diff --git a/wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m b/other/Matlab/vis3d/wrfout2frame3d.m similarity index 100% rename from wrfv2_fire/test/em_fire/hill/wrfout2frame3d.m rename to other/Matlab/vis3d/wrfout2frame3d.m diff --git a/wrfv2_fire/test/em_fire/startup.m b/wrfv2_fire/test/em_fire/startup.m index fbd604ae..d765dece 100644 --- a/wrfv2_fire/test/em_fire/startup.m +++ b/wrfv2_fire/test/em_fire/startup.m @@ -1,18 +1,15 @@ % set matlab path to include files in wrf/other/Matlab format compact -d1=[pwd,'/../../../other/Matlab/vis']; -d2=[pwd,'/../../../other/Matlab/util1_jan']; -d3=[pwd,'/../../../other/Matlab/netcdf']; -d4=[pwd,'/../../../../mexnc']; -addpath(d1) -addpath(d2) -addpath(d3) -addpath(d4) -disp(d1) -ls(d1) -disp(d2) -ls(d2) -disp(d3) -ls(d3) -disp(d4) -ls(d4) +d={[pwd,'/../../../other/Matlab/vis'],... + [pwd,'/../../../other/Matlab/util1_jan'],... + [pwd,'/../../../other/Matlab/netcdf'],... + [pwd,'/../../../other/Matlab/vis3d'],... + [pwd,'/../../../../mexnc'],... +}; +for i=1:length(d), + s=d{i}; + addpath(s) + disp(s) + ls(s) +end +clear d i s From 0b2fd506a7a22dae75f5c1b7bc6d9cdb70702f86 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Fri, 13 Nov 2009 16:52:44 -0700 Subject: [PATCH 10/14] acknowledgements in driver comments --- wrfv2_fire/phys/module_fr_sfire_driver.F | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/wrfv2_fire/phys/module_fr_sfire_driver.F b/wrfv2_fire/phys/module_fr_sfire_driver.F index 76a09537..17c52a90 100644 --- a/wrfv2_fire/phys/module_fr_sfire_driver.F +++ b/wrfv2_fire/phys/module_fr_sfire_driver.F @@ -25,17 +25,29 @@ ! propagation by tracers and was coupled with the Clark-Hall ! atmospheric code, described in [2]. For WRF documentation see [3]. -! Acknowledgements: Contributions to the level set method by Mijeong -! Kim. The fire physics is adapted from an earlier code by Terry +! Acknowledgements +! +! Contributions to development of the level set +! method by Mijeong Kim. Contribution to fuel calculation by Volodymyr +! Kondratenko. +! +! The fire physics is adapted from an earlier code by Terry ! L. Clark, Janice L. Coen, and Don Latham. The coupling with WRF is ! adapted from a code by Ned Patton for coupling of the earlier fire -! model with WRF, with contributions by Jonathan D. Beezley. The -! WRF build and execution environment was set up by Jonathan Beezley. +! model with WRF. The changes in WRF infrastructure and support of +! refined fire grid was provided by John Michalakes. +! Jonathan D. Beezley has set up and maintained the WRF build and +! execution environment, provided software engineering infrastructure +! including synchronization with the WRF repository, and was responsibe +! for all aspects of WRF modification. + +! Refefences +! ! [1] Jan Mandel, Jonathan D. Beezley, Janice L. Coen, and Minjeong Kim, ! Data Asimilation for Wildland Fires: Ensemble Kalman filters in -! coupled atmosphere-surface models, IEEE Control Systems Magazine, -! submitted, 2007 +! coupled atmosphere-surface models, IEEE Control Systems Magazine 29, +! Issue 3, June 2009, 47-65. ! [2] T. L. Clark, J. Coen, and D. Latham, Description of a coupled ! atmosphere-fire model, Intl. J. Wildland Fire, vol. 13, pp. 49-64, From fed6b7aea64c0f4732f237a16c90a05e2e705f08 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Fri, 13 Nov 2009 21:41:33 -0700 Subject: [PATCH 11/14] using constants from module_constants as requested --- wrfv2_fire/phys/module_fr_sfire_driver.F | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wrfv2_fire/phys/module_fr_sfire_driver.F b/wrfv2_fire/phys/module_fr_sfire_driver.F index 17c52a90..567c9731 100644 --- a/wrfv2_fire/phys/module_fr_sfire_driver.F +++ b/wrfv2_fire/phys/module_fr_sfire_driver.F @@ -59,7 +59,7 @@ module module_fr_sfire_driver -use module_model_constants, only: cp,xlv +use module_model_constants, only: cp,xlv,reradius,pi2 use module_fr_sfire_model use module_fr_sfire_phys use module_fr_sfire_atm @@ -256,8 +256,8 @@ subroutine sfire_driver_em ( grid , config_flags & lat_ctr=config_flags%cen_lat lon_ctr=config_flags%cen_lon ! 1 degree in m (approximate OK) - unit_fxlat=6378e3*2*3.14159/360. ! earth circumference in m / 360 degrees - unit_fxlong=cos(lat_ctr*3.14159/180.)*unit_fxlat ! latitude + unit_fxlat=pi2/(360.*reradius) ! earth circumference in m / 360 degrees + unit_fxlong=cos(lat_ctr*pi2/360.)*unit_fxlat ! latitude endif ! refinement r From 9a5e92932d25189893e219ef7a304c22fba786c0 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Sat, 14 Nov 2009 00:05:09 -0700 Subject: [PATCH 12/14] in namelist vars _long? -> _lon? (affects only real case) --- wrfv2_fire/Registry/registry.fire | 20 ++++++++-------- wrfv2_fire/phys/module_fr_sfire_driver.F | 24 +++++++++---------- .../test/em_real/namelist.input.fire.nested | 12 +++++----- .../test/em_real/namelist.input.fire.small | 12 +++++----- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/wrfv2_fire/Registry/registry.fire b/wrfv2_fire/Registry/registry.fire index 54606886..6169508c 100644 --- a/wrfv2_fire/Registry/registry.fire +++ b/wrfv2_fire/Registry/registry.fire @@ -59,33 +59,33 @@ rconfig integer ifire namelist,fire max_domains rconfig integer fire_boundary_guard namelist,fire max_domains 2 - "fire_boundary_guard" "cells to stop when fire close to domain boundary" # ignition for sfire rconfig integer fire_num_ignitions namelist,fire max_domains 0. - "fire_num_ignitions" "number of ignition lines" -rconfig real fire_ignition_start_long1 namelist,fire max_domains 0. - "fire_ignition_start_long1" "long coord of start of ignition line" "m" +rconfig real fire_ignition_start_lon1 namelist,fire max_domains 0. - "fire_ignition_start_long1" "long coord of start of ignition line" "m" rconfig real fire_ignition_start_lat1 namelist,fire max_domains 0. - "fire_ignition_start_lat1" "lat coord of start of ignition line" "m" -rconfig real fire_ignition_end_long1 namelist,fire max_domains 0. - "fire_ignition_end_long1" "long coord of end of ignition line" "m" +rconfig real fire_ignition_end_lon1 namelist,fire max_domains 0. - "fire_ignition_end_long1" "long coord of end of ignition line" "m" rconfig real fire_ignition_end_lat1 namelist,fire max_domains 0. - "fire_ignition_end_lat1" "lat coord of end of ignition line" "m" rconfig real fire_ignition_radius1 namelist,fire max_domains 0. - "fire_ignition_radius1" "ignite all within the radius" "m" rconfig real fire_ignition_time1 namelist,fire max_domains 0. - "fire_ignition_time1" "ignition time" "s" -rconfig real fire_ignition_start_long2 namelist,fire max_domains 0. - "fire_ignition_start_long2" "long coord of start of ignition line" "m" +rconfig real fire_ignition_start_lon2 namelist,fire max_domains 0. - "fire_ignition_start_long2" "long coord of start of ignition line" "m" rconfig real fire_ignition_start_lat2 namelist,fire max_domains 0. - "fire_ignition_start_lat2" "lat coord of start of ignition line" "m" -rconfig real fire_ignition_end_long2 namelist,fire max_domains 0. - "fire_ignition_end_long2" "long coord of end of ignition line" "m" +rconfig real fire_ignition_end_lon2 namelist,fire max_domains 0. - "fire_ignition_end_long2" "long coord of end of ignition line" "m" rconfig real fire_ignition_end_lat2 namelist,fire max_domains 0. - "fire_ignition_end_lat2" "lat coord of end of ignition line" "m" rconfig real fire_ignition_radius2 namelist,fire max_domains 0. - "fire_ignition_radius2" "ignite all within the radius" "m" rconfig real fire_ignition_time2 namelist,fire max_domains 0. - "fire_ignition_time2" "ignition time" "s" -rconfig real fire_ignition_start_long3 namelist,fire max_domains 0. - "fire_ignition_start_long3" "long coord of start of ignition line" "m" +rconfig real fire_ignition_start_lon3 namelist,fire max_domains 0. - "fire_ignition_start_long3" "long coord of start of ignition line" "m" rconfig real fire_ignition_start_lat3 namelist,fire max_domains 0. - "fire_ignition_start_lat3" "lat coord of start of ignition line" "m" -rconfig real fire_ignition_end_long3 namelist,fire max_domains 0. - "fire_ignition_end_long3" "long coord of end of ignition line" "m" +rconfig real fire_ignition_end_lon3 namelist,fire max_domains 0. - "fire_ignition_end_long3" "long coord of end of ignition line" "m" rconfig real fire_ignition_end_lat3 namelist,fire max_domains 0. - "fire_ignition_end_lat3" "lat coord of end of ignition line" "m" rconfig real fire_ignition_radius3 namelist,fire max_domains 0. - "fire_ignition_radius3" "ignite all within the radius" "m" rconfig real fire_ignition_time3 namelist,fire max_domains 0. - "fire_ignition_time3" "ignition time" "s" -rconfig real fire_ignition_start_long4 namelist,fire max_domains 0. - "fire_ignition_start_long4" "long coord of start of ignition line" "m" +rconfig real fire_ignition_start_lon4 namelist,fire max_domains 0. - "fire_ignition_start_long4" "long coord of start of ignition line" "m" rconfig real fire_ignition_start_lat4 namelist,fire max_domains 0. - "fire_ignition_start_lat4" "lat coord of start of ignition line" "m" -rconfig real fire_ignition_end_long4 namelist,fire max_domains 0. - "fire_ignition_end_long4" "long coord of end of ignition line" "m" +rconfig real fire_ignition_end_lon4 namelist,fire max_domains 0. - "fire_ignition_end_long4" "long coord of end of ignition line" "m" rconfig real fire_ignition_end_lat4 namelist,fire max_domains 0. - "fire_ignition_end_lat4" "lat coord of end of ignition line" "m" rconfig real fire_ignition_radius4 namelist,fire max_domains 0. - "fire_ignition_radius4" "ignite all within the radius" "m" rconfig real fire_ignition_time4 namelist,fire max_domains 0. - "fire_ignition_time4" "ignition time" "s" -rconfig real fire_ignition_start_long5 namelist,fire max_domains 0. - "fire_ignition_start_long5" "long coord of start of ignition line" "m" +rconfig real fire_ignition_start_lon5 namelist,fire max_domains 0. - "fire_ignition_start_long5" "long coord of start of ignition line" "m" rconfig real fire_ignition_start_lat5 namelist,fire max_domains 0. - "fire_ignition_start_lat5" "lat coord of start of ignition line" "m" -rconfig real fire_ignition_end_long5 namelist,fire max_domains 0. - "fire_ignition_end_long5" "long coord of end of ignition line" "m" +rconfig real fire_ignition_end_lon5 namelist,fire max_domains 0. - "fire_ignition_end_long5" "long coord of end of ignition line" "m" rconfig real fire_ignition_end_lat5 namelist,fire max_domains 0. - "fire_ignition_end_lat5" "lat coord of end of ignition line" "m" rconfig real fire_ignition_radius5 namelist,fire max_domains 0. - "fire_ignition_radius5" "ignite all within the radius" "m" rconfig real fire_ignition_time5 namelist,fire max_domains 0. - "fire_ignition_time5" "ignition time" "s" diff --git a/wrfv2_fire/phys/module_fr_sfire_driver.F b/wrfv2_fire/phys/module_fr_sfire_driver.F index 567c9731..0c13c078 100644 --- a/wrfv2_fire/phys/module_fr_sfire_driver.F +++ b/wrfv2_fire/phys/module_fr_sfire_driver.F @@ -873,7 +873,7 @@ subroutine fire_ignition_convert (config_flags,fire_max_ignitions,ignition_longl if(fire_max_ignitions.lt.5)call crash('fire_max_ignitions too small') ! figure out which kind of coordinates from the first given ideal=config_flags%fire_ignition_start_x1 .ne.0. .or. config_flags%fire_ignition_start_y1 .ne. 0. - real=config_flags%fire_ignition_start_long1 .ne. 0. .or. config_flags%fire_ignition_start_lat1 .ne. 0. + real=config_flags%fire_ignition_start_lon1 .ne. 0. .or. config_flags%fire_ignition_start_lat1 .ne. 0. if(ideal)call message('Using ideal ignition coordinates, m from the lower left domain corner') if(real)call message('Using real ignition coordinates, longitude and latitude') if(ideal.and.real)call crash('Only one of the ideal or real coordinates may be given') @@ -905,26 +905,26 @@ subroutine fire_ignition_convert (config_flags,fire_max_ignitions,ignition_longl if(real)then ! use values from _long and _lat ignition_longlat=1 - fire_ignition_start_x(1)=config_flags%fire_ignition_start_long1 + fire_ignition_start_x(1)=config_flags%fire_ignition_start_lon1 fire_ignition_start_y(1)=config_flags%fire_ignition_start_lat1 - fire_ignition_end_x(1)=config_flags%fire_ignition_end_long1 + fire_ignition_end_x(1)=config_flags%fire_ignition_end_lon1 fire_ignition_end_y(1)=config_flags%fire_ignition_end_lat1 - fire_ignition_start_x(2)=config_flags%fire_ignition_start_long2 + fire_ignition_start_x(2)=config_flags%fire_ignition_start_lon2 fire_ignition_start_y(2)=config_flags%fire_ignition_start_lat2 - fire_ignition_end_x(2)=config_flags%fire_ignition_end_long2 + fire_ignition_end_x(2)=config_flags%fire_ignition_end_lon2 fire_ignition_end_y(2)=config_flags%fire_ignition_end_lat2 - fire_ignition_start_x(3)=config_flags%fire_ignition_start_long3 + fire_ignition_start_x(3)=config_flags%fire_ignition_start_lon3 fire_ignition_start_y(3)=config_flags%fire_ignition_start_lat3 - fire_ignition_end_x(3)=config_flags%fire_ignition_end_long3 + fire_ignition_end_x(3)=config_flags%fire_ignition_end_lon3 fire_ignition_end_y(3)=config_flags%fire_ignition_end_lat3 - fire_ignition_start_x(4)=config_flags%fire_ignition_start_long4 + fire_ignition_start_x(4)=config_flags%fire_ignition_start_lon4 fire_ignition_start_y(4)=config_flags%fire_ignition_start_lat4 - fire_ignition_end_x(4)=config_flags%fire_ignition_end_long4 + fire_ignition_end_x(4)=config_flags%fire_ignition_end_lon4 fire_ignition_end_y(4)=config_flags%fire_ignition_end_lat4 - fire_ignition_start_x(5)=config_flags%fire_ignition_start_long5 + fire_ignition_start_x(5)=config_flags%fire_ignition_start_lon5 fire_ignition_start_y(5)=config_flags%fire_ignition_start_lat5 - fire_ignition_end_x(5)=config_flags%fire_ignition_end_long3 - fire_ignition_end_y(5)=config_flags%fire_ignition_end_lat3 + fire_ignition_end_x(5)=config_flags%fire_ignition_end_lon5 + fire_ignition_end_y(5)=config_flags%fire_ignition_end_lat5 endif ! common to both cases fire_ignition_radius(1)=config_flags%fire_ignition_radius1 diff --git a/wrfv2_fire/test/em_real/namelist.input.fire.nested b/wrfv2_fire/test/em_real/namelist.input.fire.nested index 20980190..9014d0ee 100755 --- a/wrfv2_fire/test/em_real/namelist.input.fire.nested +++ b/wrfv2_fire/test/em_real/namelist.input.fire.nested @@ -134,21 +134,21 @@ fire_fuel_cat = 3, ! integer, if specified which fuel category? ! ignition fire_num_ignitions = 3, ! integer, only the first fire_num_ignition used, up to 5 allowed - fire_ignition_start_long1=-107.293664, ! start points of ignition lines, longitude + fire_ignition_start_lon1=-107.293664, ! start points of ignition lines, longitude fire_ignition_start_lat1 = 39.698696, ! start points of ignition lines,latitude - fire_ignition_end_long1 = -107.293664, ! end points of ignition lines + fire_ignition_end_lon1 = -107.293664, ! end points of ignition lines fire_ignition_end_lat1 = 39.710990, ! end points of ignition lines fire_ignition_radius1 = 18, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time1 = 120, ! sec for ignition from the start - fire_ignition_start_long2=-107.287954, ! start points of ignition lines, + fire_ignition_start_lon2=-107.287954, ! start points of ignition lines, fire_ignition_start_lat2 = 39.698696, ! start points of ignition lines, - fire_ignition_end_long2 = -107.287954,! end points of ignition lines, + fire_ignition_end_lon2 = -107.287954,! end points of ignition lines, fire_ignition_end_lat2 = 39.71099, ! end points of ignition lines, fire_ignition_radius2 = 18, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time2 = 180, ! sec for ignition from the start! end ignition for sfire - fire_ignition_start_long3=-107.289096, ! start points of ignition lines, + fire_ignition_start_lon3=-107.289096, ! start points of ignition lines, fire_ignition_start_lat3 = 39.706599, ! start points of ignition lines, - fire_ignition_end_long3 = 0, ! end points of ignition lines, 0 for same as start + fire_ignition_end_lon3 = 0, ! end points of ignition lines, 0 for same as start fire_ignition_end_lat3 = 0, ! end points of ignition lines, 0 for same as start fire_ignition_radius3 = 50, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time3 = 4, ! sec for ignition from the start! end ignition for sfire diff --git a/wrfv2_fire/test/em_real/namelist.input.fire.small b/wrfv2_fire/test/em_real/namelist.input.fire.small index d0a669a4..9ca358f3 100644 --- a/wrfv2_fire/test/em_real/namelist.input.fire.small +++ b/wrfv2_fire/test/em_real/namelist.input.fire.small @@ -113,21 +113,21 @@ fire_fuel_cat = 3, ! integer, if specified which fuel category? ! ignition fire_num_ignitions = 3, ! integer, only the first fire_num_ignition used, up to 5 allowed - fire_ignition_start_long1=-107.293664, ! start points of ignition lines, longitude + fire_ignition_start_lon1=-107.293664, ! start points of ignition lines, longitude fire_ignition_start_lat1 = 39.698696, ! start points of ignition lines,latitude - fire_ignition_end_long1 = -107.293664, ! end points of ignition lines + fire_ignition_end_lon1 = -107.293664, ! end points of ignition lines fire_ignition_end_lat1 = 39.710990, ! end points of ignition lines fire_ignition_radius1 = 18, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time1 = 2, ! sec for ignition from the start - fire_ignition_start_long2=-107.287954, ! start points of ignition lines, + fire_ignition_start_lon2=-107.287954, ! start points of ignition lines, fire_ignition_start_lat2 = 39.698696, ! start points of ignition lines, - fire_ignition_end_long2 = -107.287954,! end points of ignition lines, + fire_ignition_end_lon2 = -107.287954,! end points of ignition lines, fire_ignition_end_lat2 = 39.71099, ! end points of ignition lines, fire_ignition_radius2 = 18, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time2 = 3, ! sec for ignition from the start! end ignition for sfire - fire_ignition_start_long3=-107.289096, ! start points of ignition lines, + fire_ignition_start_lon3=-107.289096, ! start points of ignition lines, fire_ignition_start_lat3 = 39.706599, ! start points of ignition lines, - fire_ignition_end_long3 = 0, ! end points of ignition lines, 0 for same as start + fire_ignition_end_lon3 = 0, ! end points of ignition lines, 0 for same as start fire_ignition_end_lat3 = 0, ! end points of ignition lines, 0 for same as start fire_ignition_radius3 = 50, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time3 = 4, ! sec for ignition from the start! end ignition for sfire From 3a0da4396ddf15ae3bc6c664e89d7914f31bb2db Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Sat, 14 Nov 2009 14:07:59 -0700 Subject: [PATCH 13/14] long -> lon also in test/real/namelist.input --- wrfv2_fire/test/em_real/namelist.input | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/wrfv2_fire/test/em_real/namelist.input b/wrfv2_fire/test/em_real/namelist.input index 9ca6bec3..a6d8bf2f 100755 --- a/wrfv2_fire/test/em_real/namelist.input +++ b/wrfv2_fire/test/em_real/namelist.input @@ -126,21 +126,21 @@ ! ! ignition fire_num_ignitions = 3, ! integer, only the first fire_num_ignition used, up to 5 allowed - fire_ignition_start_long1=-107.293664, ! start points of ignition lines, longitude + fire_ignition_start_lon1=-107.293664, ! start points of ignition lines, longitude fire_ignition_start_lat1 = 39.698696, ! start points of ignition lines,latitude - fire_ignition_end_long1 = -107.293664, ! end points of ignition lines + fire_ignition_end_lon1 = -107.293664, ! end points of ignition lines fire_ignition_end_lat1 = 39.710990, ! end points of ignition lines fire_ignition_radius1 = 18, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time1 = 2, ! sec for ignition from the start - fire_ignition_start_long2=-107.287954, ! start points of ignition lines, + fire_ignition_start_lon2=-107.287954, ! start points of ignition lines, fire_ignition_start_lat2 = 39.698696, ! start points of ignition lines, - fire_ignition_end_long2 = -107.287954,! end points of ignition lines, + fire_ignition_end_lon2 = -107.287954,! end points of ignition lines, fire_ignition_end_lat2 = 39.71099, ! end points of ignition lines, fire_ignition_radius2 = 18, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time2 = 3, ! sec for ignition from the start! end ignition for sfire - fire_ignition_start_long3=-107.289096, ! start points of ignition lines, + fire_ignition_start_lon3=-107.289096, ! start points of ignition lines, fire_ignition_start_lat3 = 39.706599, ! start points of ignition lines, - fire_ignition_end_long3 = 0, ! end points of ignition lines, 0 for same as start + fire_ignition_end_lon3 = 0, ! end points of ignition lines, 0 for same as start fire_ignition_end_lat3 = 0, ! end points of ignition lines, 0 for same as start fire_ignition_radius3 = 50, ! all within this radius (m) will ignite, > fire mesh step fire_ignition_time3 = 4, ! sec for ignition from the start! end ignition for sfire From 812b0fa306da73e35371012638b39c0a5585a041 Mon Sep 17 00:00:00 2001 From: Jan Mandel Date: Sat, 14 Nov 2009 21:25:51 -0700 Subject: [PATCH 14/14] mod em_real/namelist.input for longer run and some prints --- wrfv2_fire/test/em_real/namelist.input | 28 +++++++------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/wrfv2_fire/test/em_real/namelist.input b/wrfv2_fire/test/em_real/namelist.input index a6d8bf2f..b5dd6957 100755 --- a/wrfv2_fire/test/em_real/namelist.input +++ b/wrfv2_fire/test/em_real/namelist.input @@ -1,7 +1,7 @@ &time_control run_days = 0, run_hours = 0, - run_minutes = 1, + run_minutes = 20, run_seconds = 0, start_year = 2005, start_month = 08, @@ -17,15 +17,15 @@ end_second = 00, interval_seconds = 21600 input_from_file = .true., - history_interval = 1, + history_interval_s = 30, frames_per_outfile = 1000, restart = .false., - restart_interval = 100, + restart_interval = 1, io_form_history = 2 io_form_restart = 2 io_form_input = 2 io_form_boundary = 2 - debug_level = 0 + debug_level = 1 / &domains @@ -105,25 +105,11 @@ / &fire ! be sure to set sr_x,sr_y in domains-namelist (to set refinement in x,y) - ifire = 2, ! integer, = 0: no fire, = 1: CAWFE 2: SFIRE + ifire = 2, ! integer, = 0: no fire, = 2: SFIRE ! -! CAWFE variables (NOTE: may or may not work. I do not maintain the cawfe path any more. JM) -! -!fire_lat_init = 40., ! real , initial fire latitude (deg) -!fire_lon_init = -105., ! real , initial fire longitude (deg) - fire_lat_init = 6.75e-3, ! real , initial fire latitude (deg) - fire_lon_init = 6.70e-3, ! real , initial fire longitude (deg) - fire_ign_time = 30., ! real , time of fire ignition (s) - fire_shape = 1, ! integer, initial fire shape - fire_sprd_mdl = 1, ! integer, = 0: Macarthur, = 1: BEHAVE - fire_crwn_hgt = 15., ! real , height of canopy crown (m) - fire_ext_grnd = 50., ! real , extinction coeff ground fire - fire_ext_crwn = 50., ! real , extinction coeff crown fire fire_fuel_read = -1, ! integer, 0= use fire_fuel_cat, 1= by altitude 2= read from file fire_fuel_cat = 3, ! integer, if specified which fuel category? -! -! SFIRE -! + ! ignition fire_num_ignitions = 3, ! integer, only the first fire_num_ignition used, up to 5 allowed fire_ignition_start_lon1=-107.293664, ! start points of ignition lines, longitude @@ -146,7 +132,7 @@ fire_ignition_time3 = 4, ! sec for ignition from the start! end ignition for sfire ! ! verbosity - fire_print_msg = 0, ! 1 to print fire debugging/progress messages (compile with DEBUG OUT in the sf sources) + fire_print_msg = 1, ! 1 to print fire debugging/progress messages (compile with DEBUG OUT in the sf sources) fire_print_file = 0, ! 1 to write text output files for matlab ! ! method selections for experiments, *do not change*