added README_changes.txt
[wrffire.git] / wrfv2_fire / phys / burn_test_main.F
blob4f6da34ff09b1e3cf65a7153091d2c5ec612c3a2
1 program burn_test
2 use module_fr_sfire_core
3 implicit none
4 integer :: ids,ide,jds,jde,ims,ime,jms,jme
5 parameter(ids=1,ide=1,jds=1,jde=1,ims=1,ime=2,jms=1,jme=2)
6 real,  dimension(ims:ime,jms:jme)::lfn,tign
7 real,  dimension(ims:ime,jms:jme)::w
8 real  tnow
9 real,  dimension(ims:ime,jms:jme)::fuel_frac
10 integer ::k,i,j
11 parameter(k=3) ! number of test cases 
12 real,  dimension(ims:ime,jms:jme,k)::lfn_t,tign_t
13 real,  dimension(ims:ime,jms:jme,k)::frac_t
14 real,  dimension(ims:ime,jms:jme,k)::w_t
15 real,  dimension(k)::tnow_t
16 character(len=20),dimension(k)::desc
18 data desc(1)/'all burning'/
19 data ((lfn_t(i,j,1),i=1,2),j=1,2)/-1.0,-2.0,-3.0,-4.0/
20 data ((tign_t(i,j,1),i=1,2),j=1,2)/1.0,2.0,3.0,4.0/
21 data frac_t(1,1,1)/0.142829357916163/ !(exp(-1.0)+exp(-2.0)+exp(-3.0)+exp(-4.0))/4
22 data w_t(1,1,1)/1.0/
23 data tnow_t(1)/5.0/
25 data desc(2)/'nothing burning'/
26 data ((lfn_t(i,j,2),i=1,2),j=1,2)/1.0,2.0,3.0,4.0/
27 data ((tign_t(i,j,2),i=1,2),j=1,2)/1.0,2.0,3.0,4.0/
28 data w_t(1,1,2)/2.0/
29 data frac_t(1,1,2)/1.0/
30 data tnow_t(2)/1.0/
32 data desc(3)/'fireline on diagonal'/
33 data ((lfn_t(i,j,3),i=1,2),j=1,2)/-1.0,0.0,0.0,1.0/
34 data ((tign_t(i,j,3),i=1,2),j=1,2)/1.0,0.0,0.0,0.0/
35 data w_t(1,1,3)/2.0/
36 data frac_t(1,1,3)/0.894646573528574/  ! 0.5*(exp(-1)+2)/3+0.5
37 data tnow_t(3)/2.0/
38 ! keep adding more tests here
39 ! keep adding more tests here
41 do i=1,k
42     lfn=lfn_t(:,:,i)
43     tign=tign_t(:,:,i)
44     w=w_t(1,1,i)
45     tnow=tnow_t(i)
46     call fuel_left(1,ids,ide,jds,jde,ims,ime,jms,jme,lfn,tign,w,tnow,fuel_frac)
47     write(*,1) i, desc(i), fuel_frac(1,1), frac_t(1,1,i), (fuel_frac(1,1)-frac_t(1,1,i)) 
48 1   format( i3,1x, a,' fuel_frac', f8.5,' should be', f8.5,' error', g11.3)
49 enddo
51 end program burn_test