WRF-Fire merge testing
The version to test is branch fuel-moisture-model currently at commit c1cedfc7eba28a2ed
The baseline is WRF4 branch develop currently at commit 0f296f9c0f674f9
When either branch advances we have to retest - after any fix in fuel-moisture-model (I will let you know), and, after we are done, we will have to forward branch develop to current WRF4 and merge it into fuel-moisture-model. For this reason (and to reduce confusion), I am trying to organize the tests in a way that they are really easy to rerun without modifying any files - separate clones for different compilation options and separate copies of test/em_fire directory for different test cases.
The namelist.input and namelist.fire with variables that turn the fuel moisture model and fire on are in test/em_fire_rain/rain. The description of the namelist variables is at Fuel_moisture_model#Configuration. Other features from WRF-SFIRE are not carried over - only the fuel moisture model.
Who is doing what:
- Angel - WTF, parallel testing of both branches for identical results, all test cases in test/em_fire
- Adam - a real problem
- Jan - fixing, selected testing as needed
How to test
- Record also unsuccessful tests, when fixed, replace by the final result and include link to the commit used
- All tests should be reproducible by checking out the commit noted, which should include all data for ideal runs
- For real runs, please link to the datasets to be reproducible
What needs to be tested
- Fuel moisture model off vs. WRF4 baseline, with and without fire, did we change anything?
- reading fmc_g, is it doing what it should?
- Fuel moisture model on, fire on, is it doing what it should?
- Serial and parallel execution with different numbers of CPUs, are the numbers same?
- WTF as specified in WRF testing requirements
- All ideal cases in test/em_fire and some real
Jan's test results
All kingspeak runs are in /uufs/chpc.utah.edu/common/home/u6015690/merge and run on node kingspeak11 (nodes can be different).
Baseline
branch develop 0f296f9c0f674f9
- ifort serial (13), nesting 0, configure -d, WRF-Fire-merge-develop/test/em_fire/
Using fmc_g
- ifort serial (13), nesting 0, configure -d, WRF-Fire-merge-fuel-moisture-model/test/em_fire/ branch fuel-moisture-model c1cedfc7eba28a2ed namelist.input -> namelist.input_hill_simple:
Fuel moisture model
branch fuel-moisture-model, copies of test/em_fire as em_fire_xxxx
- ifort serial (13), nesting 1, configure -d, WRF-Fire-merge-fuel-moisture-model-jm branch fuel-moisture-model-jm 21e4b028d80723ca
- em_fire_orig (no change)
- em_fire_fmc namelist.fire -> namelist.fire_fmc namelist.input -> namelist.input_hill_fuel_moisture
- em_fire_rain/rain (no change)
- ifort serial (13), nesting 1, configure, WRF-Fire-merge-fuel-moisture-model-jm-opt branch fuel-moisture-model-jm 21e4b028d80723ca
- em_fire_orig (no change)
- em_fire_fmc namelist.fire -> namelist.fire_fmc namelist.input -> namelist.input_hill_fuel_moisture
- em_fire_rain/rain (no change)
- ifort dmpar (15), nesting 1, configure, WRF-Fire-merge-fuel-moisture-model-jm-mpi branch fuel-moisture-model-jm 21e4b028d80723ca
- em_fire_orig (no change)
- em_fire_fmc namelist.fire -> namelist.fire_fmc namelist.input -> namelist.input_hill_fuel_moisture
- em_fire_rain/rain (no change)
Angel's test results
All kingspeak runs are in /uufs/chpc.utah.edu/common/home/kochanski-group3/farguella/merge and run on node kingspeak11 and kinspeak12. All the compilation are done using ifort serial (13), nesting 0.
Branch develop vs. added-fmc_g
The branch develop and branch added-fmc_g are in kingspeak in folders WRF-Fire-merge-develop and WRF-Fire-merge-added-fmc_g respectively. They are tested in order to see the first new functionalities of adding variable FMC_G in WRF4 baseline. Tests are from list in https://www.openwfm.org/index.php?title=Porting_WRF-SFIRE_fuel_moisture_model_to_WRF4#Testing_to_be_done.
fire_fmc_read not present in namelist.input
One can observe that both simple hill simulations are exactly the same running
diff WRF-Fire-merge-develop/test/em_fire/wrf.log WRF-Fire-merge-added-fmc_g/test/em_fire/hill_tests/original/wrf.log -I Timing
which returns
10c10 < alloc_space_field: domain 1 , 344571608 bytes allocated --- > alloc_space_field: domain 1 , 345388824 bytes allocated
Therefore, the only difference is in the allocation size as expected.
However, the new branch added-fmc_g is creating new variable FMC_G taken constant value of fuelmc_g from namelist.fire all over the domain. Changing value of fuelmc_g in namelist.fire changes the value of the new variable FMC_G.
fire_fmc_read present in namelist.input
Setting
fire_fmc_read=0
and poblating FMC_G variable in wrfinput_d01 using ncreplace in Matlab. The branch added-fmc_g uses the new FMC_G in the simulation from new wrfinputs. Tested using:
- Constant FMC_G field of 0.07: WRF-Fire-merge-added-fmc_g/test/em_fire/hill_tests/fmc_07.
- Constant FMC_G field of 0.08: WRF-Fire-merge-added-fmc_g/test/em_fire/hill_tests/fmc_08. Exactly the same results that branch develop which was taking the information from namelist.fire file.
- Random FMC_G field: WRF-Fire-merge-added-fmc_g/test/em_fire/hill_tests/fmc_rand. Gives the progression with random bumps as expected.
- Slope FMC_G field: RF-Fire-merge-added-fmc_g/test/em_fire/hill_tests/fmc_slope.