2 use module_fr_sfire_core
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
9 real, dimension(ims:ime,jms:jme)::fuel_frac
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
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/
29 data frac_t(1,1,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/
36 data frac_t(1,1,3)/0.894646573528574/ ! 0.5*(exp(-1)+2)/3+0.5
38 ! keep adding more tests here
39 ! keep adding more tests here
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)