Porting WRF-SFIRE fuel moisture model to WRF4
Preparing pull request
- http://www2.mmm.ucar.edu/wrf/users/testing.html Testing requirements
- http://www2.mmm.ucar.edu/wrf/users/contrib_info.php Information for WRF contributors (outdated but still relevant)
- How to write the perfect pull request
Initial progress
- I started branch fuel-moisture-model from branch develop as requested in WRF instructions. Note that the current WRF is at tag v4.0.3 which is a few commits behind branch develop.
- Cherry pick f8193dad36 2011-09-25 adding moisture variables and 5a6c4b8c06 2011-09-26 21:55:09 using variable fuel moisture in fmc_g. Making minimal changes against original. I had to check and understand any changes not just resolve the conflicts. Hard to automate. So that took a bit of time.
- I created branch added-fmc_g at 132444f0db6754417 . It should give the same numbers as current branch develop (at commit 0f296f9c0f674f941a7 ) when fire_fmc_read=1 in namelist.input or not present, and take fmc_g from wrfinput when fire_fmc_read=0.
- This is how it is in this stage of the code for testing, but the use of fire_fmc_read has changed in further commits after 2011-09-26 so the inputs will be different after the port is completed.
Testing of fmc_g added
Get the test code:
git clone https://github.com/openwfm/WRF-Fire-merge.git cd WRF-Fire-merge git checkout added-fmc_g git log
to make sure you are at commit 132444f0db67544179c7998f5653c488dd41e836 . Build on kingspeak following How_to_build_WRF4#University_of_Utah_CHPC and run the basic hill test case:
cd test/em_fire ./ideal.exe ./wrf.exe >& wrf.log &
This will use fuel moisture from namelist.fire. To read fmc_g from wrfinput, set
fire_fmc_read=0
in namelist input. This will change as more of wrf-fire is merged in. In any case, fmc_g in wrfinput has to be set by other means, such as using ncreplace in Matlab.
To run real problem, build WPS for this WRF. Variable fmc_g should be in wrfinput but not set, you have to set it by other means.
Testing to be done
- Compare builds and execution paths:
- Build from branch develop vs. branch added-fmc_g, both with fire_fmc_read not present in namelist.input. The numbers should be exactly the same.
- Change fuelmc_g in namelist.fire to see if it is having the expected effect
- Test the build from branch added-fmc_g with fire_fmc_read=0 in namelist.input and with fmc_g manually inserted into wrfinput, to see if it is working as expected
- From the testing I have already done it seems that the code is slow. I do not know why. I do not know if that is already the case for WRF4 (currently at 4.0.3). Compare speed with wrf-fire on the hill problem.
- So just in case, I created branch v4.0.3-added-fmc_g which is the same as branch added-fmc_g except it is based on current branch master instead of branch develop and I am testing the hill problem there and in branch master. But are no differences in the fire model files.
- Real problems need to be tested, with data processed by WPS4
Continued progress
The WRF4 code with the fuel moisture model from wrf-fire is being created in branch fuel-moisture-model and testing is in progress. Note that the merge is started from branch develop as requested in WRF instructions. The current WRF is at tag v4.0.3 which is few commits behind branch develop.