[DebianGIS-dev] [SCM] saga branch, master, updated. b8230fab024e83611721aff588e712ea1db1c3e8

Johan Van de Wauw johan.vandewauw at gmail.com
Thu Mar 18 08:47:36 UTC 2010


The following commit has been merged in the master branch:
commit c6b4af7ee67ff16511535ed67596ad1ff0974c36
Author: Johan Van de Wauw <johan.vandewauw at gmail.com>
Date:   Thu Mar 18 08:05:32 2010 +0100

    Remove sim_fire_spreading (not DFSG free)

diff --git a/src/modules_simulation/Makefile.am b/src/modules_simulation/Makefile.am
index 71a438b..39e85c9 100644
--- a/src/modules_simulation/Makefile.am
+++ b/src/modules_simulation/Makefile.am
@@ -1 +1 @@
-SUBDIRS = hydrology fire ecosystems cellular_automata
+SUBDIRS = hydrology ecosystems cellular_automata
diff --git a/src/modules_simulation/Makefile.in b/src/modules_simulation/Makefile.in
index a429e4b..cade675 100644
--- a/src/modules_simulation/Makefile.in
+++ b/src/modules_simulation/Makefile.in
@@ -203,7 +203,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = hydrology fire ecosystems cellular_automata
+SUBDIRS = hydrology ecosystems cellular_automata
 all: all-recursive
 
 .SUFFIXES:
diff --git a/src/modules_simulation/fire/Makefile.am b/src/modules_simulation/fire/Makefile.am
deleted file mode 100644
index 89a4b6f..0000000
--- a/src/modules_simulation/fire/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = sim_fire_spreading
diff --git a/src/modules_simulation/fire/Makefile.in b/src/modules_simulation/fire/Makefile.in
deleted file mode 100644
index 2027369..0000000
--- a/src/modules_simulation/fire/Makefile.in
+++ /dev/null
@@ -1,556 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/modules_simulation/fire
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-	distdir
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POW_LIB = @POW_LIB@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-SUBDIRS = sim_fire_spreading
-all: all-recursive
-
-.SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules_simulation/fire/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/modules_simulation/fire/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-$(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	rev=''; for subdir in $$list; do \
-	  if test "$$subdir" = "."; then :; else \
-	    rev="$$subdir $$rev"; \
-	  fi; \
-	done; \
-	rev="$$rev ."; \
-	target=`echo $@ | sed s/-recursive//`; \
-	for subdir in $$rev; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done && test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test -d "$(distdir)/$$subdir" \
-	    || $(MKDIR_P) "$(distdir)/$$subdir" \
-	    || exit 1; \
-	  fi; \
-	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-recursive
-all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-recursive
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
-	install-am install-strip tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am check check-am clean clean-generic clean-libtool \
-	ctags ctags-recursive distclean distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/modules_simulation/fire/sim_fire_spreading/Forecasting.cpp b/src/modules_simulation/fire/sim_fire_spreading/Forecasting.cpp
deleted file mode 100644
index 23f43c7..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/Forecasting.cpp
+++ /dev/null
@@ -1,663 +0,0 @@
-/*******************************************************************************
-    Forecasting.cpp
-    Copyright (C) Victor Olaya
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*******************************************************************************/ 
-
-//#include "../../../modules/grid/grid_tools/Grid_Gaps.h"
-
-#include "Forecasting.h"
-
-#include <time.h>
-
-#define MS2FTMIN (60.0 / 0.3048)
-#define FTMIN2MMIN 0.3048
-#define MIN_RATIO_BURNT_AREA 2.
-
-CForecasting::CForecasting(void){
-
-	Set_Name		(_TL("Fire Risk Analysis"));
-	Set_Author		(_TL("(c) 2004 Victor Olaya"));
-	Set_Description	(_TW(
-		"Fire risk analysis based on the BEHAVE fire modeling system "
-		"supported by the U.S. Forest Service, Fire and Aviation Management. "
-		"Find more information on BEHAVE at the <i>Public Domain Software for the Wildland Fire Community</i> at "
-		"<a target=\"_blank\" href=\"http://fire.org\">http://fire.org</a>\n"
-		"\n"
-		"Reference:\n"
-		"Andrews, P.L. (1986): BEHAVE: Fire Behavior Prediction and Fuel Modeling System - "
-		"Burn Subsystem, Part 1. U.S. Department of Agriculture, Forest Service General, Technical Report INT-194. "
-	));
-
-	Parameters.Add_Grid(NULL, 
-						"DEM", 
-						_TL("DEM"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"FUEL", 
-						_TL("Fuel Model"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"WINDSPD", 
-						_TL("Wind Speed"),
-						_TL("Wind Speed (m/s)"), 
-						PARAMETER_INPUT);
-	
-	Parameters.Add_Grid(NULL, 
-						"WINDDIR", 
-						_TL("Wind Direction"), 
-						_TL("Wind Direction (degrees clockwise from north)"),
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"M1H", 
-						_TL("Dead Fuel Moisture 1H"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"M10H", 
-						_TL("Dead Fuel Moisture 10H"),
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"M100H", 
-						_TL("Dead Fuel Moisture 100H"),
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"MHERB", 
-						_TL("Herbaceous Fuel Moisture"),
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"MWOOD", 
-						_TL("Wood Fuel Moisture"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"VALUE", 
-						_TL("Value"), 
-						_TL(""), 
-						PARAMETER_INPUT_OPTIONAL);
-	
-	Parameters.Add_Grid(NULL, 
-						"BASEPROB", 
-						_TL("Base Probability"), 
-						_TL(""), 
-						PARAMETER_INPUT_OPTIONAL);	
-	
-	Parameters.Add_Grid(NULL, 
-						"DANGER", 
-						_TL("Danger"), 
-						_TL(""), 
-						PARAMETER_OUTPUT);
-	
-	Parameters.Add_Grid(NULL, 
-						"COMPPROB", 
-						_TL("Compound Probability"), 
-						_TL(""), 
-						PARAMETER_OUTPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"PRIORITY", 
-						_TL("Priority Index"), 
-						_TL(""), 
-						PARAMETER_OUTPUT);
-
-	Parameters.Add_Value(NULL,
-						"MONTECARLO",
-						_TL("Number of Events"),
-						_TL("N\xc3\xbamero of Monte-Carlo events"),
-						PARAMETER_TYPE_Int,
-						1000,
-						1.,
-						true);
-
-	Parameters.Add_Value(NULL,
-						"INTERVAL",
-						_TL("Fire Length"),
-						_TL("Fire Length (min)"),
-						PARAMETER_TYPE_Double,
-						100,
-						1.,
-						true);
-
-
-}//constructor
-
-CForecasting::~CForecasting(void)
-{
-}//destructor
-
-bool CForecasting::On_Execute(void){
-
-	AssignParameters();
-	CalculateGrids();
-
-	delete m_pSlopeGrid;
-	delete m_pAspectGrid;
-
-	return true;
-
-}//method
-
-bool CForecasting::AssignParameters(){
-
-	int x,y;
-
-	m_pDEM = Parameters("DEM")->asGrid();
-	m_pFuelGrid = Parameters("FUEL")->asGrid();
-	m_pWindDirGrid = Parameters("WINDDIR")->asGrid();
-	m_pWindSpdGrid = Parameters("WINDSPD")->asGrid();
-	m_pM1Grid = Parameters("M1H")->asGrid();
-	m_pM10Grid = Parameters("M10H")->asGrid();
-	m_pM100Grid = Parameters("M100H")->asGrid();
-	m_pMHerbGrid = Parameters("MHERB")->asGrid();
-	m_pMWoodGrid = Parameters("MWOOD")->asGrid();
-	m_pDangerGrid = Parameters("DANGER")->asGrid();
-	m_pValueGrid = Parameters("VALUE")->asGrid();
-	m_pBaseProbabilityGrid = Parameters("BASEPROB")->asGrid();
-	m_pCompoundProbabilityGrid = Parameters("COMPPROB")->asGrid();
-	m_pPriorityIndexGrid = Parameters("PRIORITY")->asGrid();
-	m_iInterval = Parameters("INTERVAL")->asInt();
-	m_iNumEvents = Parameters("MONTECARLO")->asInt();
-
-	/* create a standard fuel model catalog and a flame length table. */
-    m_Catalog = Fire_FuelCatalogCreateStandard("Standard", 13);
-    Fire_FlameLengthTable(m_Catalog, 500, 0.1);
-
-	if (!m_pBaseProbabilityGrid){
-		m_pBaseProbabilityGrid = SG_Create_Grid(m_pDEM, SG_DATATYPE_Double);
-		m_pBaseProbabilityGrid->Assign(1);
-	}//if
-	if (!m_pValueGrid){
-		m_pValueGrid = SG_Create_Grid(m_pDEM, SG_DATATYPE_Double);
-		m_pValueGrid->Assign(1);
-	}//if
-
-	//substitute no-data values
-	for(y=0; y<Get_NY() && Set_Progress(y); y++){		
-		for(x=0; x<Get_NX(); x++){
-
-			if (m_pWindSpdGrid->is_NoData(x, y)){
-				m_pWindSpdGrid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pWindDirGrid->is_NoData(x, y)){
-				m_pWindDirGrid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pM1Grid->is_NoData(x, y)){
-				m_pM1Grid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pM10Grid->is_NoData(x, y)){
-				m_pM10Grid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pM100Grid->is_NoData(x, y)){
-				m_pM100Grid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pMHerbGrid->is_NoData(x, y)){
-				m_pMHerbGrid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pMWoodGrid->is_NoData(x, y)){
-				m_pMWoodGrid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pBaseProbabilityGrid->is_NoData(x, y)){
-				m_pBaseProbabilityGrid->Set_Value(x, y, 0.);
-			}//if
-
-		}//for
-	}//for
-
-
-	//-----------------------------------------------------
-	// calculate slope and aspect using CSG_Grid class'
-	// built-in function (after Zevenbergen & Thorne)...
-
-	m_pSlopeGrid	= SG_Create_Grid(m_pDEM, SG_DATATYPE_Double);
-	m_pAspectGrid	= SG_Create_Grid(m_pDEM, SG_DATATYPE_Double);
-
-	for(y=0; y<Get_NY() && Set_Progress(y); y++)
-	{		
-		for(x=0; x<Get_NX(); x++)
-		{
-			double	slope, aspect;
-
-			if( m_pDEM->Get_Gradient(x, y, slope, aspect) )
-			{
-				m_pSlopeGrid	->Set_Value(x, y, slope);
-				m_pAspectGrid	->Set_Value(x, y, aspect);
-			}
-			else
-			{
-				m_pSlopeGrid	->Set_NoData(x, y);
-				m_pAspectGrid	->Set_NoData(x, y);
-			}
-		}
-	}
-
-
-	//-----------------------------------------------------
-	m_pTimeGrid = SG_Create_Grid(m_pDEM, SG_DATATYPE_Double);
-
-	m_pTimeGrid->Assign((double)0);
-	m_pDangerGrid->Assign((double)0);
-	m_pCompoundProbabilityGrid->Assign((double)0);	
-	
-	//m_pPriorityIndexGrid = Get_SafeNew_Grid(m_pDEM, SG_DATATYPE_Double);
-
-	return true;
-
-}//method
-
-
-void CForecasting::CalculateGrids(){
-	
-	int x,y;
-	int i;
-	int iRecommendedNumFires;
-	double dDanger;
-	double dTotalBurntArea = 0;
-	CSG_String sMessage;
-
-	m_CentralPoints	.Clear();
-	m_AdjPoints		.Clear();
-
-	srand(time(NULL));
-
-	Process_Set_Text(_TL("Calculating danger..."));
-	for(i=0; i<m_iNumEvents && Set_Progress(i, m_iNumEvents); i++){
-		x = rand() % (m_pDEM->Get_NX()-1);
-		y = rand() % (m_pDEM->Get_NY()-1);
-		m_CentralPoints.Clear();
-		m_CentralPoints.Add(x,y);
-		m_pTimeGrid->Set_Value(x,y,0.0);	
-		dDanger = CalculateFireSpreading();
-		dTotalBurntArea += dDanger;
-		m_pDangerGrid->Set_Value(x, y, dDanger);		
-	}//for
-
-	m_CentralPoints	.Clear();
-	m_AdjPoints		.Clear();
-
-	m_pDangerGrid->Set_NoData_Value(0.0);
-	m_pDangerGrid->Set_Unit(_TL("m2/h"));
-	
-	Process_Set_Text(_TL("Closing Gaps..."));
-
-	if(	!Gaps_Close(m_pDangerGrid) )
-	{
-		return;
-	}//if
-
-	for (y=0; y<Get_NY(); y++){
-		for (x=0; x<Get_NX(); x++){
-			m_pCompoundProbabilityGrid->Set_Value(x,y, 
-				m_pCompoundProbabilityGrid->asFloat(x,y) / (float)m_iNumEvents);
-			m_pPriorityIndexGrid->Set_Value(x, y, m_pCompoundProbabilityGrid->asFloat(x,y)*
-				m_pDangerGrid->asFloat(x,y));
-		}//for
-	}//for
-
-	float dRatio = (float)(dTotalBurntArea / (m_pDEM->Get_Cellsize() * m_pDEM->Get_Cellsize()));
-	if (dRatio < MIN_RATIO_BURNT_AREA){
-		iRecommendedNumFires =(int)((float) m_iNumEvents / dRatio * (float) MIN_RATIO_BURNT_AREA);
-		sMessage.Printf(
-			_TL("** Warning : Number of events might not be representative.\nMinimum number recommended: ")
-		);
-		sMessage	+= SG_Get_String(iRecommendedNumFires, 0);
-		sMessage	+= SG_T("\n");
-		Message_Add(sMessage.c_str());
-	}//if
-
-}//method
-
-double CForecasting::CalculateFireSpreading(){
-
-	int x,y;
-	int x2,y2;
-	int n;
-	bool bReturn = false;
-	/* neighbor's address*/   /* N  NE   E  SE   S  SW   W  NW */
-	static int nX[8] =        {  0,  1,  1,  1,  0, -1, -1, -1};
-    static int nY[8] =        {  1,  1,  0, -1, -1, -1,  0,  1};
-	double nDist[8];          /* distance to each neighbor */
-    double nAzm[8];           /* compass azimuth to each neighbor (0=N) */	
-	size_t modelNumber;       /* fuel model number at current cell */
-    double moisture[6];       /* fuel moisture content at current cell */
-    double dSpreadRate;       /* spread rate in direction of neighbor */
-    double dSpreadTime;       /* time to spread from cell to neighbor */
-    double dIgnTime;          /* time neighbor is ignited by current cell */
-	double dWindSpd;
-	double dBurntValue = 0;
-	double dProbability;
-
-	m_pTimeGrid->Assign(0.0);
-	
-    for (n=0; n<8; n++){
-        nDist[n] = sqrt ( nX[n] * m_pDEM->Get_Cellsize() * nX[n] * m_pDEM->Get_Cellsize()
-                        + nY[n] * m_pDEM->Get_Cellsize() * nY[n] * m_pDEM->Get_Cellsize() );
-        nAzm[n] = n * 45.;
-    }//for
-
-	x = m_CentralPoints.Get_X(0);
-	y = m_CentralPoints.Get_Y(0);
-	dProbability = (float)(rand()) / (float)(RAND_MAX); 
-
-	if (m_pBaseProbabilityGrid->asFloat(x,y) < dProbability){
-		return 0;
-	}//if
-
-	while (m_CentralPoints.Get_Count()!=0){
-
-		for (int iPt=0; iPt<m_CentralPoints.Get_Count();iPt++){
-
-			x = m_CentralPoints.Get_X(iPt);
-			y = m_CentralPoints.Get_Y(iPt);
-
-			if (!m_pDEM->is_NoData(x,y) && !m_pFuelGrid->is_NoData(x,y)){
-
-				modelNumber = (size_t) m_pFuelGrid->asInt(x, y);
-				moisture[0] = m_pM1Grid->asFloat(x, y);
-				moisture[1] = m_pM10Grid->asFloat(x, y);
-				moisture[2] = m_pM100Grid->asFloat(x, y);
-				moisture[3] = m_pM100Grid->asFloat(x, y);
-				moisture[4] = m_pMHerbGrid->asFloat(x, y);;
-				moisture[5] = m_pMWoodGrid->asFloat(x, y);
-				dWindSpd = m_pWindSpdGrid->asFloat(x,y)  * MS2FTMIN; 
-				Fire_SpreadNoWindNoSlope(m_Catalog, modelNumber, moisture);
-				Fire_SpreadWindSlopeMax(m_Catalog, modelNumber, dWindSpd,
-										 m_pWindDirGrid->asFloat(x,y), tan(m_pSlopeGrid->asFloat(x,y)),
-										 m_pAspectGrid->asFloat(x,y, true));
-
-				for (n=0; n<8; n++){
-					x2 = x + nX[n];
-					y2 = y + nY[n];
-					if (m_pTimeGrid->is_InGrid(x2,y2,false)){
-						Fire_SpreadAtAzimuth(m_Catalog, modelNumber, nAzm[n], FIRE_NONE);
-						dSpreadRate = Fuel_SpreadAny(m_Catalog, modelNumber); // in ft/min (awkward...)					
-						dSpreadRate *= FTMIN2MMIN; //a bit better...
-						if (dSpreadRate > Smidgen){
-							dSpreadTime = nDist[n] / dSpreadRate;
-							dIgnTime = 	m_pTimeGrid->asDouble(x,y) + dSpreadTime;												
-							if (dIgnTime < m_iInterval){
-								if (m_pTimeGrid->asDouble(x2,y2) == 0.0 
-										|| m_pTimeGrid->asDouble(x2, y2)>dIgnTime){
-									if (m_pTimeGrid->asDouble(x2, y2)==0.0){
-										dBurntValue += m_pValueGrid->asDouble(x2, y2);
-										m_pCompoundProbabilityGrid->Set_Value(x2,y2,
-											m_pCompoundProbabilityGrid->asFloat(x2,y2) + 1);
-									}//if
-									m_pTimeGrid->Set_Value(x2, y2, dIgnTime);
-									m_AdjPoints.Add(x2,y2);									
-								}//if							
-							}//if
-						}//if					
-					}//if
-				}//for
-			}//if
-		}//for
-
-		m_CentralPoints.Clear();
-		for (int i=0; i<m_AdjPoints.Get_Count(); i++){
-			x= m_AdjPoints.Get_X(i);
-			y = m_AdjPoints.Get_Y(i);
-			m_CentralPoints.Add(x, y);
-		}//for
-		m_AdjPoints.Clear();
-
-	}//while
-
-	return dBurntValue;
-
-}//method
-
-
-///////////////////////////////////////////////////////////
-//														 //
-//														 //
-//														 //
-///////////////////////////////////////////////////////////
-
-//---------------------------------------------------------
-bool CForecasting::Gaps_Close(CSG_Grid *pInput)
-{
-	int			iStep, iStart, n;
-	double		max, Threshold;
-	CSG_Grid	*pResult, *pTension_Keep, *pTension_Temp;
-
-	//-----------------------------------------------------
-	pResult		= pInput;
-	pInput		= SG_Create_Grid(pInput);
-	pInput->Assign(pResult);
-
-	//-----------------------------------------------------
-	Threshold	= 0.1;
-
-	n			= Get_NX() > Get_NY() ? Get_NX() : Get_NY();
-	iStep		= 0;
-	do	{	iStep++;	}	while( pow(2.0, iStep + 1) < n );
-	iStart		= (int)pow(2.0, iStep);
-
-	pTension_Keep		= new CSG_Grid(pResult, SG_DATATYPE_Byte);
-	pTension_Temp		= new CSG_Grid(pResult);
-
-	pResult->Assign_NoData();
-
-	for(iStep=iStart; iStep>=1; iStep/=2)
-	{
-		Gaps_Tension_Init(iStep, pTension_Temp, pTension_Keep, pResult, pInput);
-
-		do
-		{
-			max		= Gaps_Tension_Step(iStep, pTension_Temp, pTension_Keep, pResult);
-		}
-		while( max > Threshold && Process_Get_Okay(true) );
-	}
-
-	//-----------------------------------------------------
-	delete(pTension_Keep);
-	delete(pTension_Temp);
-	delete(pInput);
-
-	return( true );
-}
-
-//---------------------------------------------------------
-void CForecasting::Gaps_Tension_Init(int iStep, CSG_Grid *pTension_Temp, CSG_Grid *pTension_Keep, CSG_Grid *pResult, CSG_Grid *pInput)
-{
-	int		x, y, i, ix, iy, nx, ny, nz;
-	double	z;
-
-	//-----------------------------------------------------
-	// 1. Channels...
-
-	pTension_Temp->Assign_NoData();
-	pTension_Keep->Assign();
-
-	for(y=0; y<Get_NY(); y+=iStep)
-	{
-		ny	= y + iStep < Get_NY() ? y + iStep : Get_NY();
-
-		for(x=0; x<Get_NX(); x+=iStep)
-		{
-			if( !pInput->is_NoData(x, y) )
-			{
-				pTension_Temp->Set_Value(x, y, pInput->asDouble(x, y) );
-				pTension_Keep->Set_Value(x, y, 1.0);
-			}
-			else
-			{
-				nx	= x + iStep < Get_NX() ? x + iStep : Get_NX();
-				nz	= 0;
-				z	= 0.0;
-
-				for(iy=y; iy<ny; iy++)
-				{
-					for(ix=x; ix<nx; ix++)
-					{
-						if( pInput->is_InGrid(ix, iy) )
-						{
-							z	+= pInput->asDouble(ix, iy);
-							nz++;
-						}
-					}
-				}
-
-				if( nz > 0 )
-				{
-					pTension_Temp->Set_Value(x, y, z / (double)nz );
-					pTension_Keep->Set_Value(x, y, 1.0);
-				}
-			}
-		}
-	}
-
-	//-----------------------------------------------------
-	// 2. Previous Iteration...
-
-	for(y=0; y<Get_NY(); y+=iStep)
-	{
-		for(x=0; x<Get_NX(); x+=iStep)
-		{
-			if( pTension_Keep->asByte(x, y) == false )
-			{
-				if( !pResult->is_NoData(x, y) )
-				{
-					pTension_Temp->Set_Value(x, y, pResult->asDouble(x, y));
-				}
-				else
-				{
-					nz	= 0;
-					z	= 0.0;
-
-					for(i=0; i<8; i++)
-					{
-						ix	= x + iStep * Get_System()->Get_xTo(i);
-						iy	= y + iStep * Get_System()->Get_yTo(i);
-
-						if( pResult->is_InGrid(ix, iy) )
-						{
-							z	+= pResult->asDouble(ix, iy);
-							nz++;
-						}
-					}
-
-					if( nz > 0.0 )
-					{
-						pTension_Temp->Set_Value(x, y, z / (double)nz);
-					}
-					else
-					{
-						pTension_Temp->Set_Value(x, y, pInput->asDouble(x, y));
-					}
-				}
-			}
-		}
-	}
-
-	//-----------------------------------------------------
-	// 3. ...
-
-	pResult->Assign(pTension_Temp);
-}
-
-//---------------------------------------------------------
-double CForecasting::Gaps_Tension_Step(int iStep, CSG_Grid *pTension_Temp, CSG_Grid *pTension_Keep, CSG_Grid *pResult)
-{
-	int		x, y;
-	double	d, dMax;
-
-	dMax	= 0.0;
-
-	for(y=0; y<Get_NY(); y+=iStep)
-	{
-		for(x=0; x<Get_NX(); x+=iStep)
-		{
-			if( pTension_Keep->asByte(x, y) == false )
-			{
-				d	= Gaps_Tension_Change(x, y, iStep, pResult);
-
-				pTension_Temp->Set_Value(x, y, d);
-
-				d	= fabs(d - pResult->asDouble(x, y));
-
-				if( d > dMax )
-				{
-					dMax	= d;
-				}
-			}
-		}
-	}
-
-	for(y=0; y<Get_NY(); y+=iStep)
-	{
-		for(x=0; x<Get_NX(); x+=iStep)
-		{
-			if( pTension_Keep->asByte(x, y) == false )
-			{
-				pResult->Set_Value(x, y, pTension_Temp->asDouble(x, y));
-			}
-		}
-	}
-
-	return( dMax );
-}
-
-//---------------------------------------------------------
-double CForecasting::Gaps_Tension_Change(int x, int y, int iStep, CSG_Grid *pResult)
-{
-	int		i, ix, iy;
-	double	n, d, dz;
-
-	for(i=0, d=0.0, n=0.0; i<8; i++)
-	{
-		ix	= x + iStep * Get_System()->Get_xTo(i);
-		iy	= y + iStep * Get_System()->Get_yTo(i);
-
-		if( pResult->is_InGrid(ix, iy) )
-		{
-			dz	= 1.0 / Get_System()->Get_UnitLength(i);
-			d	+= dz * pResult->asDouble(ix, iy);
-			n	+= dz;
-		}
-	}
-
-	if( n > 0.0 )
-	{
-		d	/= n;
-
-		return( d );
-	}
-
-	return( pResult->asDouble(x, y) );
-}
-
-
-///////////////////////////////////////////////////////////
-//														 //
-//														 //
-//														 //
-///////////////////////////////////////////////////////////
-
-//---------------------------------------------------------
diff --git a/src/modules_simulation/fire/sim_fire_spreading/Forecasting.h b/src/modules_simulation/fire/sim_fire_spreading/Forecasting.h
deleted file mode 100644
index 952d44e..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/Forecasting.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
-    Forecasting.h
-    Copyright (C) Victor Olaya
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*******************************************************************************/ 
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "MLB_Interface.h"
-#include "fireLib.h"
-
-class CForecasting : public CSG_Module_Grid {
-
-private:
-
-	CSG_Grid *m_pDEM;    
-    CSG_Grid *m_pWindSpdGrid;       /* ptr to wind speed map (m/s) */
-    CSG_Grid *m_pWindDirGrid;       /* ptr to wind direction map (deg from north) */
-    CSG_Grid *m_pM1Grid;            /* ptr to 1-hr dead fuel moisture map */
-    CSG_Grid *m_pM10Grid;           /* ptr to 10-hr dead fuel moisture map */
-    CSG_Grid *m_pM100Grid;          /* ptr to 100-hr dead fuel moisture map */
-    CSG_Grid *m_pMHerbGrid;         /* ptr to live herbaceous fuel moisture map */
-    CSG_Grid *m_pMWoodGrid;         /* ptr to live stem fuel moisture map */
-	CSG_Grid *m_pFuelGrid;          /* ptr to fuel model map */
-	CSG_Grid *m_pValueGrid;		 /* ptr to cell value map */
-
-	CSG_Grid *m_pDangerGrid;       /* ptr to danger map (in burnt m2 / h) */
-	CSG_Grid *m_pBaseProbabilityGrid; 
-	CSG_Grid *m_pCompoundProbabilityGrid;
-
-	CSG_Grid *m_pPriorityIndexGrid;
-
-    CSG_Grid *m_pSlopeGrid;         /* ptr to slope map (rise/reach) */
-    CSG_Grid *m_pAspectGrid;        /* ptr to aspect map (degrees from north) */
-
-	CSG_Grid *m_pTimeGrid;
-	
-	FuelCatalogPtr m_Catalog;    /* fuel catalog handle */
-
-	CSG_Points_Int	m_CentralPoints;
-	CSG_Points_Int	m_AdjPoints;
-
-	int m_iInterval;
-	int m_iNumEvents;
-
-	bool AssignParameters();
-	void CalculateGrids();	
-	double CalculateFireSpreading();
-
-	bool	Gaps_Close			(CSG_Grid *pInput);
-	void	Gaps_Tension_Init	(int iStep, CSG_Grid *pTension_Temp, CSG_Grid *pTension_Keep, CSG_Grid *pResult, CSG_Grid *pInput);
-	double	Gaps_Tension_Step	(int iStep, CSG_Grid *pTension_Temp, CSG_Grid *pTension_Keep, CSG_Grid *pResult);
-	double	Gaps_Tension_Change	(int x, int y, int iStep, CSG_Grid *pResult);
-
-
-public:
-
-	CForecasting(void);
-	virtual ~CForecasting(void);
-
-protected:
-
-	virtual bool On_Execute(void);
-
-};
-
diff --git a/src/modules_simulation/fire/sim_fire_spreading/MLB_Interface.cpp b/src/modules_simulation/fire/sim_fire_spreading/MLB_Interface.cpp
deleted file mode 100644
index 9bb57c4..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/MLB_Interface.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-
-///////////////////////////////////////////////////////////
-//                                                       //
-//                         SAGA                          //
-//                                                       //
-//    System for an Automated Geo-Scientific Analysis    //
-//                                                       //
-//                    Module Library:                    //
-//                      Fire_Spreading                   //
-//                                                       //
-//-------------------------------------------------------//
-//                                                       //
-//                   MLB_Interface.cpp                   //
-//                                                       //
-//                 Copyright (C) 2003 by                 //
-//                      Olaf Conrad                      //
-//                                                       //
-//-------------------------------------------------------//
-//                                                       //
-// This file is part of 'SAGA - System for an Automated  //
-// Geo-Scientific Analysis'. SAGA is free software; you  //
-// can redistribute it and/or modify it under the terms  //
-// of the GNU General Public License as published by the //
-// Free Software Foundation; version 2 of the License.   //
-//                                                       //
-// SAGA is distributed in the hope that it will be       //
-// useful, but WITHOUT ANY WARRANTY; without even the    //
-// implied warranty of MERCHANTABILITY or FITNESS FOR A  //
-// PARTICULAR PURPOSE. See the GNU General Public        //
-// License for more details.                             //
-//                                                       //
-// You should have received a copy of the GNU General    //
-// Public License along with this program; if not,       //
-// write to the Free Software Foundation, Inc.,          //
-// 59 Temple Place - Suite 330, Boston, MA 02111-1307,   //
-// USA.                                                  //
-//                                                       //
-//-------------------------------------------------------//
-//                                                       //
-//    e-mail:     volaya at saga-gis.org                    //
-//                                                       //
-//    contact:    Victor Olaya                           //
-//                Spain                                  //
-//                                                       //
-///////////////////////////////////////////////////////////
-
-
-///////////////////////////////////////////////////////////
-//														 //
-//			The Module Link Library Interface			 //
-//														 //
-///////////////////////////////////////////////////////////
-
-#include "MLB_Interface.h"
-
-const SG_Char * Get_Info(int i)
-{
-	switch( i )
-	{
-	case MLB_INFO_Name:	default:
-		return( _TL("Simulation - Fire Spreading Analysis") );
-
-	case MLB_INFO_Author:
-		return( _TL("Victor Olaya (c) 2004") );
-
-	case MLB_INFO_Description:
-		return( _TW(
-			"Fire spreading analyses based on the BEHAVE fire modeling system "
-			"supported by the U.S. Forest Service, Fire and Aviation Management. "
-			"Find more information on BEHAVE at the <i>Public Domain Software for the Wildland Fire Community</i> at "
-			"<a target=\"_blank\" href=\"http://fire.org\">http://fire.org</a>\n"
-			"\n"
-			"Reference:\n"
-			"Andrews, P.L. (1986): BEHAVE: Fire Behavior Prediction and Fuel Modeling System - "
-			"Burn Subsystem, Part 1. U.S. Department of Agriculture, Forest Service General, Technical Report INT-194. "
-		));
-
-	case MLB_INFO_Version:
-		return( SG_T("1.0") );
-
-	case MLB_INFO_Menu_Path:
-		return( _TL("Simulation|Fire Spreading") );
-	}
-}
-
-#include "Simulate.h"
-#include "Forecasting.h"
-
-CSG_Module *		Create_Module(int i)
-{
-
-	CSG_Module	*pModule;
-
-	switch( i )
-	{
-	case 0:
-		pModule	= new CForecasting;
-		break;
-
-	case 1:
-		pModule	= new CSimulate;
-		break;
-
-	default:
-		pModule	= NULL;
-		break;
-	}
-
-	return( pModule );
-}
-
-
-///////////////////////////////////////////////////////////
-//														 //
-//														 //
-//														 //
-///////////////////////////////////////////////////////////
-
-//---------------------------------------------------------
-//{{AFX_SAGA
-
-	MLB_INTERFACE
-
-//}}AFX_SAGA
diff --git a/src/modules_simulation/fire/sim_fire_spreading/MLB_Interface.h b/src/modules_simulation/fire/sim_fire_spreading/MLB_Interface.h
deleted file mode 100644
index 13eb7f2..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/MLB_Interface.h
+++ /dev/null
@@ -1,69 +0,0 @@
-
-///////////////////////////////////////////////////////////
-//                                                       //
-//                         SAGA                          //
-//                                                       //
-//      System for Automated Geoscientific Analyses      //
-//                                                       //
-//                    Module Library:                    //
-//                   Terrain_Analysis                    //
-//                                                       //
-//-------------------------------------------------------//
-//                                                       //
-//                    MLB_Interface.h                    //
-//                                                       //
-//                 Copyright (C) 2003 by                 //
-//                      Olaf Conrad                      //
-//                                                       //
-//-------------------------------------------------------//
-//                                                       //
-// This file is part of 'SAGA - System for Automated     //
-// Geoscientific Analyses'. SAGA is free software; you   //
-// can redistribute it and/or modify it under the terms  //
-// of the GNU General Public License as published by the //
-// Free Software Foundation; version 2 of the License.   //
-//                                                       //
-// SAGA is distributed in the hope that it will be       //
-// useful, but WITHOUT ANY WARRANTY; without even the    //
-// implied warranty of MERCHANTABILITY or FITNESS FOR A  //
-// PARTICULAR PURPOSE. See the GNU General Public        //
-// License for more details.                             //
-//                                                       //
-// You should have received a copy of the GNU General    //
-// Public License along with this program; if not,       //
-// write to the Free Software Foundation, Inc.,          //
-// 59 Temple Place - Suite 330, Boston, MA 02111-1307,   //
-// USA.                                                  //
-//                                                       //
-//-------------------------------------------------------//
-//                                                       //
-//    contact:    Olaf Conrad                            //
-//                Institute of Geography                 //
-//                University of Goettingen               //
-//                Goldschmidtstr. 5                      //
-//                37077 Goettingen                       //
-//                Germany                                //
-//                                                       //
-//    e-mail:     oconrad at saga-gis.org                   //
-//                                                       //
-///////////////////////////////////////////////////////////
-
-//---------------------------------------------------------
-
-
-///////////////////////////////////////////////////////////
-//														 //
-//				Include the SAGA-API here				 //
-//														 //
-///////////////////////////////////////////////////////////
-
-//---------------------------------------------------------
-#ifndef HEADER_INCLUDED__MLB_INTERFACE_H
-#define HEADER_INCLUDED__MLB_INTERFACE_H
-
-//---------------------------------------------------------
-#include <saga_api/saga_api.h>
-
-
-//---------------------------------------------------------
-#endif // #ifndef HEADER_INCLUDED__MLB_INTERFACE_H
diff --git a/src/modules_simulation/fire/sim_fire_spreading/Makefile.am b/src/modules_simulation/fire/sim_fire_spreading/Makefile.am
deleted file mode 100644
index ed08c64..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/Makefile.am
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# $Id: Makefile.am,v 1.1 2008/03/07 14:33:39 oconrad Exp $
-#
-if DEBUG
-DBGFLAGS = -g -DDEBUG
-endif
-if SAGA_UNICODE
-UC_DEFS = -D_SAGA_UNICODE
-endif
-DEF_SAGA           = -D_SAGA_LINUX -D_TYPEDEF_BYTE -D_TYPEDEF_WORD
-CXX_INCS           = -I$(top_srcdir)/src/saga_core -I$(top_srcdir)/src/modules/grid/grid_tools
-AM_CXXFLAGS        = -fPIC $(CXX_INCS) $(DEF_SAGA) $(UC_DEFS) $(DBGFLAGS)
-AM_LDFLAGS         = -fPIC -shared -avoid-version
-pkglib_LTLIBRARIES = libsim_fire_spreading.la
-libsim_fire_spreading_la_SOURCES =\
-fireLib.c\
-Forecasting.cpp\
-MLB_Interface.cpp\
-Simulate.cpp\
-fireLib.h\
-Forecasting.h\
-MLB_Interface.h\
-Simulate.h
-
-libsim_fire_spreading_la_LIBADD = $(top_srcdir)/src/saga_core/saga_api/libsaga_api.la
-
diff --git a/src/modules_simulation/fire/sim_fire_spreading/Makefile.in b/src/modules_simulation/fire/sim_fire_spreading/Makefile.in
deleted file mode 100644
index 1f4848f..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/Makefile.in
+++ /dev/null
@@ -1,573 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
- at SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = src/modules_simulation/fire/sim_fire_spreading
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-LTLIBRARIES = $(pkglib_LTLIBRARIES)
-libsim_fire_spreading_la_DEPENDENCIES =  \
-	$(top_srcdir)/src/saga_core/saga_api/libsaga_api.la
-am_libsim_fire_spreading_la_OBJECTS = fireLib.lo Forecasting.lo \
-	MLB_Interface.lo Simulate.lo
-libsim_fire_spreading_la_OBJECTS =  \
-	$(am_libsim_fire_spreading_la_OBJECTS)
-DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-	--mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
-	$(LDFLAGS) -o $@
-SOURCES = $(libsim_fire_spreading_la_SOURCES)
-DIST_SOURCES = $(libsim_fire_spreading_la_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-POW_LIB = @POW_LIB@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-
-#
-# $Id: Makefile.am,v 1.1 2008/03/07 14:33:39 oconrad Exp $
-#
- at DEBUG_TRUE@DBGFLAGS = -g -DDEBUG
- at SAGA_UNICODE_TRUE@UC_DEFS = -D_SAGA_UNICODE
-DEF_SAGA = -D_SAGA_LINUX -D_TYPEDEF_BYTE -D_TYPEDEF_WORD
-CXX_INCS = -I$(top_srcdir)/src/saga_core -I$(top_srcdir)/src/modules/grid/grid_tools
-AM_CXXFLAGS = -fPIC $(CXX_INCS) $(DEF_SAGA) $(UC_DEFS) $(DBGFLAGS)
-AM_LDFLAGS = -fPIC -shared -avoid-version
-pkglib_LTLIBRARIES = libsim_fire_spreading.la
-libsim_fire_spreading_la_SOURCES = \
-fireLib.c\
-Forecasting.cpp\
-MLB_Interface.cpp\
-Simulate.cpp\
-fireLib.h\
-Forecasting.h\
-MLB_Interface.h\
-Simulate.h
-
-libsim_fire_spreading_la_LIBADD = $(top_srcdir)/src/saga_core/saga_api/libsaga_api.la
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .cpp .lo .o .obj
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules_simulation/fire/sim_fire_spreading/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu src/modules_simulation/fire/sim_fire_spreading/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
-	@$(NORMAL_INSTALL)
-	test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
-	list2=; for p in $$list; do \
-	  if test -f $$p; then \
-	    list2="$$list2 $$p"; \
-	  else :; fi; \
-	done; \
-	test -z "$$list2" || { \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
-	}
-
-uninstall-pkglibLTLIBRARIES:
-	@$(NORMAL_UNINSTALL)
-	@list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
-	for p in $$list; do \
-	  $(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
-	done
-
-clean-pkglibLTLIBRARIES:
-	-test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
-	@list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
-	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-	  test "$$dir" != "$$p" || dir=.; \
-	  echo "rm -f \"$${dir}/so_locations\""; \
-	  rm -f "$${dir}/so_locations"; \
-	done
-libsim_fire_spreading.la: $(libsim_fire_spreading_la_OBJECTS) $(libsim_fire_spreading_la_DEPENDENCIES) 
-	$(CXXLINK) -rpath $(pkglibdir) $(libsim_fire_spreading_la_OBJECTS) $(libsim_fire_spreading_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Forecasting.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MLB_Interface.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Simulate.Plo at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fireLib.Plo at am__quote@
-
-.c.o:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c $<
-
-.c.obj:
- at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
- at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
-
-.cpp.o:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
- at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
- at am__fastdepCXX_TRUE@	$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCXX_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
- at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	set x; \
-	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
-	for dir in "$(DESTDIR)$(pkglibdir)"; do \
-	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-	done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
-	mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-pkglibLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-	mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pkglibLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-data install-data-am install-dvi \
-	install-dvi-am install-exec install-exec-am install-html \
-	install-html-am install-info install-info-am install-man \
-	install-pdf install-pdf-am install-pkglibLTLIBRARIES \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-pkglibLTLIBRARIES
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/modules_simulation/fire/sim_fire_spreading/Simulate.cpp b/src/modules_simulation/fire/sim_fire_spreading/Simulate.cpp
deleted file mode 100644
index f425b48..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/Simulate.cpp
+++ /dev/null
@@ -1,360 +0,0 @@
-/*******************************************************************************
-    Simulate.cpp
-    Copyright (C) Victor Olaya
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*******************************************************************************/ 
-
-#include "Simulate.h"
-
-#define MS2FTMIN (60.0 / 0.3048)
-#define FTMIN2MMIN 0.3048
-#define BTU2KCAL 0.252164401
-#define FT2M 0.3048
-#define NO_TIME_LIMIT -1
-#define THRESHOLD_FOR_DIFFERENCE 0.1
-
-CSimulate::CSimulate(void){
-	
-	Set_Name		(_TL("Simulation"));
-	Set_Author		(_TL("(c) 2004 Victor Olaya"));
-	Set_Description	(_TW(
-		"Fire simulation based on the BEHAVE fire modeling system "
-		"supported by the U.S. Forest Service, Fire and Aviation Management. "
-		"Find more information on BEHAVE at the <i>Public Domain Software for the Wildland Fire Community</i> at "
-		"<a target=\"_blank\" href=\"http://fire.org\">http://fire.org</a>\n"
-		"\n"
-		"Reference:\n"
-		"Andrews, P.L. (1986): BEHAVE: Fire Behavior Prediction and Fuel Modeling System - "
-		"Burn Subsystem, Part 1. U.S. Department of Agriculture, Forest Service General, Technical Report INT-194. "
-	));
-
-	Parameters.Add_Grid(NULL, 
-						"DEM", 
-						_TL("DEM"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-	
-	Parameters.Add_Grid(NULL, 
-						"FUEL", 
-						_TL("Fuel Model"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"WINDSPD", 
-						_TL("Wind Speed"),
-						_TL("Wind speed (m/s)"), 
-						PARAMETER_INPUT);
-	
-	Parameters.Add_Grid(NULL, 
-						"WINDDIR", 
-						_TL("Wind Direction"), 
-						_TL("Wind direction (degrees clockwise from north)"),
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"M1H", 
-						_TL("Dead Fuel Moisture 1H"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"M10H", 
-						_TL("Dead Fuel Moisture 10H"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"M100H", 
-						_TL("Dead Fuel Moisture 100H"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"MHERB", 
-						_TL("Herbaceous Fuel Moisture"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"MWOOD", 
-						_TL("Wood Fuel Moisture"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"IGNITION", 
-						_TL("Ignition Points"), 
-						_TL(""), 
-						PARAMETER_INPUT);
-	
-	Parameters.Add_Grid(NULL, 
-						"TIME", 
-						_TL("Time"), 
-						_TL(""), 
-						PARAMETER_OUTPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"FLAME", 
-						_TL("Flame Length"), 
-						_TL("Flame Length (m)"), 
-						PARAMETER_OUTPUT);
-
-	Parameters.Add_Grid(NULL, 
-						"INTENSITY", 
-						_TL("Intensity"), 
-						_TL("Intensity (Kcal/m)"), 
-						PARAMETER_OUTPUT);
-
-	Parameters.Add_Value(NULL, 
-						"UPDATEVIEW", 
-						_TL("Update View"),
-						_TL("Update view during simulation."),
-						PARAMETER_TYPE_Bool, 
-						true);
-
-}//constructor
-
-CSimulate::~CSimulate(void){}
-
-bool CSimulate::On_Execute(void){
-
-	AssignParameters();
-	CalculateFire();
-	
-	DeleteObjects();
-	return true;
-
-}//method
-
-void CSimulate::DeleteObjects(){
-
-	delete m_pAspectGrid;
-	delete m_pSlopeGrid;
-
-	m_CentralPoints	.Clear();
-	m_AdjPoints		.Clear();
-
-}//method
-
-bool CSimulate::AssignParameters(){
-
-	int x,y;
-
-	m_pDEM = Parameters("DEM")->asGrid();
-	m_pFuelGrid = Parameters("FUEL")->asGrid();
-	m_pIgnGrid = Parameters("IGNITION")->asGrid();
-	m_pWindDirGrid = Parameters("WINDDIR")->asGrid();
-	m_pWindSpdGrid = Parameters("WINDSPD")->asGrid();
-	m_pM1Grid = Parameters("M1H")->asGrid();
-	m_pM10Grid = Parameters("M10H")->asGrid();
-	m_pM100Grid = Parameters("M100H")->asGrid();
-	m_pMHerbGrid = Parameters("MHERB")->asGrid();
-	m_pMWoodGrid = Parameters("MWOOD")->asGrid();
-	m_pTimeGrid = Parameters("TIME")->asGrid();
-	m_pFlameGrid = Parameters("FLAME")->asGrid();
-	m_pIntensityGrid = Parameters("INTENSITY")->asGrid();
-
-    m_Catalog = Fire_FuelCatalogCreateStandard("Standard", 13);
-    Fire_FlameLengthTable(m_Catalog, 500, 0.1);
-
-	//substitute no-data values
-	for(y=0; y<Get_NY() && Set_Progress(y); y++){		
-		for(x=0; x<Get_NX(); x++){
-
-			if (m_pWindSpdGrid->is_NoData(x, y)){
-				m_pWindSpdGrid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pWindDirGrid->is_NoData(x, y)){
-				m_pWindDirGrid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pM1Grid->is_NoData(x, y)){
-				m_pM1Grid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pM10Grid->is_NoData(x, y)){
-				m_pM10Grid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pM100Grid->is_NoData(x, y)){
-				m_pM100Grid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pMHerbGrid->is_NoData(x, y)){
-				m_pMHerbGrid->Set_Value(x, y, 0.);
-			}//if
-			if (m_pMWoodGrid->is_NoData(x, y)){
-				m_pMWoodGrid->Set_Value(x, y, 0.);
-			}//if
-
-		}//for
-	}//for
-
-
-	//-----------------------------------------------------
-	// calculate slope and aspect using CSG_Grid class'
-	// built-in function (after Zevenbergen & Thorne)...
-
-	m_pSlopeGrid	= SG_Create_Grid(m_pDEM, SG_DATATYPE_Double);
-	m_pAspectGrid	= SG_Create_Grid(m_pDEM, SG_DATATYPE_Double);
-
-	for(y=0; y<Get_NY() && Set_Progress(y); y++)
-	{		
-		for(x=0; x<Get_NX(); x++)
-		{
-			double	slope, aspect;
-
-			if( m_pDEM->Get_Gradient(x, y, slope, aspect) )
-			{
-				m_pSlopeGrid	->Set_Value(x, y, slope);
-				m_pAspectGrid	->Set_Value(x, y, aspect);
-			}
-			else
-			{
-				m_pSlopeGrid	->Set_NoData(x, y);
-				m_pAspectGrid	->Set_NoData(x, y);
-			}
-		}
-	}
-
-
-	//-----------------------------------------------------
-	m_pTimeGrid->Assign((double)0);
-
-	return true;
-
-}//method
-
-void CSimulate::CalculateFire(){
-	
-	int x,y;
-
-	Process_Set_Text(_TL("Simulating..."));
-	m_CentralPoints	.Clear();
-	m_AdjPoints		.Clear();
-
-	m_CentralPoints.Clear();
-	for(y=0; y<Get_NY(); y++){
-		for(x=0; x<Get_NX(); x++){
-			if (!m_pIgnGrid->is_NoData(x,y)){
-				m_CentralPoints.Add(x,y);
-				m_pTimeGrid->Set_Value(x,y,0.0);				
-			}//if
-		}//for
-	}//for
-	CalculateFireSpreading(NO_TIME_LIMIT);
-
-	m_pTimeGrid->Set_NoData_Value(0.);
-
-
-}//method
-
-
-int CSimulate::CalculateFireSpreading(float fTimeLimit){
-
-	int x,y;
-	int x2,y2;
-	int n;
-	bool bReturn = false;
-	/* neighbor's address*/   /* N  NE   E  SE   S  SW   W  NW */
-	static int nX[8] =        {  0,  1,  1,  1,  0, -1, -1, -1};
-    static int nY[8] =        {  1,  1,  0, -1, -1, -1,  0,  1};
-	double nDist[8];          /* distance to each neighbor */
-    double nAzm[8];           /* compass azimuth to each neighbor (0=N) */	
-	size_t modelNumber;       /* fuel model number at current cell */
-    double moisture[6];       /* fuel moisture content at current cell */
-    double dSpreadRate;       /* spread rate in direction of neighbor */
-    double dSpreadTime;       /* time to spread from cell to neighbor */
-    double dIgnTime;          /* time neighbor is ignited by current cell */
-	double dWindSpd;
-	int iBurntCells = 0;
-
-	bool bUpdate = Parameters("UPDATEVIEW")->asBool();
-
-    for (n=0; n<8; n++){
-        nDist[n] = sqrt ( nX[n] * m_pDEM->Get_Cellsize() * nX[n] * m_pDEM->Get_Cellsize()
-                        + nY[n] * m_pDEM->Get_Cellsize() * nY[n] * m_pDEM->Get_Cellsize() );
-        nAzm[n] = n * 45.;
-    }//for
-
-	while (m_CentralPoints.Get_Count()!=0){
-
-		for (int iPt=0; iPt<m_CentralPoints.Get_Count();iPt++){
-
-			x = m_CentralPoints.Get_X(iPt);
-			y = m_CentralPoints.Get_Y(iPt);
-
-			if (!m_pDEM->is_NoData(x,y) && !m_pFuelGrid->is_NoData(x,y)){
-
-				modelNumber = (size_t) m_pFuelGrid->asInt(x, y);
-				moisture[0] = m_pM1Grid->asFloat(x, y);
-				moisture[1] = m_pM10Grid->asFloat(x, y);
-				moisture[2] = m_pM100Grid->asFloat(x, y);
-				moisture[3] = m_pM100Grid->asFloat(x, y);
-				moisture[4] = m_pMHerbGrid->asFloat(x, y);;
-				moisture[5] = m_pMWoodGrid->asFloat(x, y);
-				dWindSpd = m_pWindSpdGrid->asFloat(x,y)  * MS2FTMIN; 
-				Fire_SpreadNoWindNoSlope(m_Catalog, modelNumber, moisture);
-				Fire_SpreadWindSlopeMax(m_Catalog, modelNumber, dWindSpd,
-										 m_pWindDirGrid->asFloat(x,y), tan(m_pSlopeGrid->asFloat(x,y)),
-										 m_pAspectGrid->asFloat(x,y, true));
-
-				for (n=0; n<8; n++){
-					x2 = x + nX[n];
-					y2 = y + nY[n];
-					if (m_pTimeGrid->is_InGrid(x2,y2,false)){
-						Fire_SpreadAtAzimuth(m_Catalog, modelNumber, nAzm[n], FIRE_BYRAMS);
-						dSpreadRate = Fuel_SpreadAny(m_Catalog, modelNumber); // in ft/min (awkward...)					
-						dSpreadRate *= FTMIN2MMIN; //a bit better...
-						if (dSpreadRate > Smidgen){
-							dSpreadTime = nDist[n] / dSpreadRate;							
-							if (fTimeLimit == NO_TIME_LIMIT){
-								dIgnTime = 	m_pTimeGrid->asDouble(x,y) + dSpreadTime;
-								if (m_pTimeGrid->asDouble(x2,y2) == 0.0 
-										|| m_pTimeGrid->asDouble(x2, y2) > dIgnTime + THRESHOLD_FOR_DIFFERENCE ){
-									m_pTimeGrid->Set_Value(x2, y2, dIgnTime);
-									m_AdjPoints.Add(x2,y2);
-									Fire_FlameScorch(m_Catalog, modelNumber, FIRE_FLAME);
-									m_pFlameGrid->Set_Value(x2, y2, Fuel_FlameLength(m_Catalog, modelNumber) * FT2M);									
-									m_pIntensityGrid->Set_Value(x2, y2, Fuel_ByramsIntensity(m_Catalog, modelNumber)
-																* BTU2KCAL / FT2M );									
-								}//if
-							}//if
-						}//if					
-					}//if
-				}//for
-			}//if
-		}//for
-
-		m_CentralPoints.Clear();
-		for (int i=0; i<m_AdjPoints.Get_Count(); i++){
-			x= m_AdjPoints.Get_X(i);
-			y = m_AdjPoints.Get_Y(i);
-			m_CentralPoints.Add(x, y);
-		}//for
-		m_AdjPoints.Clear();
-
-		if (fTimeLimit == NO_TIME_LIMIT){
-			Process_Get_Okay(true);
-		}//if	
-		
-		if (bUpdate){
-			DataObject_Update(m_pTimeGrid, true);
-		}
-
-	}//while
-
-	return iBurntCells;
-
-}//method
-
diff --git a/src/modules_simulation/fire/sim_fire_spreading/Simulate.h b/src/modules_simulation/fire/sim_fire_spreading/Simulate.h
deleted file mode 100644
index 87498a5..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/Simulate.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
-    Simulate.h
-    Copyright (C) Victor Olaya
-    
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*******************************************************************************/ 
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#include "MLB_Interface.h"
-#include "fireLib.h"
-
-class CSimulate : public CSG_Module_Grid {
-
-private:
-
-	CSG_Grid *m_pDEM;    
-    CSG_Grid *m_pIgnGrid;           /* ptr to ignition time map (minutes) */
-    CSG_Grid *m_pWindSpdGrid;       /* ptr to wind speed map (m/s) */
-    CSG_Grid *m_pWindDirGrid;       /* ptr to wind direction map (deg from north) */
-    CSG_Grid *m_pM1Grid;            /* ptr to 1-hr dead fuel moisture map */
-    CSG_Grid *m_pM10Grid;           /* ptr to 10-hr dead fuel moisture map */
-    CSG_Grid *m_pM100Grid;          /* ptr to 100-hr dead fuel moisture map */
-    CSG_Grid *m_pMHerbGrid;         /* ptr to live herbaceous fuel moisture map */
-    CSG_Grid *m_pMWoodGrid;         /* ptr to live stem fuel moisture map */
-	CSG_Grid *m_pFuelGrid;          /* ptr to fuel model map */
-	CSG_Grid *m_pValueGrid;
-
-	CSG_Grid *m_pFlameGrid;         /* ptr to flame length map (m) */
-	CSG_Grid *m_pIntensityGrid;     
-
-    CSG_Grid *m_pSlopeGrid;         /* ptr to slope map (rise/reach) */
-    CSG_Grid *m_pAspectGrid;        /* ptr to aspect map (degrees from north) */
-
-	CSG_Grid *m_pTimeGrid;
-	//CSG_Grid *m_pVolatileTimeGrid;
-	
-	FuelCatalogPtr m_Catalog;    /* fuel catalog handle */
-
-	int m_iLength;
-
-	CSG_Points_Int	m_CentralPoints;
-	CSG_Points_Int	m_AdjPoints;
-
-	int *m_pLength; 
-	int m_iMaxTime; //in s
-	int m_iTimeInterval; //in s
-
-	bool AssignParameters();
-	void CalculateFire();
-	int CalculateFireSpreading(float);
-	void DeleteObjects();
-
-public:
-
-	CSimulate(void);
-	virtual ~CSimulate(void);
-
-protected:
-
-	virtual bool On_Execute(void);
-
-};
-
diff --git a/src/modules_simulation/fire/sim_fire_spreading/fireLib.c b/src/modules_simulation/fire/sim_fire_spreading/fireLib.c
deleted file mode 100644
index 585fa0b..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/fireLib.c
+++ /dev/null
@@ -1,1814 +0,0 @@
-/*
- *******************************************************************************
- *
- *  fireLib.c
- *
- *  Description
- *      Library of BEHAVE (Andrews 1986) fire behavior algorithms
- *      encapsulated and optimized for fire behavior simulation.
- *
- *  Legalities
- *      Copyright (c) 1996 Collin D. Bevins.
- *      See the file "license.txt" for information on usage and
- *      redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- *  Naming Conventions
- *      All function names begin with "Fire_".
- *      All fuel model and behavior parameter access macros begin with "Fuel_".
- *      All fuel catalog parameter access macros begin with "FuelCat_".
- *
- *  Functions
- *      There are 8 functions to create and destroy fuel models and catalogs:
- *
- *          Fire_FuelCatalogCreate(name, maxModels)
- *              Creates a new fuel catalog capable of holding maxModels.
- *
- *          Fire_FuelCatalogCreateStandard(name, maxModels)
- *              Creates a new fuel catalog capable of holding maxModels,
- *              and fills models 0-13 with standard fire behavior models.
- *
- *          Fire_FuelModelCreate(catalog, model, name, desc, depth, mext,
- *                  adjust, maxParticles)
- *              Adds or replaces a fuel model in the catalog.  The model will
- *              accept up to maxParticles particles.
- *
- *          Fire_FuelModelExists(catalog, model)
- *              Returns 1 if model exists within the catalog.
- *
- *          Fire_FuelParticleAdd(catalog, model, live, load, savr, dens, heat,
- *                  stot, seff)
- *              Adds a fuel particle to a fuel model.
- *
- *          Fire_FlameLengthTable ( catalog, flameClasses, flameStep )
- *              Creates a flame length look-up table containing flameClasses
- *              number of classes, with each class spanning "flameStep"
- *              feet of flame length.  Creating a flame length table can
- *              significantly improve performance at the expense of user
- *              specified precision.
- *
- *          Fire_FuelModelDestroy(catalog, model)
- *              Destroys the model within the catalog.
- *
- *          Fire_FuelCatalogDestroy(catalog)
- *              Destroys the catalog and all models within it.
- *
- *      There are 5 functions to process data within fuel models:
- *
- *          Fire_FuelCombustion(catalog, model)
- *              Computes all the fuel-dependent model variables.
- *              Called only once for each fuel model.
- *              Called automatically by Fire_SpreadNoWindNoSlope().
- *
- *          Fire_SpreadNoWindNoSlope(catalog, model, moisture[6])
- *              Determines reaction intensity, heat per unit area, and the
- *              no-wind no-slope spread rate.
- *
- *          Fire_SpreadWindSlopeMax(catalog, model, windFpm, windDeg, slope,
- *                  aspectDeg)
- *              Determines maximum spread rate and azimuth of maximum spread
- *              based upon input parameters and results of the most recent
- *              call to Fire_SpreadNoWindNoSlope() for this model.
- *
- *          Fire_SpreadAtAzimuth(catalog, model, azimuth, doWhich)
- *              Determines the spread rate in the specified azimuth based
- *              upon the results of the most recent call to
- *              Fire_SpreadWindSlopeMax() for this model.  The "doWhich"
- *              parameter is the result of ORing the constants FIRE_BYRAMS,
- *              FIRE_FLAME, and FIRE_SCORCH to request computation of the
- *              associated fire variables.
- *
- *          Fire_FlameScorch(catalog, model, doWhich)
- *              Determines the flame length and/or scorch height based upon
- *              the most recent call to Fire_SpreadAtAzimuth().
- *
- *  History
- *      1996/09/04  Version 1.0.0 release.
- *      1999/03/05  Fixed NNFL07 live SAVR from 1500 to 1550.
- *
- *******************************************************************************
- */
-
-#include "fireLib.h"
-
-#ifndef M_PI
-#define M_PI 3.14159
-#endif
-
-/*
- *******************************************************************************
- *
- *  Fire_FuelCombustion()
- *
- *  Description
- *      Calculates and stores all the fuel-dependent combustion variables.
- *
- *  Side Effects
- *      All combustion varaiables are reclaculated for the model.
- *      All behavior and environment variables are reset to zero.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_FuelCombustion (FuelCatalogPtr catalog, size_t model )
-    //FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-    //size_t         model;       /* fuel model id number         [0-maxModels] */
-{
-    size_t particle, size, life;
-
-    double sizeClassAreaWtg[FIRE_LIFE_CATS][FIRE_SIZE_CLASSES];
-    double lifeLoad[FIRE_LIFE_CATS];
-    double lifeArea[FIRE_LIFE_CATS];
-    double lifeSavr[FIRE_LIFE_CATS];
-    double lifeHeat[FIRE_LIFE_CATS];
-    double lifeSeff[FIRE_LIFE_CATS];
-    double lifeEtaS[FIRE_LIFE_CATS];
-
-    double totalArea;
-    double fineLive;
-    double beta;
-    double betaOpt;
-    double sigma;
-    double ratio;
-    double aa;
-    double sigma15;
-    double gammaMax;
-    double gamma;
-    double c;
-    double e;
-
-    /* Validate catalog and fuel model existence. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-    if ( ! Fire_FuelModelExists(catalog,model) )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelCombustion(): el modelo de combustible %d no existe en el catálogo de combuestibles \"%s\".",
-            model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Initialize the model's fuel particle dependent variables. */
-    for ( particle=0; particle<Fuel_Particles(catalog,model); particle++ )
-    {
-        Fuel_AreaWtg(catalog,model,particle)     = 0.;
-        Fuel_SizeAreaWtg(catalog,model,particle) = 0.;
-        Fuel_Moisture(catalog,model,particle)    = 0.;
-    }
-
-    /* Initialize the model's fuel combustion variables. */
-    /* The following are calculated by this function. */
-    Fuel_FineDead(catalog,model)        = 0.0;
-    Fuel_LiveMextFactor(catalog,model)  = 0.0;
-    Fuel_BulkDensity(catalog,model)     = 0.0;
-    Fuel_ResidenceTime(catalog,model)   = 0.0;
-    Fuel_PropFlux(catalog,model)        = 0.0;
-    Fuel_SlopeK(catalog,model)          = 0.0;
-    Fuel_WindB(catalog,model)           = 0.0;
-    Fuel_WindE(catalog,model)           = 0.0;
-    Fuel_WindK(catalog,model)           = 0.0;
-
-    for (life=0; life<FIRE_LIFE_CATS; life++)
-    {
-        Fuel_LifeAreaWtg(catalog,model,life) = 0.;
-        Fuel_LifeRxFactor(catalog,model,life) = 0.;
-        lifeLoad[life] = 0.;
-        lifeArea[life] = 0.;
-        lifeSavr[life] = 0.;
-        lifeHeat[life] = 0.;
-        lifeEtaS[life] = 0.;
-        lifeSeff[life] = 0.;
-        for ( size=0; size<FIRE_SIZE_CLASSES; size++ )
-            sizeClassAreaWtg[life][size] = 0.;
-    }
-
-    /* Initialize the model's fire behavior variables. */
-    /* These are calculated by Fire_SpreadNoWindNoSlope(). */
-    Fuel_Spread0(catalog,model)         = 0.;
-    Fuel_RxIntensity(catalog,model)     = 0.;
-    Fuel_HeatPerUnitArea(catalog,model) = 0.;
-
-    /* Initialize the model's fire behavior variables. */
-    /* These are calculated by Fire_SpreadWindSlopeMax(). */
-    Fuel_SpreadMax(catalog,model)       = 0.;
-    Fuel_AzimuthMax(catalog,model)      = 0.;
-    Fuel_EffectiveWind(catalog,model)   = 0.;
-    Fuel_PhiSlope(catalog,model)        = 0.;
-    Fuel_PhiWind(catalog,model)         = 0.;
-    Fuel_PhiEffWind(catalog,model)      = 0.;
-    Fuel_LwRatio(catalog,model)         = 1.;
-    Fuel_Eccentricity(catalog,model)    = 0.;
-    Fuel_WindLimit(catalog,model)       = 0;
-
-    /* Initialize the model's fire behavior variables. */
-    /* These are calculated by Fire_SpreadAtAzimuth(). */
-    Fuel_SpreadAny(catalog,model)       = 0.;
-    Fuel_AzimuthAny(catalog,model)      = 0.;
-    Fuel_ByramsIntensity(catalog,model) = 0.;
-    Fuel_FlameLength(catalog,model)     = 0.;
-    Fuel_ScorchHeight(catalog,model)    = 0.;
-
-    /* Initialize the model's environmental variables. */
-    Fuel_WindSpeed(catalog,model) = 0.;
-    Fuel_WindDir(catalog,model)   = 0.;
-    Fuel_Slope(catalog,model)     = 0.;
-    Fuel_Aspect(catalog,model)    = 0.;
-    for ( size=0; size<FIRE_MCLASSES; size++ )
-        Fuel_EnvMoisture(catalog,model,size) = 0.;
-
-    /* Initialize the model's combustion flag. */
-    Fuel_CombustionFlag(catalog,model) = 1;
-
-    /* If the model has no particles, we're all done. */
-    if ( Fuel_Particles(catalog,model) <= 0 )
-        return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-
-    /* Initialize local fuel bed and combustion variables. */
-    beta = betaOpt = sigma = ratio = aa = sigma15 = 0.;
-    gamma = gammaMax = c = e = fineLive = totalArea = 0.;
-
-    /* Accumulate surface areas by life category for the entire fuel bed. */
-    for ( particle=0; particle<Fuel_Particles(catalog,model); particle++ )
-    {
-        life = Fuel_Live(catalog,model,particle);
-        lifeArea[life] += Fuel_SurfaceArea(catalog,model,particle);
-        totalArea      += Fuel_SurfaceArea(catalog,model,particle);
-    }
-
-    /* If no surface area, we're all done. */
-    if ( totalArea <= Smidgen )
-        return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-
-    /* Surface area wtg factor for each particle within its life category */
-    /* and within its size class category (used to weight loading). */
-    for ( particle=0; particle<Fuel_Particles(catalog,model); particle++ )
-    {
-        life = Fuel_Live(catalog,model,particle);
-        if ( lifeArea[life] > Smidgen )
-        {
-            Fuel_AreaWtg(catalog,model,particle) =
-                Fuel_SurfaceArea(catalog,model,particle) / lifeArea[life];
-
-            size = Fuel_SizeClass(catalog,model,particle);
-            sizeClassAreaWtg[life][size] +=
-                Fuel_AreaWtg(catalog,model,particle);
-        }
-    }
-
-    /* Assign size class surface area weights to each particle. */
-    for ( particle=0; particle<Fuel_Particles(catalog,model); particle++ )
-    {
-        life = Fuel_Live(catalog,model,particle);
-        size = Fuel_SizeClass(catalog,model,particle);
-        Fuel_SizeAreaWtg(catalog,model,particle) = sizeClassAreaWtg[life][size];
-    }
-
-    /* Derive life category surface area weighting factors. */
-    for ( life=0; life<FIRE_LIFE_CATS; life++ )
-        Fuel_LifeAreaWtg(catalog,model,life) = lifeArea[life] / totalArea;
-
-    /* Accumulate life category weighted load, heat, savr, and seff. */
-    for ( particle=0; particle<Fuel_Particles(catalog,model); particle++ )
-    {
-        life = Fuel_Live(catalog,model,particle);
-
-        lifeLoad[life] += Fuel_SizeAreaWtg(catalog,model,particle)
-                        * Fuel_Load(catalog,model,particle)
-                        * (1. - Fuel_SiTotal(catalog,model,particle));
-
-        lifeSavr[life] += Fuel_AreaWtg(catalog,model,particle)
-                        * Fuel_Savr(catalog,model,particle);
-
-        lifeHeat[life] += Fuel_AreaWtg(catalog,model,particle)
-                        * Fuel_Heat(catalog,model,particle);
-
-        lifeSeff[life] += Fuel_AreaWtg(catalog,model,particle)
-                        * Fuel_SiEffective(catalog,model,particle);
-
-        Fuel_BulkDensity(catalog,model) += Fuel_Load(catalog,model,particle);
-
-        if ( Fuel_Density(catalog,model,particle) > Smidgen )
-            beta += Fuel_Load(catalog,model,particle)
-                  / Fuel_Density(catalog,model,particle);
-    }
-
-    /* Accumulate life category contribution to reaction intensity. */
-    for ( life=0; life<FIRE_LIFE_CATS; life++ )
-    {
-        sigma += Fuel_LifeAreaWtg(catalog,model,life) * lifeSavr[life];
-
-        lifeEtaS[life] = 1.;
-        if (lifeSeff[life] > 0.)
-        {
-            if ( (lifeEtaS[life] = 0.174 / pow(lifeSeff[life], 0.19)) > 1.0 )
-                lifeEtaS[life] = 1.0;
-        }
-
-        Fuel_LifeRxFactor(catalog,model,life) =
-            lifeLoad[life] * lifeHeat[life] * lifeEtaS[life];
-    }
-
-    /* Fuel model residence time */
-    Fuel_ResidenceTime(catalog,model) = 384. / sigma;
-
-    /* Fuel model bulk density */
-    if ( Fuel_Depth(catalog,model) > Smidgen )
-    {
-        Fuel_BulkDensity(catalog,model) /= Fuel_Depth(catalog,model);
-        beta /= Fuel_Depth(catalog,model);
-    }
-
-    /* Propagating flux depends upon sigma and beta only. */
-    Fuel_PropFlux(catalog,model) =
-        exp((0.792 + 0.681*sqrt(sigma)) * (beta+0.1)) / (192.+0.2595*sigma);
-
-    /* Gamma */
-    betaOpt   = 3.348 / (pow(sigma, 0.8189));
-    ratio     = beta / betaOpt;
-    aa        = 133. / (pow(sigma, 0.7913));
-    sigma15   = pow(sigma, 1.5);
-    gammaMax  = sigma15 / (495. + 0.0594*sigma15);
-    gamma     = gammaMax * pow(ratio, aa) * exp(aa * (1.-ratio));
-
-    /* Factor gamma into life category reaction intensity contribution. */
-    for ( life=0; life<FIRE_LIFE_CATS; life++ )
-        Fuel_LifeRxFactor(catalog,model,life) *= gamma;
-
-    /* Slope and wind intermediates constants for the fuel model. */
-    Fuel_SlopeK(catalog,model) = 5.275 * pow(beta, -0.3);
-    Fuel_WindB(catalog,model)  = 0.02526 * pow(sigma, 0.54);
-
-    c = 7.47 * exp(-0.133 * pow(sigma, 0.55));
-    e = 0.715 * exp(-0.000359 * sigma);
-    Fuel_WindK(catalog,model) = c * pow(ratio, -e);
-    Fuel_WindE(catalog,model) = pow(ratio, e) / c;
-
-    /* If no live fuel, we're done. */
-    if ( lifeLoad[FIRE_LIFE_LIVE] < Smidgen )
-        return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-
-    /*  Fine dead fuel and fine live fuel factors. */
-    for ( particle=0; particle<Fuel_Particles(catalog,model); particle++ )
-    {
-        if ( Fuel_Live(catalog,model,particle) )
-            fineLive
-                  += Fuel_Load(catalog,model,particle)
-                   * exp(-500. / Fuel_Savr(catalog,model,particle));
-        else
-            Fuel_FineDead(catalog,model)
-                  += Fuel_Load(catalog,model,particle)
-                   * Fuel_SigmaFactor(catalog,model,particle);
-    }
-
-    /* Live fuel extinction moisture factor. */
-    if ( fineLive > Smidgen )
-        Fuel_LiveMextFactor(catalog,model)
-            = 2.9 * Fuel_FineDead(catalog,model) / fineLive;
-
-    /* That's all, folks!. */
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_SpreadNoWindNoSlope()
- *
- *  Description
- *      Calculates the fire reaction intensity and no-wind, no-slope spread
- *      rate given the fuel model, combustion, and moisture regime inputs.
- *
- *  Side Effects
- *      Updates the following fire behavior variables:
- *          Fuel_RxIntensity(catalog,model).
- *          Fuel_HeatPerUnitArea(catalog,model).
- *          Fuel_Spread0(catalog,model).
- *          Fuel_SpreadMax(catalog,model)  = Fuel_Spread0(catalog,model)
- *          Fuel_SpreadAny(catalog,model)  = Fuel_Spread0(catalog,model)
- *          Fuel_AzimuthAny(catalog,model) = 0.
- *          Fuel_AzimuthMax(catalog,model) = 0.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_SpreadNoWindNoSlope ( FuelCatalogPtr catalog, size_t model, double moisture[FIRE_MCLASSES] )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-   // size_t  model;              /* fuel model number            [0-maxModels] */
-   // double  moisture[FIRE_MCLASSES]; /* array of fuel moistures   (fractions) */
-{
-    size_t mclass, particle, life, nlive;
-    double wfmd;
-    double rbQig;
-    double fdmois;
-    double qig;
-    double ratio;
-    double lifeMoisture[FIRE_LIFE_CATS];
-    double lifeEtaM[FIRE_LIFE_CATS];
-    double lifeMext[FIRE_LIFE_CATS];
-
-    static size_t TimeLagClass[FIRE_SIZE_CLASSES] = {0, 0, 1, 1, 2, 2};
-
-    /* Validate the catalog and fuel model. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-    if ( ! Fire_FuelModelExists(catalog,model) )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_SpreadNoWindNoSlope(): el modelo de combustible %d no existe en el catálogo de combustibles \"%s\".",
-            model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /*  Check if we must recalculate combustion intermediates. */
-    if ( ! Fuel_CombustionFlag(catalog,model) )
-    {
-        Fire_FuelCombustion(catalog,model);
-    }
-
-    /* Otherwise check if the moisture environment has changed. */
-    else
-    {
-        for ( mclass=0; mclass<FIRE_MCLASSES; mclass++ )
-            if ( ! Equal(moisture[mclass],Fuel_EnvMoisture(catalog,model,mclass)) )
-                break;
-
-        /* If no change in fuel moisture, no more computation is needed. */
-        if ( mclass == FIRE_MCLASSES )
-            return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-    }
-
-    /* Store the new moistures in the fuel's environmental moisture array. */
-    for ( mclass=0; mclass<FIRE_MCLASSES; mclass++ )
-        Fuel_EnvMoisture(catalog,model,mclass) = moisture[mclass];
-
-    /* Initialize the model's fire behavior variables. */
-    /* These are calculated by this function. */
-    Fuel_Spread0(catalog,model)         = 0.;
-    Fuel_RxIntensity(catalog,model)     = 0.;
-    Fuel_HeatPerUnitArea(catalog,model) = 0.;
-
-    /* Initialize the model's fire behavior variables. */
-    /* These are calculated by Fire_SpreadWindSlopeMax(). */
-    Fuel_SpreadMax(catalog,model)       = 0.;
-    Fuel_AzimuthMax(catalog,model)      = 0.;
-
-    /* Initialize the model's fire behavior variables. */
-    /* These are calculated by Fire_SpreadAtAzimuth(). */
-    Fuel_SpreadAny(catalog,model)       = 0.;
-    Fuel_AzimuthAny(catalog,model)      = 0.;
-    Fuel_ByramsIntensity(catalog,model) = 0.;
-    Fuel_FlameLength(catalog,model)     = 0.;
-    Fuel_ScorchHeight(catalog,model)    = 0.;
-
-    /* If no fuel particles, return. */
-    if (Fuel_Particles(catalog,model) <= 0)
-        return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-
-    /* Initialize local variables. */
-    wfmd = fdmois = rbQig = 0.;
-    for ( life=0; life<FIRE_LIFE_CATS; life++ )
-    {
-        lifeMoisture[life] = 0.;
-        lifeEtaM[life] = 0.;
-        lifeMext[life] = 0.;
-    }
-
-    /* Assign particle moistures based upon their size class. */
-    nlive = 0;
-    for ( particle=0; particle<Fuel_Particles(catalog,model); particle++ )
-    {
-        /* if this is a dead fuel, accumulate its wtd fuel moisture. */
-        if ( Fuel_Live(catalog,model,particle) == FIRE_LIFE_DEAD )
-        {
-            mclass = TimeLagClass[Fuel_SizeClass(catalog,model,particle)];
-            wfmd += moisture[mclass]
-                  * Fuel_SigmaFactor(catalog,model,particle)
-                  * Fuel_Load(catalog,model,particle);
-        }
-        else
-        {
-            nlive++;
-            mclass = (Fuel_Type(catalog,model,particle) == FIRE_TYPE_HERB) ?
-                FIRE_MCLASS_HERB : FIRE_MCLASS_WOOD;
-        }
-
-        /* Assign this particle the fuel moisture for its size class. */
-        Fuel_Moisture(catalog,model,particle) = moisture[mclass];
-    }
-
-    /* Compute live fuel extinction moisture. */
-    if ( nlive )
-    {
-        fdmois = ( Fuel_FineDead(catalog,model) > Smidgen ) ?
-            (wfmd / Fuel_FineDead(catalog,model)) : 0.;
-
-        lifeMext[FIRE_LIFE_LIVE]
-            = ((Fuel_LiveMextFactor(catalog,model)
-            * (1.0 - fdmois/Fuel_Mext(catalog,model))) - 0.226);
-
-        if ( lifeMext[FIRE_LIFE_LIVE] < Fuel_Mext(catalog,model) )
-            lifeMext[FIRE_LIFE_LIVE] = Fuel_Mext(catalog,model);
-    }
-
-    /* Dead fuel extinction moisture is a fuel model input. */
-    lifeMext[FIRE_LIFE_DEAD] = Fuel_Mext(catalog,model);
-
-    /* Compute category weighted moisture and accumulate the rbQig. */
-    for (particle=0; particle<Fuel_Particles(catalog,model); particle++)
-    {
-        qig = 250. + 1116. * Fuel_Moisture(catalog,model,particle);
-
-        life = Fuel_Live(catalog,model,particle);
-
-        lifeMoisture[life] += Fuel_AreaWtg(catalog,model,particle)
-                            * Fuel_Moisture(catalog,model,particle);
-
-        rbQig += qig
-               * Fuel_AreaWtg(catalog,model,particle)
-               * Fuel_LifeAreaWtg(catalog,model,life)
-               * Fuel_SigmaFactor(catalog,model,particle);
-    }
-
-    /* Complete the rbQig calculation. */
-    rbQig *= Fuel_BulkDensity(catalog,model);
-
-    /*  Compute moisture damping coeff by life class, and combine with the */
-    /*  life class's rx factor to get the total reaction intensity. */
-    for (life=0; life<FIRE_LIFE_CATS; life++)
-    {
-        ratio = 0.;
-        if ( lifeMext[life] > Smidgen )
-        {
-            ratio = lifeMoisture[life] / lifeMext[life];
-            lifeEtaM[life] =
-                1.0 - 2.59*ratio + 5.11*ratio*ratio - 3.52*ratio*ratio*ratio;
-        }
-
-        /* If category moisture exceeds category extinction moisture, */
-        /* the damping coefficient is zero. */
-        if ( lifeMoisture[life] >= lifeMext[life] )
-            lifeEtaM[life] = 0.;
-
-        /* Accumulate total reaction intensity. */
-        Fuel_RxIntensity(catalog,model)
-            += Fuel_LifeRxFactor(catalog,model,life)
-             * lifeEtaM[life];
-    }
-
-    /* Calculate heat per unit area from rx intensity and residence time. */
-    Fuel_HeatPerUnitArea(catalog,model)
-        = Fuel_RxIntensity(catalog,model)
-        * Fuel_ResidenceTime(catalog,model);
-
-    /* Calculate no-wind, no-slope spread rate. */
-    Fuel_Spread0(catalog,model)
-        = (rbQig > Smidgen)
-        ? Fuel_RxIntensity(catalog,model) * Fuel_PropFlux(catalog,model) / rbQig
-        : 0.;
-
-    /* Re-initialize spread in maximum and any azimuth to no wind-no slope. */
-    Fuel_SpreadMax(catalog,model) = Fuel_Spread0(catalog,model);
-    Fuel_SpreadAny(catalog,model) = Fuel_Spread0(catalog,model);
-    Fuel_AzimuthMax(catalog,model) = Fuel_AzimuthAny(catalog,model) = 0.;
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_SpreadWindSlopeMax()
- *
- *  Description
- *      Calculates maximum fire spread rate and direction under the given
- *      wind-slope conditions.  Results depend only upon:
- *      - no wind-slope spread rate
- *      - wind speed and direction
- *      - aspect and slope
- *
- *  Side Effects
- *      Updates the following variables:
- *          Fuel_Slope()                      = slope;
- *          Fuel_PhiSlope().
- *          Fuel_Wind()                       = windFpm;
- *          Fuel_PhiWind().
- *          Fuel_Aspect(catalog,model)        = aspect;
- *          Fuel_WindDir(catalog,model)       = windDeg;
- *          Fuel_PhiEffWind(catalog,model)    = phiEw;
- *          Fuel_EffectiveWind(catalog,model) = effectiveWind;
- *          Fuel_WindLimit(catalog,model)     = windLimit;
- *          Fuel_SpreadMax(catalog,model)     = spreadMax;
- *          Fuel_AzimuthMax(catalog,model)    = azimuthMax;
- *          Fuel_LwRatio(catalog,model)       = lwRatio;
- *          Fuel_Eccentricity(catalog,model)  = eccentricity;
- *
- *      Resets Fire_SpreadAtAzimuth() variables:
- *          Fuel_SpreadAny(catalog,model)       = spreadMax;
- *          Fuel_AzimuthAny(catalog,model)      = azimuthMax;
- *          Fuel_ByramsIntensity(catalog,model) = 0.;
- *          Fuel_FlameLength(catalog,model)     = 0.;
- *          Fuel_ScorchHeight(catalog,model)    = 0.;
- *
- *      Previous Fire_SpreadAtAzimiuth() results become obsolete for this model.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_SpreadWindSlopeMax ( FuelCatalogPtr catalog, size_t model, double windFpm, double windDeg, double slope, double aspect )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-   // size_t  model;              /* fuel model number            [0-maxModels] */
-   // double  windFpm;            /* wind speed                        (ft/min) */
-   // double  windDeg;            /* wind bearing vector      (compass degrees) */
-   // double  slope;              /* slope                         (rise/reach) */
-   // double  aspect;             /* aspect (downslope)   azimuth (compass deg) */
-{
-    double upslope, azimuthMax, phiEw;
-    double splitDeg, splitRad;
-    double slpRate, wndRate, rv, spreadMax;
-    double x, y, al, a;
-    double maxWind, effectiveWind, lwRatio, eccentricity;
-    size_t doEffectiveWind, checkWindLimit, windLimit;
-
-    /* Validate the catalog and fuel model. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-    if ( ! Fire_FuelModelExists(catalog,model) )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_SpreadMax(): el modelo de combustible %d no existe en el catálogo de combustibles \"%s\".",
-            model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Recalculate slope factors ONLY if different from previous model input. */
-    if ( ! Equal(Fuel_Slope(catalog,model),slope) )
-    {
-        Fuel_PhiSlope(catalog,model) =
-            Fuel_SlopeK(catalog,model) * slope * slope;
-        Fuel_Slope(catalog,model) = slope;
-    }
-
-    /* Recalculate wind factors ONLY if different from previous model input. */
-    if ( ! Equal(Fuel_WindSpeed(catalog,model),windFpm) )
-    {
-        Fuel_PhiWind(catalog,model) = (windFpm < Smidgen) ? 0. :
-            Fuel_WindK(catalog,model) * pow(windFpm, Fuel_WindB(catalog,model));
-        Fuel_WindSpeed(catalog,model) = windFpm;
-    }
-
-    /* Combine wind and slope factors. */
-    phiEw = Fuel_PhiSlope(catalog,model) + Fuel_PhiWind(catalog,model);
-    windLimit = 0;
-    lwRatio = 1.;
-    eccentricity = 0.;
-    upslope = (aspect>=180.) ? aspect-180. : aspect+180.;
-
-    /* Situation 1: no fire spread or reaction intensity. */
-    if ( Fuel_Spread0(catalog,model) < Smidgen )
-    {
-        spreadMax = 0.;
-        azimuthMax = 0;
-        /* There IS an effective wind even if there is no fire. */
-        doEffectiveWind = 1;
-        /* But since BEHAVE doesn't calculate effective wind when no spread. */
-        /* we wont either. */
-        effectiveWind = 0.;
-        doEffectiveWind = 0;
-        checkWindLimit = 0;
-    }
-
-    /* Situation 2: no wind and no wind */
-    else if ( phiEw < Smidgen )
-    {
-        phiEw = 0.;
-        effectiveWind = 0.;
-        doEffectiveWind = 0;
-        spreadMax = Fuel_Spread0(catalog,model);
-        azimuthMax = 0;
-        checkWindLimit = 0;
-    }
-
-    /* Situation 3: wind with no slope. */
-    else if ( slope < Smidgen )
-    {
-        effectiveWind = windFpm;
-        doEffectiveWind = 0;
-        spreadMax = Fuel_Spread0(catalog,model) * (1. + phiEw);
-        azimuthMax = windDeg;
-        checkWindLimit = 1;
-    }
-
-    /* Situation 4: slope with no wind. */
-    else if ( windFpm < Smidgen )
-    {
-        doEffectiveWind = 1;
-        spreadMax = Fuel_Spread0(catalog,model) * (1. + phiEw);
-        azimuthMax = upslope;
-        checkWindLimit = 1;
-    }
-
-    /* Situation 5: wind blows upslope. */
-    else if ( Equal(upslope,windDeg) )
-    {
-        doEffectiveWind = 1;
-        spreadMax = Fuel_Spread0(catalog,model) * (1. + phiEw);
-        azimuthMax = upslope;
-        checkWindLimit = 1;
-    }
-
-    /* Situation 6: wind blows cross slope. */
-    else
-    {
-        /* Recalculate spread rate in the optimal direction. */
-        splitDeg = (upslope<=windDeg) ? windDeg-upslope : 360.-upslope+windDeg;
-        splitRad = DegreesToRadians(splitDeg);
-        slpRate  = Fuel_Spread0(catalog,model) * Fuel_PhiSlope(catalog,model);
-        wndRate  = Fuel_Spread0(catalog,model) * Fuel_PhiWind(catalog,model);
-        x        = slpRate + wndRate * cos(splitRad);
-        y        = wndRate * sin(splitRad);
-        rv       = sqrt(x*x + y*y);
-        spreadMax= Fuel_Spread0(catalog,model) + rv;
-
-        /* Recalculate phiEw in the optimal direction. */
-        phiEw    = spreadMax / Fuel_Spread0(catalog,model) - 1.0;
-        doEffectiveWind = (phiEw > Smidgen) ? 1 : 0;
-        checkWindLimit = 1;
-
-        /* Recalculate direction of maximum spread in azimuth degrees. */
-        al = asin(fabs(y) / rv);
-        if ( x >= 0. )
-            a = (y >= 0.) ? al          : M_PI + M_PI - al;
-        else
-            a = (y >= 0.) ? (M_PI - al) : (M_PI + al);
-
-        splitDeg = RadiansToDegrees(a);
-        if ( (azimuthMax = upslope + splitDeg) > 360. )
-            azimuthMax -= 360.;
-    }
-
-    /* Recalculate effective wind speed based upon phiEw. */
-    if ( doEffectiveWind )
-        effectiveWind = pow( (phiEw * Fuel_WindE(catalog,model)),
-                             (1. / Fuel_WindB(catalog,model)) );
-
-    /* If effective wind exceeds maximum wind, scale back spread & phiEw. */
-    if ( checkWindLimit )
-    {
-        maxWind = 0.9 * Fuel_RxIntensity(catalog,model);
-        if ( effectiveWind > maxWind )
-        {
-            phiEw = (maxWind < Smidgen) ? 0. :
-                Fuel_WindK(catalog,model) * pow(maxWind, Fuel_WindB(catalog,model));
-
-            spreadMax = Fuel_Spread0(catalog,model) * (1. + phiEw);
-            effectiveWind = maxWind;
-            windLimit = 1;
-        }
-    }
-
-    /* Determine fire ellipse parameters from the effective wind speed. */
-    /* = 1. + 0.25 * (Fuel_EffectiveWind(catalog,model) / 88.0); */
-    if ( effectiveWind > Smidgen )
-    {
-        lwRatio = 1. + 0.002840909 * effectiveWind;
-        eccentricity = sqrt(lwRatio * lwRatio - 1.0) / lwRatio;
-    }
-
-    /* Store the results. */
-    Fuel_Aspect(catalog,model)       = aspect;
-    Fuel_WindDir(catalog,model)      = windDeg;
-    Fuel_PhiEffWind(catalog,model)   = phiEw;
-    Fuel_EffectiveWind(catalog,model)= effectiveWind;
-    Fuel_WindLimit(catalog,model)    = windLimit;
-    Fuel_SpreadMax(catalog,model)    = Fuel_SpreadAny(catalog,model)  = spreadMax;
-    Fuel_AzimuthMax(catalog,model)   = Fuel_AzimuthAny(catalog,model) = azimuthMax;
-    Fuel_LwRatio(catalog,model)      = lwRatio;
-    Fuel_Eccentricity(catalog,model) = eccentricity;
-
-    /* Initialize behavior variables updated by Fire_SpreadAtAzimuth(). */
-    Fuel_ByramsIntensity(catalog,model) = 0.;
-    Fuel_FlameLength(catalog,model)     = 0.;
-    Fuel_ScorchHeight(catalog,model)    = 0.;
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_SpreadAtAzimuth()
- *
- *  Description
- *      Calculates fire spread rate in a specified direction and optionally
- *      calculates the fireline intensity, flame length, and scorch height
- *      along the fire spread vector.
- *
- *  Side Effects
- *      The following variables are updated:
- *          Fuel_SpreadAny(catalog,model)
- *          Fuel_AzimuthAny(catalog,model) == azimuth;
- *          Fuel_ByramsIntensity(catalog,model) is updated if FIRE_BYRAMS.
- *          Fuel_FlameLength(catalog,model) is updated if FIRE_FLAME.
- *          Fuel_ScorchHeight(catalog,model) is updated if FIRE_SCORCH.
- *  Notes
- *      The calculations depend upon the most recent calls to
- *      Fire_SpreadNoWindNoSlope() and Fire_SpreadWindSlopeMax() for this model.
- *
- *      The input azimuth is the degrees clockwise from north.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_SpreadAtAzimuth ( FuelCatalogPtr catalog, size_t model, double azimuth, size_t which )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-   // size_t  model;              /* fuel model number            [0-maxModels] */
-   // double  azimuth;            /* fire spread azimuth     (deg from upslope) */
-   // size_t  which;      /* FIRE_NONE | FIRE_BYRAMS | FIRE_FLAME | FIRE_SCORCH */
-{
-    double dir;
-    double radians;
-    double byrams;
-    double mph;
-    size_t lo, hi, mid, n;
-
-    /* Validate catalog and the fuel model. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-    if ( ! Fire_FuelModelExists(catalog,model) )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_SpreadAtAzimuth(): el modelo de combustible %d no existe en el catálogo de combustibles \"%s\".",
-            model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Situation 1: no fire or reaction intensity, so no Byrams or flame. */
-    if ( Fuel_SpreadMax(catalog,model) < Smidgen )
-        return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-
-    /* Situation 2: phiEw is zero OR azimuth is in the max spread direction */
-    if ( Fuel_PhiEffWind(catalog,model) < Smidgen
-      || Equal(Fuel_AzimuthMax(catalog,model),azimuth) )
-    {
-        Fuel_SpreadAny(catalog,model) = Fuel_SpreadMax(catalog,model);
-    }
-
-    /* Situation 3: wind and/or slope and azimuth not in max spread direction */
-    else
-    {
-        /* Angle between maximum spread azimuth and requested azimuth. */
-        if ( (dir = fabs(Fuel_AzimuthMax(catalog,model) - azimuth)) > 180. )
-            dir = 360. - dir;
-        radians = DegreesToRadians(dir);
-
-        /* Calculate the fire spread rate in this azimuth. */
-        Fuel_SpreadAny(catalog,model)
-            = Fuel_SpreadMax(catalog,model)
-            * (1. - Fuel_Eccentricity(catalog,model))
-            / (1. - Fuel_Eccentricity(catalog,model) * cos(radians));
-    }
-    Fuel_AzimuthAny(catalog,model) = azimuth;
-
-    /* Additional fire behavior outputs. */
-    if ( which )
-    {
-        /* Must compute Byram's if any of the three are requested. */
-        byrams = Fuel_ResidenceTime(catalog,model)
-               * Fuel_SpreadAny(catalog,model)
-               * Fuel_RxIntensity(catalog,model)
-               / 60.;
-
-        /* Byrams intensity is requested. */
-        if ( which & FIRE_BYRAMS )
-            Fuel_ByramsIntensity(catalog,model) = byrams;
-
-        /* Flame length is requested. */
-        if ( (which & FIRE_FLAME) )
-        {
-            if ( byrams < Smidgen )
-            {
-                Fuel_FlameLength(catalog,model) = 0.;
-            }
-            else
-            {
-                /* Use lookup table if it exists & includes this intensity. */
-                if ( (n = FuelCat_FlameClasses(catalog)) > 0
-                  && FuelCat_FlameArray(catalog)[n-1] > byrams )
-                {
-                    hi = n-1;
-                    lo = 0;
-                    do {
-                        mid = lo + (hi-lo)/2;
-                        if ( FuelCat_FlameArray(catalog)[mid] > byrams )
-                            hi = mid;
-                        else
-                            lo = mid + 1;
-                    } while (lo != hi);
-                    Fuel_FlameLength(catalog,model) =
-                        FuelCat_FlameStep(catalog) * (lo+1);
-                }
-                /* otherwise compute flame length from scratch. */
-                else
-                {
-                    Fuel_FlameLength(catalog,model) = 0.45 * pow(byrams, 0.46);
-                }
-            }
-        }
-
-        /* Scorch height is requested. */
-        if ( (which & FIRE_SCORCH) )
-        {
-            if ( byrams < Smidgen )
-            {
-                Fuel_ScorchHeight(catalog,model) = 0.;
-            }
-            else
-            {
-                mph = Fuel_WindSpeed(catalog,model) / 88.;
-                Fuel_ScorchHeight(catalog,model) =
-                    pow(byrams, 1.166667) / sqrt(byrams + (mph * mph * mph));
-            /*  Fuel_ScorchHeight(catalog,model) *= (63. / (140. - temp_f) ); */
-            }
-        }
-    }
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FlameScorch()
- *
- *  Description
- *      Calculates the flame length and/or scorch height for the current
- *      Byram's intensity and azimuth (as determined by the most recent
- *      call to Fire_SpreadAtAzimuth()).
- *      Uses the Flame Length Table if it exists.
- *      Offers a method of getting flame length if Fire_SpreadAtAzimuth()
- *      is not calculating it.
- *
- *  Side Effects
- *      The following variables are updated:
- *          Fuel_FlameLength(catalog,model) is updated.
- *          Fuel_ScorchHeight(catalog,model)
- *  Notes
- *      The calculations depend upon the most recent calls to
- *      Fire_SpreadNoWindNoSlope(), Fire_SpreadWindSlopeMax(), and
- *      Fire_SpreadAtAzimuth() for this model.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_FlameScorch ( FuelCatalogPtr catalog, size_t model, size_t which )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-   // size_t  model;              /* fuel model number            [0-maxModels] */
-   // size_t  which;      /* FIRE_NONE | FIRE_BYRAMS | FIRE_FLAME | FIRE_SCORCH */
-{
-    double byrams;
-    double mph;
-    size_t lo, hi, mid, n;
-
-    /* Validate catalog and the fuel model. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-    if ( ! Fire_FuelModelExists(catalog,model) )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FlameScorch(): el modelo de combustible %d no existe en el catálogo de combustibles \"%s\".",
-            model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    byrams = Fuel_ResidenceTime(catalog,model)
-           * Fuel_SpreadAny(catalog,model)
-           * Fuel_RxIntensity(catalog,model)
-           / 60.;
-
-    /* Flame length is requested. */
-    if ( (which & FIRE_FLAME) )
-    {
-        if ( byrams < Smidgen )
-        {
-            Fuel_FlameLength(catalog,model) = 0.;
-        }
-        else
-        {
-            /* Use lookup table if it exists & includes this intensity. */
-            if ( (n = FuelCat_FlameClasses(catalog)) > 0
-              && FuelCat_FlameArray(catalog)[n-1] > byrams )
-            {
-                hi = n-1;
-                lo = 0;
-                do {
-                    mid = lo + (hi-lo)/2;
-                    if ( FuelCat_FlameArray(catalog)[mid] > byrams )
-                        hi = mid;
-                    else
-                        lo = mid + 1;
-                } while (lo != hi);
-                Fuel_FlameLength(catalog,model) =
-                    FuelCat_FlameStep(catalog) * (lo+1);
-            }
-            /* otherwise compute flame length from scratch. */
-            else
-            {
-                Fuel_FlameLength(catalog,model) = 0.45 * pow(byrams, 0.46);
-            }
-        }
-    }
-
-    /* Scorch height is requested. */
-    if ( (which & FIRE_SCORCH) )
-    {
-        if ( byrams < Smidgen )
-        {
-            Fuel_ScorchHeight(catalog,model) = 0.;
-        }
-        else
-        {
-            mph = Fuel_WindSpeed(catalog,model) / 88.;
-            Fuel_ScorchHeight(catalog,model) =
-                pow(byrams, 1.166667) / sqrt(byrams + (mph * mph * mph));
-        /*  Fuel_ScorchHeight(catalog,model) *= (63. / (140. - temp_f) ); */
-        }
-    }
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FlameLengthTable()
- *
- *  Description
- *      Creates a flame length lookup table containing "flameClasses" classes
- *      with each class spanning "flameStep" feet.
- *
- *  Discussion
- *      Since flame length is strictly an output variable (e.g., it is never
- *      used as the basis for subsequent computations), we can usually afford
- *      to round it to some precision that makes sense to fire managers.
- *      Usually this will be in 1 foot or perhaps 6 inch increments.  The call
- *
- *
- *      creates a flame length table for flame lengths of 1 through 500 feet.
- *
- *      Fire_SpreadAtAzimuth() uses the flame table (if one is defined for the
- *      catalog) to avoid using the costly pow() function for highly iterative
- *      flame length calculations, saving a considerable amount of processing
- *      time.  Fire_SpreadAtAzimuth() will still use the pow() function to
- *      compute flame length if (1) a flame length table is not defined,
- *      (2) the fireline intensity exceeds the upper limit of the currently
- *      defined flame length table, or (3) the flame length table becomes
- *      undefined by a Fire_FlameLengthTable(catalog, 0, 0.) call.
- *
- *
- *  Examples
- *      Fire_FlameLengthTable(catalog, 200, 1.0);
- *          Creates a table for flame lengths of 1 through 200 feet in 1-foot
- *          intervals.  Any previously defined flame length table for this
- *          fuel catalog is destroyed.
- *
- *      Fire_FlameLengthTable(catalog, 500, 0.5);
- *          Creates a table for flame lengths of 0.5 through 250 feet in 6-inch
- *          intervals.  ANy previously defined flame length table for this
- *          fuel catalog is destroyed.
- *
- *      Fire_FlameLengthTable(catalog, 0, 0.);
- *          Destroys any existing flame length table for this catalog, and
- *          forces actual flame length computation using pow() function.
- *
- *  Side Effects
- *      If a flame length table currently exists, it is destroyed, and the
- *      FuelCat_FlameArray(), FuelCat_FlameClasses(), and
- *      FuelCat_FlameStep() are set to NULL, 0, and 0.0, respectively.
- *
- *      If fireClasses > 0, allocates a flame length table and fills it with
- *      the fireline intensity associated with the upper limit of each flame
- *      length class.  The FuelCat_FlameArray(), FuelCat_FlameClasses(), and
- *      FuelCat_FlameStep() are then updated.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_FlameLengthTable ( FuelCatalogPtr catalog, size_t flameClasses, double flameStep )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-   // size_t  flameClasses;       /* number of flame length classes             */
-   // double  flameStep;          /* flame length step value per class          */
-{
-    double power, flame;
-    size_t i;
-
-    /* Validate the catalog. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-
-    /* If a flame table already exists, destroy it. */
-    if ( FuelCat_FlameArray(catalog) )
-    {
-        free(FuelCat_FlameArray(catalog));
-        FuelCat_FlameArray(catalog)   = NULL;
-        FuelCat_FlameClasses(catalog) = 0;
-        FuelCat_FlameStep(catalog)    = 0.0;
-    }
-
-    /* If flameClasses is zero, simply return. */
-    if ( flameClasses == 0 )
-        return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-
-    /* Otherwise create a new flame table. */
-    if ( (FuelCat_FlameArray(catalog) = (double *)
-        calloc(flameClasses, sizeof(double))) == NULL )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FlameLengthTable(): imposible asignar tabla de longitud de llama con %d clases de %f pies.",
-            flameClasses, flameStep);
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Fill the array. */
-    power = 1. / .46;
-    for ( i=0; i<flameClasses; i++ )
-    {
-        flame = flameStep * (i+1);
-        FuelCat_FlameArray(catalog)[i] = pow((flame / .45), power);
-    }
-    FuelCat_FlameClasses(catalog) = flameClasses;
-    FuelCat_FlameStep(catalog)    = flameStep;
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FuelCatalogCreate()
- *
- *  Description
- *      Creates a new fuel model catalog capable of holding fuel models with
- *      id's in the range [0..maxModel].
- *      The catalog is filled by subsequent calls to Fire_FuelModelCreate().
- *
- *  Side Effects
- *      Allocates a new FuelCatalogData structure.
- *      Allocates an error text buffer for the catalog.
- *      Allocates a name for the catalog.
- *      Allocates an array of pointers to FuelData structures (the FuelData
- *      structures themselves are allocated by Fire_FuelModelCreate() and
- *      their pointers are stored here).
- *
- *  Notes
- *      The FuelCatalog contains a dynamically-allocated array of pointers
- *      to FuelData blocks.  These pointers are initially NULL and are
- *      subsequently assigned by Fire_FuelModelCreate().  The array provides
- *      the programmer with a means of directly accessing fuel models via
- *      their model number, which is handy when simulating fire growth.
- *
- *  Function Returns
- *      While most FireLib functions return a status code, this one returns
- *      a pointer to the new FuelCatalogData on success or NULL if unable
- *      to allocate any of the dynamic structures.
- *
- *******************************************************************************
- */
-
-FuelCatalogPtr
-Fire_FuelCatalogCreate ( char *name, size_t maxModels )
-   // char  *name;                /* FuelCatalogData instance name */
-   // size_t maxModels;           /* maximum modelId allowed in this catalog */
-{
-    FuelCatalogPtr catalog;
-    static char *blank = {""};
-
-    /* Catch a NULL name. */
-    if ( name == NULL )
-        name = blank;
-
-    /* Allocate the FireCatalogData structure. */
-    if ( (catalog = (FuelCatalogPtr) malloc(sizeof(FuelCatalogData))) == NULL )
-    {
-        fprintf(stderr,
-            "Fire_FuelCatalogCreate(): imposible asignar el objeto \"%s\" del catálogo de combustibles.\n",
-            name);
-        return (NULL);
-    }
-
-    /* Assign the magic cookie right away. */
-    FuelCat_MagicCookie(catalog) = FIRE_CATALOG_MAGIC;
-
-    /* Allocate and store the catalog instance name. */
-    if ( (FuelCat_Name(catalog) = strdup(name)) == NULL )
-    {
-        fprintf(stderr,
-            "Fire_FuelCatalogCreate(): imposible duplicar el nombre \"%s\" del catálogo de combustibles.\n",
-            name);
-        free(catalog);
-        return (NULL);
-    }
-
-    /* Allocate the FireCatalogData error message buffer. */
-    if ( (FuelCat_Error(catalog) =
-        (char *) calloc(FIRE_ERROR_BUFFER_SIZE, sizeof(char))) == NULL )
-    {
-        fprintf(stderr,
-            "Fire_FuelCatalogCreate(): imposible asignar el bufer de error  \"%s\" del catálogo de combustibles.\n",
-            name);
-        free(FuelCat_Name(catalog));
-        free(catalog);
-        return (NULL);
-    }
-    FuelCat_Status(catalog) = FIRE_STATUS_ERROR;
-
-    /* Allocate a FuelModelPtr array to handle models [0..maxModels]. */
-    maxModels++;
-    FuelCat_MaxModels(catalog) = maxModels;
-    if ( (FuelCat_ModelArray(catalog) = (FuelModelPtr *)
-        calloc(FuelCat_MaxModels(catalog), sizeof(FuelModelPtr))) == NULL )
-    {
-        fprintf(stderr,
-            "Fire_FuelCatalogCreate(): imposible asignar \"%s\" con %d modelos de combustible del catálogo de combustibles.\n",
-            name, maxModels);
-        free(FuelCat_Error(catalog));
-        free(FuelCat_Name(catalog));
-        free(catalog);
-        return (NULL);
-    }
-
-    /* Initialize variables and return ptr to this instance. */
-    FuelCat_FlameArray(catalog)   = NULL;
-    FuelCat_FlameClasses(catalog) = 0;
-    FuelCat_FlameStep(catalog)    = 0.0;
-    FuelCat_Status(catalog)       = FIRE_STATUS_OK;
-    return (catalog);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FuelCatalogCreateStandard()
- *
- *  Description
- *      Creates a new fuel model catalog capable of holding fuel models with
- *      id's in the range [0..maxModel].
- *      The catalog is then filled with the 13 standard fire behavior fuel
- *      models.  Other models may be added by subsequent calls to
- *      Fire_FuelModelCreate().
- *
- *  Side Effects
- *      Allocates a new FuelCatalogData structure.
- *      Fills the catalog with standard fuels models 0-13.
- *
- *  Function Returns
- *      While most FireLib functions return a status code, this one returns
- *      a pointer to the new FuelCatalogData on success, or NULL if unable
- *      to allocate any of the dynamic structures.
- *
- *******************************************************************************
- */
-
-FuelCatalogPtr
-Fire_FuelCatalogCreateStandard (char *name, size_t maxModels )
-   // char  *name;                /* FuelCatalogData instance name */
-   // size_t maxModels;           /* maximum modelId allowed in this catalog */
-{
-    FuelCatalogPtr catalog;
-    double stot, seff, heat, dens, adjust;
-    size_t m, p;
-
-    /* Fuel model definitions. */
-    typedef struct {
-        char *name; double depth; double mext; size_t maxParticles; char *desc;
-    } StandardModels;
-
-    StandardModels M[14] = {
-        {"NoFuel", 0.1, 0.01, 0, "No Combustible Fuel" },
-        {"NFFL01", 1.0, 0.12, 1, "Short Grass (1 ft)" },
-        {"NFFL02", 1.0, 0.15, 4, "Timber (grass & understory)" },
-        {"NFFL03", 2.5, 0.25, 1, "Tall Grass (2.5 ft)" },
-        {"NFFL04", 6.0, 0.20, 4, "Chaparral (6 ft)" },
-        {"NFFL05", 2.0, 0.20, 3, "Brush (2 ft)" },
-        {"NFFL06", 2.5, 0.25, 3, "Dormant Brush & Hardwood Slash" },
-        {"NFFL07", 2.5, 0.40, 4, "Southern Rough" },
-        {"NFFL08", 0.2, 0.30, 3, "Closed Timber Litter" },
-        {"NFFL09", 0.2, 0.25, 3, "Hardwood Litter" },
-        {"NFFL10", 1.0, 0.25, 4, "Timber (litter & understory)" },
-        {"NFFL11", 1.0, 0.15, 3, "Light Logging Slash" },
-        {"NFFL12", 2.3, 0.20, 3, "Medium Logging Slash" },
-        {"NFFL13", 3.0, 0.25, 3, "Heavy Logging Slash" }
-    };
-
-    /* Fuel particle definitions. */
-    typedef struct {
-        size_t model; size_t type; double load; double savr;
-    } StandardParticle;
-
-    static StandardParticle P[39] = {
-        { 1, FIRE_TYPE_DEAD, 0.0340, 3500.},
-        { 2, FIRE_TYPE_DEAD, 0.0920, 3000.},
-        { 2, FIRE_TYPE_DEAD, 0.0460, 109.},
-        { 2, FIRE_TYPE_DEAD, 0.0230, 30.},
-        { 2, FIRE_TYPE_HERB, 0.0230, 1500.},
-        { 3, FIRE_TYPE_DEAD, 0.1380, 1500.},
-        { 4, FIRE_TYPE_DEAD, 0.2300, 2000.},
-        { 4, FIRE_TYPE_DEAD, 0.1840, 109.},
-        { 4, FIRE_TYPE_DEAD, 0.0920, 30.},
-        { 4, FIRE_TYPE_WOOD, 0.2300, 1500.},
-        { 5, FIRE_TYPE_DEAD, 0.0460, 2000.},
-        { 5, FIRE_TYPE_DEAD, 0.0230, 109.},
-        { 5, FIRE_TYPE_WOOD, 0.0920, 1500.},
-        { 6, FIRE_TYPE_DEAD, 0.0690, 1750.},
-        { 6, FIRE_TYPE_DEAD, 0.1150, 109.},
-        { 6, FIRE_TYPE_DEAD, 0.0920, 30.},
-        { 7, FIRE_TYPE_DEAD, 0.0520, 1750.},
-        { 7, FIRE_TYPE_DEAD, 0.0860, 109.},
-        { 7, FIRE_TYPE_DEAD, 0.0690, 30.},
-        { 7, FIRE_TYPE_WOOD, 0.0170, 1550.},
-        { 8, FIRE_TYPE_DEAD, 0.0690, 2000.},
-        { 8, FIRE_TYPE_DEAD, 0.0460, 109.},
-        { 8, FIRE_TYPE_DEAD, 0.1150, 30.},
-        { 9, FIRE_TYPE_DEAD, 0.1340, 2500.},
-        { 9, FIRE_TYPE_DEAD, 0.0190, 109.},
-        { 9, FIRE_TYPE_DEAD, 0.0070, 30.},
-        {10, FIRE_TYPE_DEAD, 0.1380, 2000.},
-        {10, FIRE_TYPE_DEAD, 0.0920, 109.},
-        {10, FIRE_TYPE_DEAD, 0.2300, 30.},
-        {10, FIRE_TYPE_WOOD, 0.0920, 1500.},
-        {11, FIRE_TYPE_DEAD, 0.0690, 1500.},
-        {11, FIRE_TYPE_DEAD, 0.2070, 109.},
-        {11, FIRE_TYPE_DEAD, 0.2530, 30.},
-        {12, FIRE_TYPE_DEAD, 0.1840, 1500.},
-        {12, FIRE_TYPE_DEAD, 0.6440, 109.},
-        {12, FIRE_TYPE_DEAD, 0.7590, 30.},
-        {13, FIRE_TYPE_DEAD, 0.3220, 1500.},
-        {13, FIRE_TYPE_DEAD, 1.0580, 109.},
-        {13, FIRE_TYPE_DEAD, 1.2880, 30.},
-    };
-
-    /* First, create the catalog. */
-    if ( maxModels < 13 )
-        maxModels = 13;
-    if ( (catalog = Fire_FuelCatalogCreate(name, maxModels)) == NULL )
-        return (NULL);
-
-    /* Second, create all 14 models. */
-    adjust = 1.0;
-    for ( m=0; m<14; m++ )
-    {
-        if ( Fire_FuelModelCreate(catalog, m, M[m].name, M[m].desc, M[m].depth,
-            M[m].mext, adjust, M[m].maxParticles) != FIRE_STATUS_OK )
-        {
-            fprintf(stderr, "%s\n", FuelCat_Error(catalog));
-            Fire_FuelCatalogDestroy(catalog);
-            return (NULL);
-        }
-    }
-
-    /* Finally, add all the fuel particles. */
-    stot   = 0.0555;
-    seff   = 0.0100;
-    heat   = 8000.0;
-    dens   = 32.0;
-    for ( p=0; p<39; p++ )
-    {
-        if ( Fire_FuelParticleAdd(catalog, P[p].model, P[p].type, P[p].load,
-            P[p].savr, dens, heat, stot, seff) != FIRE_STATUS_OK )
-        {
-            fprintf(stderr, "%s\n", FuelCat_Error(catalog));
-            Fire_FuelCatalogDestroy(catalog);
-            return (NULL);
-        }
-    }
-
-    return (catalog);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FuelCatalogDestroy()
- *
- *  Description
- *      Destroys the fuel catalog and all its associated models and particles.
- *
- *  Side Effects
- *      Destroys all FuelData instances belonging to the catalog.
- *      Frees the array of pointers to FuelData structures.
- *      Frees the catalog name.
- *      Frees the catalog error text buffer.
- *      Frees the FuelCatalog instance.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_FuelCatalogDestroy ( FuelCatalogPtr catalog )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance to destroy. */
-{
-    size_t model;
-
-    /* Validate the catalog. */
-    assert(catalog!=NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-
-    /* First destroy all the fuel models in this catalog. */
-    /* The free the catalog's array of FuelData pointers. */
-    if ( FuelCat_ModelArray(catalog) )
-    {
-        for ( model=0; model <= FuelCat_MaxModels(catalog); model++ )
-        {
-            if ( FuelCat_ModelPtr(catalog,model) )
-                Fire_FuelModelDestroy(catalog, model);
-        }
-        free(FuelCat_ModelArray(catalog));
-        FuelCat_ModelArray(catalog) = NULL;
-    }
-
-    /* Next destroy the flame length table. */
-    if ( FuelCat_FlameArray(catalog) )
-    {
-        free(FuelCat_FlameArray(catalog));
-        FuelCat_FlameArray(catalog)   = NULL;
-        FuelCat_FlameClasses(catalog) = 0;
-        FuelCat_FlameStep(catalog)    = 0.0;
-    }
-
-    /* Then free the name and error buffer for this FuelCatalogData instance. */
-    if ( FuelCat_Error(catalog) )
-    {
-        free(FuelCat_Error(catalog));
-        FuelCat_Error(catalog) = NULL;
-    }
-
-    if ( FuelCat_Name(catalog) )
-    {
-        free(FuelCat_Name(catalog));
-        FuelCat_Name(catalog) = NULL;
-    }
-
-    /* Finally,free the FuelCatalogData instance and return. */
-    free(catalog);
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FuelModelCreate()
- *
- *  Description
- *      Creates a new fuel model able to hold maxParticles fuel particles.
- *      Fuel particles are subsequently added by Fire_FuelParticleAdd().
- *
- *  Side Effects
- *      Any existing fuel model with modelId in the Fuel Catalog is destroyed.
- *      Allocates the fuel model's FuelData block.
- *      Allocates the fuel model's name string.
- *      Allocates the fuel model's description string.
- *      Allocates the fuel model's fuel particle pointer array of maxParticles
- *      (the FuelParticleData blocks are actually allocated within
- *      Fire_FuelparticleAdd() and thier pointers stored in this array).
- *      The fuel model's address is stored in the fuel catalog's pointer array.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_FuelModelCreate (FuelCatalogPtr catalog, size_t model, char *name, char *desc, double depth, double mext, double adjust, size_t maxParticles)
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance */
-   // size_t  model;              /* fuel model number            [0-maxModels] */
-   // char   *name;               /* short name */
-   // char   *desc;               /* longer description */
-   // double  depth;              /* bed depth                             (ft) */
-   // double  mext;               /* moisture of extinction                (dl) */
-   // double  adjust;             /* spread adjustment factor              (dl) */
-   // size_t  maxParticles;       /* maximum number of fuel model particles     */
-{
-    static char *blank = {""};
-    size_t particle;
-
-    /* Validate the catalog. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-
-    /* Make sure model id is within range. */
-    if ( model > FuelCat_MaxModels(catalog) )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelModelCreate(): fuel model \"%s\" number %d exceeds fuel catalog \"%s\" range [0..%d].",
-            name, model, FuelCat_Name(catalog), FuelCat_MaxModels(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Validate depth and mext. */
-    if ( depth < Smidgen )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelModelCreate(): el modelo de combustible \"%s\" número %d de ancho %5.4f es demasiado pequeño.",
-            name, model, depth);
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    if ( mext < Smidgen )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelModelCreate(): el modelo de combustible \"%s\" número %d de humedad de extinción %5.4f es demasiado pequeño.",
-            name, model, mext);
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* If this model already exists, delete it. */
-    if ( FuelCat_ModelPtr(catalog,model) )
-        Fire_FuelModelDestroy(catalog, model);
-
-    /* Allocate the model's FuelData structure. */
-    if ( maxParticles < 1 )
-        maxParticles = 1;
-    if ( (FuelCat_ModelPtr(catalog,model) =
-                (FuelModelPtr) calloc(1, sizeof(FuelModelData))) == NULL
-      || (Fuel_ParticleArray(catalog,model) =
-                (PartPtr *) calloc(maxParticles, sizeof(PartPtr))) == NULL )
-    {
-        Fire_FuelModelDestroy(catalog, model);
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelModelCreate(): imposible asignar el modelos de combustible \"%s\" número %d para el catálogo de combustibles \"%s\".",
-            name, model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Catch NULL names and descriptions. */
-    if ( name == NULL )
-        name = blank;
-    if ( desc == NULL )
-        desc = blank;
-
-    /* Store remaining attributes. */
-    Fuel_Model(catalog,model)            = model;
-    Fuel_Depth(catalog,model)            = depth;
-    Fuel_Mext(catalog,model)             = mext;
-    Fuel_SpreadAdjustment(catalog,model) = adjust;
-    Fuel_Name(catalog,model)             = strdup(name);
-    Fuel_Desc(catalog,model)             = strdup(desc);
-    Fuel_CombustionFlag(catalog,model)   = 0;
-    Fuel_MaxParticles(catalog,model)     = maxParticles;
-    Fuel_Particles(catalog,model)        = 0;
-    for ( particle=0; particle<Fuel_MaxParticles(catalog,model); particle++ )
-        Fuel_ParticlePtr(catalog,model,particle) = NULL;
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FuelModelDestroy()
- *
- *  Description
- *      Deletes the specified fuel model.
- *      Note: this is one of only 3 functions that use the modelId instead
- *      of a FuelData pointer to identify the model.
- *
- *  Side Effects
- *      Free's all fuel particles added to the fuel model.
- *      Free's the fuel particle pointer array.
- *      Free's the fuel model's name.
- *      Free's the fuel model's description.
- *      Free's the fuel model's FuelData block.
- *      Sets the Fuel Catalog's pointer for this fuel model to NULL.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_FuelModelDestroy ( FuelCatalogPtr catalog, size_t model )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-   // size_t         model;       /* fuel model id number         [0-maxModels] */
-{
-    size_t particle;
-
-    /* Validate the catalog. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-
-    /* Make sure model id is within range and exists. */
-    if ( ! Fire_FuelModelExists(catalog,model) )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelModelDestroy(): el modelo de combustible %d no existe en el catálogo de combustibles \"%s\".",
-            model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Free all the fuel model particles and their pointer array. */
-    if ( Fuel_ParticleArray(catalog,model) )
-    {
-        for (particle=0; particle<Fuel_MaxParticles(catalog,model); particle++)
-        {
-            if ( Fuel_ParticlePtr(catalog,model,particle) )
-            {
-                free(Fuel_ParticlePtr(catalog,model,particle));
-                Fuel_ParticlePtr(catalog,model,particle) = NULL;
-            }
-        }
-        free(Fuel_ParticleArray(catalog,model));
-        Fuel_ParticleArray(catalog,model) = NULL;
-    }
-
-    /* Free the fuel model name and description. */
-    if ( Fuel_Name(catalog,model) )
-    {
-        free(Fuel_Name(catalog,model));
-        Fuel_Name(catalog,model) = NULL;
-    }
-
-    if ( Fuel_Desc(catalog,model) )
-    {
-        free(Fuel_Desc(catalog,model));
-        Fuel_Desc(catalog,model) = NULL;
-    }
-
-    /* Now free the FuelData instance and reset its catalog entry. */
-    free(FuelCat_ModelPtr(catalog,model));
-    FuelCat_ModelPtr(catalog,model) = NULL;
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FuelModelExists()
- *
- *  Description
- *      Performs a sanity check to make sure the catalog pointer is valid
- *      and the fuel model number is within range and exists.
- *
- *  Side Effects
- *      None.
- *
- *  Function Returns
- *      1 if "model" exists, 0 if it is undefined.
- *
- *******************************************************************************
- */
-
-int
-Fire_FuelModelExists ( FuelCatalogPtr catalog, size_t model )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-   // size_t         model;       /* fuel model id number         [0-maxModels] */
-{
-    /* Validate the model number. */
-    if ( model > FuelCat_MaxModels(catalog)
-      || ! FuelCat_ModelPtr(catalog,model) )
-        return (int) 0;
-
-    return (int) 1;
-}
-
-/*
- *******************************************************************************
- *
- *  Fire_FuelParticleAdd()
- *
- *  Description
- *      Adds a fuel particle to the specified fuel model.
- *
- *  Side Effects
- *      A FuelParticleData is allocated and appended to the model's array.
- *      The fuel model's particle counter is incremented.
- *      The fuel model's combustion flag set to 0.
- *
- *  Function Returns
- *      FIRE_STATUS_OK or FIRE_STATUS_ERROR.
- *      Return status and error text are stored in the Fire Catalog's buffers.
- *
- *******************************************************************************
- */
-
-int
-Fire_FuelParticleAdd ( FuelCatalogPtr catalog, size_t model, size_t type, double load, double savr, double dens, double heat, double stot, double seff )
-   // FuelCatalogPtr catalog;     /* FuelCatalogData instance pointer           */
-   // size_t  model;              /* fuel model id number         [0-maxModels] */
-   // size_t  type;               /* FIRE_TYPE_DEAD, _TYPE_HERB, or _TYPE_WOOD  */
-   // double  load;               /* fuel load                        (lbs/ft2) */
-   // double  savr;               /* surface-area-to-volume ratio     (ft2/ft3) */
-   // double  dens;               /* density                          (lbs/ft3) */
-   // double  heat;               /* heat of combustion               (btus/lb) */
-   // double  stot;               /* total silica content               (lb/lb) */
-   // double  seff;               /* effective silica content           (lb/lb) */
-{
-    static double Size_boundary[FIRE_SIZE_CLASSES] =
-        {1200., 192., 96., 48., 16., 0.};
-    size_t particle, size;
-
-    /* Validate the catalog. */
-    assert(catalog!= NULL && FuelCat_MagicCookie(catalog)==FIRE_CATALOG_MAGIC);
-
-    /* Validate the fuel model. */
-    if ( ! Fire_FuelModelExists(catalog,model) )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelParticleAdd(): el modelo de combustible %d no existe en el catálogo de combustibles \"%s\".",
-            model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Validate the "type" parameter. */
-    if ( type != FIRE_TYPE_DEAD
-      && type != FIRE_TYPE_HERB
-      && type != FIRE_TYPE_WOOD )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelParticleAdd(): el modelo de combustible %d de tipo de valor (arg #3) no es FIRE_TYPE_DEAD, FIRE_TYPE_HERB, o FIRE_TYPE_WOOD.",
-            model);
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Allocate a new FuelParticle */
-    particle = Fuel_Particles(catalog,model);
-    if ( (Fuel_ParticlePtr(catalog,model,particle) =
-        (PartPtr) calloc(1, sizeof(FuelParticleData))) == NULL )
-    {
-        sprintf(FuelCat_Error(catalog),
-            "Fire_FuelParticleAdd(): imposible asignar la partícula de combustible al modelo de combustible \"%s\" número %d en el catálogo de combustibles \"%s\".",
-            Fuel_Name(catalog,model), model, FuelCat_Name(catalog));
-        return (FuelCat_Status(catalog) = FIRE_STATUS_ERROR);
-    }
-
-    /* Store the input particle attributes. */
-    Fuel_Type(catalog,model,particle)       = type;
-    Fuel_Load(catalog,model,particle)       = load;
-    Fuel_Savr(catalog,model,particle)       = savr;
-    Fuel_Density(catalog,model,particle)    = dens;
-    Fuel_Heat(catalog,model,particle)       = heat;
-    Fuel_SiTotal(catalog,model,particle)    = stot;
-    Fuel_SiEffective(catalog,model,particle)= seff;
-
-    /* Fuel life category. */
-    Fuel_Live(catalog,model,particle) =
-        (type==FIRE_TYPE_DEAD) ? FIRE_LIFE_DEAD : FIRE_LIFE_LIVE;
-
-    /* Fuel particle surface area. */
-    Fuel_SurfaceArea(catalog,model,particle) =
-        (dens > Smidgen) ? load * savr / dens : 0.;
-
-    /* Particle SAVR exponent factor. */
-    Fuel_SigmaFactor(catalog,model,particle) =
-        (savr > Smidgen) ? exp(-138. / savr) : 0.;
-
-    /* Particle size class. */
-    for ( size=0; savr < Size_boundary[size]; size++ )
-        /* NOTHING */ ;
-    Fuel_SizeClass(catalog,model,particle) = size;
-
-    /* Initialize particle attributes that are bed & environ dependent. */
-    Fuel_AreaWtg(catalog,model,particle)     = 0.;
-    Fuel_SizeAreaWtg(catalog,model,particle) = 0.;
-    Fuel_Moisture(catalog,model,particle)    = 0.;
-
-    /* Increment the fuel model's particle counter and reset it flag. */
-    Fuel_Particles(catalog,model)++;
-    Fuel_CombustionFlag(catalog,model) = 0;
-
-    return (FuelCat_Status(catalog) = FIRE_STATUS_OK);
-}
-
-/*
- *******************************************************************************
- * End of fireLib.c
- *******************************************************************************
- */
diff --git a/src/modules_simulation/fire/sim_fire_spreading/fireLib.h b/src/modules_simulation/fire/sim_fire_spreading/fireLib.h
deleted file mode 100644
index 8745843..0000000
--- a/src/modules_simulation/fire/sim_fire_spreading/fireLib.h
+++ /dev/null
@@ -1,548 +0,0 @@
-/*
- *******************************************************************************
- *
- *  fireLib.h
- *
- *  Description
- *      Library of BEHAVE (Andrews 1986) fire behavior algorithms
- *      encapsulated and optimized for fire behavior simulation.
- *
- *  Legalities
- *      Copyright (c) 1996 Collin D. Bevins.
- *      See the file "license.txt" for information on usage and
- *      redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- *  Description
- *      This header file describes the externally-visible facilities of
- *      the Fire Behavior Library C API.
- *
- *      This file really needs to be split into public and private portions.
- *
- *  History
- *      1996/09/04  Version 1.0.0 release.
- *      1999/03/05  Fixed NNFL07 live SAVR from 1500 to 1550.
- *
- *******************************************************************************
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <math.h>
-#include <assert.h>
-
-#ifndef _FIRE_LIB
-#define _FIRE_LIB 1
-
-#define FIRELIB_VERSION "1.0"
-#define FIRELIB_MAJOR_VERSION 1
-#define FIRELIB_MINOR_VERSION 0
-#define FIRELIB_PATCH_LEVEL   1
-
-/*
- *------------------------------------------------------------------------------
- * Definitions that allow this header file to be used either with or
- * without ANSI C features like function prototypes.
- *------------------------------------------------------------------------------
- */
-
-#undef _ANSI_ARGS_
-#undef CONST
-#if ((defined(__STDC__) || defined(SABER)) && !defined(NO_PROTOTYPE)) || defined(__cplusplus)
-#   define _USING_PROTOTYPES_ 1
-#   define _ANSI_ARGS_(x)       x
-#   define CONST const
-#   ifdef __cplusplus
-#       define VARARGS(first) (first, ...)
-#   else
-#       define VARARGS(first) ()
-#   endif
-#else
-#   define _ANSI_ARGS_(x)       ()
-#   define CONST
-#endif
-
-#ifdef __cplusplus
-#   define EXTERN extern "C"
-#else
-#   define EXTERN extern
-#endif
-
-/*
- *------------------------------------------------------------------------------
- * Macro to use instead of "void" for arguments that must have type "void *"
- * in ANSI C;  maps them to type "char *" in non-ANSI systems.
- *------------------------------------------------------------------------------
- */
-
-#ifndef VOID
-#   ifdef __STDC__
-#       define VOID void
-#   else
-#       define VOID char
-#   endif
-#endif
-
-/*
- *------------------------------------------------------------------------------
- *  Macro pseudo functions.
- *------------------------------------------------------------------------------
- */
-
-#define Smidgen                 (0.000001)
-#define DegreesToRadians(x)     ((x)*0.017453293)
-#define RadiansToDegrees(x)     ((x)*57.29577951)
-#define IsZero(x)               (fabs(x)<Smidgen)
-#define Equal(x,y)              (fabs((x)-(y))<Smidgen)
-
-/*
- *------------------------------------------------------------------------------
- * Firelib return status codes.
- *------------------------------------------------------------------------------
- */
-
-#define  FIRE_STATUS_OK         (0)
-#define  FIRE_STATUS_ERROR      (-1)
-#define  FIRE_STATUS_EOF        (1)
-
-/*
- *------------------------------------------------------------------------------
- *  Fuel moisture and mass weighting classes.
- *------------------------------------------------------------------------------
- */
-
-#define  FIRE_LIFE_CATS     (2) /* Number of fuel particle life categories */
-#define  FIRE_LIFE_DEAD     (0)
-#define  FIRE_LIFE_LIVE     (1)
-
-#define  FIRE_SIZE_CLASSES  (6) /* Number of mass weighting classes. */
-
-#define  FIRE_MCLASSES      (6) /* Number of fuel moisture classes. */
-#define  FIRE_MCLASS_1HR    (0)
-#define  FIRE_MCLASS_10HR   (1)
-#define  FIRE_MCLASS_100HR  (2)
-#define  FIRE_MCLASS_1000HR (3)
-#define  FIRE_MCLASS_HERB   (4)
-#define  FIRE_MCLASS_WOOD   (5)
-
-/*
- *------------------------------------------------------------------------------
- *  FuelParticleData structure: fuel particle input and intermediate attributes.
- *------------------------------------------------------------------------------
- */
-
-typedef struct fuelParticleDataStruct
-{
-    /* INPUT */
-    double load;                /* fuel loading                     (lb/sqft) */
-    double savr;                /* surface area-to-volume ratio        (1/ft) */
-    double dens;                /* particle density                 (lb/cuft) */
-    double heat;                /* heat of combustion                (BTU/lb) */
-    double stot;                /* total silica content        (fraction odw) */
-    double seff;                /* effective silica content    (fraction odw) */
-    /* PARTICLE_DEPENDENT */
-    double area;                /* surface area */
-    double sigma;               /* exp(-138./sigma)                      (dl) */
-    /* MODEL-DEPENDENT */
-    double awtg;                /* surface area derived weighting factor (dl) */
-    double gwtg;                /* size class area weighting factor */
-    /* ENVIRONMENT-DEPENDENT */
-    double mois;                /* particle moisture content       (fraction) */
-    size_t live;                /* life category 0=dead, 1=live               */
-    size_t type;                /* type category 0=dead, 1=herb, 2=live woody */
-    size_t sizeClass;           /* fuel moisture size class                   */
-} FuelParticleData, *FuelParticlePtr, *PartPtr;
-
-#define FIRE_TYPE_DEAD   (1)
-#define FIRE_TYPE_HERB   (2)
-#define FIRE_TYPE_WOOD   (3)
-
-/* FuelParticleData structure access macros. */
-
-#define Fuel_Live(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->live)
-
-#define Fuel_Type(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->type)
-
-#define Fuel_SizeClass(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->sizeClass)
-
-#define Fuel_Load(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->load)
-
-#define Fuel_Savr(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->savr)
-
-#define Fuel_Heat(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->heat)
-
-#define Fuel_Density(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->dens)
-
-#define Fuel_SiTotal(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->stot)
-
-#define Fuel_SiEffective(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->seff)
-
-#define Fuel_SurfaceArea(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->area)
-
-#define Fuel_AreaWtg(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->awtg)
-
-#define Fuel_SizeAreaWtg(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->gwtg)
-
-#define Fuel_SigmaFactor(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->sigma)
-
-#define Fuel_Moisture(catalog,model,particle) \
-                ((catalog)->modelPtr[(model)]->partPtr[(particle)]->mois)
-
-/*
- *------------------------------------------------------------------------------
- *  FuelModelData structure: fuel model bed input attributes.
- *------------------------------------------------------------------------------
- */
-
-typedef struct fuelModelDataStruct
-{
-    /* Input variables. */
-    size_t modelId;             /* fuel model number                          */
-    size_t combustion;          /* 0 if combustion not yet calculated         */
-    size_t maxParticles;        /* maximum number of FuelParticles            */
-    size_t particles;           /* current number of FuelParticles            */
-    PartPtr *partPtr;           /* array of pointers to Fuel Particles        */
-    char  *name;                /* fuel model short name                      */
-    char  *desc;                /* fuel model description text                */
-    char  *reserved1;           /* used for alignment                         */
-    double depth;               /* fuel bed depth                        (ft) */
-    double mext;                /* dead fuel extinction moisture   (fraction) */
-    double adjust;              /* spread rate adjustment factor         (dl) */
-    /* Combustion intermediates. */
-    double awtg[2];             /* dead & live fuel area weighting factors    */
-    double rxFactor[2];         /* dead and live fuel rx factors              */
-    double fineDead;            /* fine dead fuel ratio                       */
-    double liveFactor;          /* live fuel moisture extinction factor       */
-    double rhob;                /* fuel bed bulk density                      */
-    double taur;                /* residence time                       (min) */
-    double propFlux;            /* propagating flux ratio                     */
-    double slopeK;              /* slope parameter 'k'                        */
-    double windB;               /* wind parameter 'b'                         */
-    double windE;               /* wind parameter (ratio**e/c)                */
-    double windK;               /* wind parameter (c * ratio**-e)             */
-    /* Current environment. */
-    double moisture[FIRE_MCLASSES]; /* array of fuel moistures (fraction odw) */
-    double windFpm;             /* wind speed                        (ft/min) */
-    double windDeg;             /* wind vector         (degrees from upslope) */
-    double slope;               /* slope                         (rise/reach) */
-    double aspect;              /* aspect (downslope) azimuth  (compass degs) */
-    /* Updated by Fire_SpreadNoWindNoSlope() */
-    double rxInt;               /* reaction intensity          (BTU/sqft/min) */
-    double spread0;             /* no-wind, no-slope spread rate     (ft/min) */
-    double hpua;                /* heat per unit area              (BTU/sqft) */
-    /* Updated by Fire_SpreadWindSlopeMax() */
-    double spreadMax;           /* spread in direction of max spread (ft/min) */
-    double azimuthMax;          /* direction of maximum spread      (degrees) */
-    double effWind;             /* effective windspeed                        */
-    double lwRatio;             /* length-to-width ratio for eff windspeed    */
-    double eccentricity;        /* eccentricity of ellipse for eff windspeed  */
-    double phiW;                /* wind factor                                */
-    double phiS;                /* slope factor                               */
-    double phiEw;               /* combined wind-slope factor                 */
-    size_t wLimit;              /* wind limit 0=not reached, 1=reached        */
-    size_t reserved2;           /* used for alignment                         */
-    /* Updated by Fire_SpreadAtAzimuth() */
-    double spreadAny;           /* spread rate at arbitrary azimuth  (ft/min) */
-    double azimuthAny;          /* direction of arbitrary spread    (degrees) */
-    double byrams;              /* fireline intensity              (BTU/ft/s) */
-    double flame;               /* flame length                          (ft) */
-    double scorch;              /* scorch height                         (ft) */
-} FuelModelData, *FuelModelPtr;
-
-/* Fuel model input variable macros. */
-#define Fuel_Model(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->modelId)
-
-#define Fuel_Name(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->name)
-
-#define Fuel_Desc(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->desc)
-
-#define Fuel_Depth(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->depth)
-
-#define Fuel_Mext(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->mext)
-
-#define Fuel_SpreadAdjustment(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->adjust)
-
-#define Fuel_CombustionFlag(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->combustion)
-
-#define Fuel_MaxParticles(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->maxParticles)
-
-#define Fuel_Particles(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->particles)
-
-#define Fuel_ParticleArray(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->partPtr)
-
-#define Fuel_ParticlePtr(catalog,model,particle) \
-                    ((catalog)->modelPtr[(model)]->partPtr[(particle)])
-
-/* Fuel model combustion intermediates macros. */
-#define Fuel_LifeAreaWtg(catalog,model,life) \
-                    ((catalog)->modelPtr[(model)]->awtg[(life)])
-
-#define Fuel_LifeRxFactor(catalog,model,life) \
-                    ((catalog)->modelPtr[(model)]->rxFactor[(life)])
-
-#define Fuel_FineDead(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->fineDead)
-
-#define Fuel_LiveMextFactor(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->liveFactor)
-
-#define Fuel_BulkDensity(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->rhob)
-
-#define Fuel_ResidenceTime(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->taur)
-
-#define Fuel_PropFlux(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->propFlux)
-
-#define Fuel_SlopeK(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->slopeK)
-
-#define Fuel_WindB(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->windB)
-
-#define Fuel_WindE(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->windE)
-
-#define Fuel_WindK(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->windK)
-
-/* Fuel model fire behavior variable macros. */
-#define Fuel_RxIntensity(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->rxInt)
-
-#define Fuel_Spread0(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->spread0)
-
-#define Fuel_HeatPerUnitArea(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->hpua)
-
-#define Fuel_SpreadMax(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->spreadMax)
-
-#define Fuel_AzimuthMax(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->azimuthMax)
-
-#define Fuel_SpreadAny(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->spreadAny)
-
-#define Fuel_AzimuthAny(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->azimuthAny)
-
-#define Fuel_EffectiveWind(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->effWind)
-
-#define Fuel_LwRatio(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->lwRatio)
-
-#define Fuel_Eccentricity(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->eccentricity)
-
-#define Fuel_PhiWind(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->phiW)
-
-#define Fuel_PhiSlope(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->phiS)
-
-#define Fuel_PhiEffWind(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->phiEw)
-
-#define Fuel_WindLimit(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->wLimit)
-
-#define Fuel_ByramsIntensity(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->byrams)
-
-#define Fuel_FlameLength(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->flame)
-
-#define Fuel_ScorchHeight(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->scorch)
-
-/* Fuel model environment variable macros. */
-#define Fuel_EnvMoisture(catalog,model,mclass) \
-                    ((catalog)->modelPtr[(model)]->moisture[(mclass)])
-
-#define Fuel_WindSpeed(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->windFpm)
-
-#define Fuel_WindDir(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->windDeg)
-
-#define Fuel_Slope(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->slope)
-
-#define Fuel_Aspect(catalog,model) \
-                    ((catalog)->modelPtr[(model)]->aspect)
-
-/*
- *------------------------------------------------------------------------------
- *  FuelCatData structure; provides a complete fuel catalog.
- *------------------------------------------------------------------------------
- */
-
-#define FIRE_CATALOG_MAGIC      (19520904L)
-#define FIRE_ERROR_BUFFER_SIZE  (1024)
-
-typedef struct fuelCatalogStruct
-{
-    long      magicCookie;      /* magic cookie for sanity checking           */
-    int       status;           /* return status of most recent call          */
-    size_t    maxModels;        /* maximum number of models in this catalog   */
-    size_t    flameClasses;     /* size of the flame length array             */
-    char         *name;         /* name for this catalog instance             */
-    char         *error;        /* error message buffer                       */
-    FuelModelPtr *modelPtr;     /* array of ModelPtr[maxModels+1]             */
-    double       *flamePtr;     /* flame length lookup array                  */
-    double        flameStep;    /* size of each flame length table class (ft) */
-} FuelCatalogData, *FuelCatalogPtr;
-
-#define FuelCat_MagicCookie(catalog)    (catalog->magicCookie)
-#define FuelCat_MaxModels(catalog)      (catalog->maxModels)
-#define FuelCat_Status(catalog)         (catalog->status)
-#define FuelCat_FlameClasses(catalog)   (catalog->flameClasses)
-#define FuelCat_FlameStep(catalog)      (catalog->flameStep)
-#define FuelCat_FlameArray(catalog)     (catalog->flamePtr)
-#define FuelCat_Name(catalog)           (catalog->name)
-#define FuelCat_Error(catalog)          (catalog->error)
-#define FuelCat_ModelArray(catalog)     (catalog->modelPtr)
-#define FuelCat_ModelPtr(catalog,model) (catalog->modelPtr[model])
-
-/*
- *------------------------------------------------------------------------------
- *  Function prototypes for fire behavior computations.
- *------------------------------------------------------------------------------
- */
-
-#define FIRE_NONE       (0)
-#define FIRE_BYRAMS     (1)
-#define FIRE_FLAME      (2)
-#define FIRE_SCORCH     (4)
-
-EXTERN int Fire_FlameScorch _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t  model,              /* fuel model number            [0-maxModels] */
-    size_t  doWhich     /* FIRE_NONE | FIRE_BYRAMS | FIRE_FLAME | FIRE_SCORCH */
-    )) ;
-
-EXTERN int Fire_FuelCombustion _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t  model               /* fuel model number            [0-maxModels] */
-    )) ;
-
-EXTERN int Fire_SpreadNoWindNoSlope _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t  model,              /* fuel model number            [0-maxModels] */
-    double  moisture[FIRE_MCLASSES]  /* array of fuel moistures   (fractions) */
-    )) ;
-
-EXTERN int Fire_SpreadWindSlopeMax _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t  model,              /* fuel model number            [0-maxModels] */
-    double  windFpm,            /* wind speed                        (ft/min) */
-    double  windDeg,            /* wind bearing vector         (compass degs) */
-    double  slope,              /* slope                         (rise/reach) */
-    double  aspect              /* aspect (downslope) azimuth  (compass degs) */
-    )) ;
-
-EXTERN int Fire_SpreadAtAzimuth _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t  model,              /* fuel model number            [0-maxModels] */
-    double  azimuth,            /* fire spread azimuth     (deg from upslope) */
-    size_t  doWhich     /* FIRE_NONE | FIRE_BYRAMS | FIRE_FLAME | FIRE_SCORCH */
-    )) ;
-
-/*
- *------------------------------------------------------------------------------
- *  Function prototypes for creating and destroying fuel catalogs, fuel models,
- *  fuel particles, and flame length tables.
- *------------------------------------------------------------------------------
- */
-
-EXTERN int Fire_FlameLengthTable _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t  flameClasses,       /* number of flame length classes             */
-    double  flameStep           /* flame length step value per class          */
-    )) ;
-
-EXTERN FuelCatalogPtr Fire_FuelCatalogCreate _ANSI_ARGS_((
-    char  *name,                /* FuelCatalogData instance name              */
-    size_t maxModels            /* maximum modelId allowed in this catalog    */
-    )) ;
-
-EXTERN FuelCatalogPtr Fire_FuelCatalogCreateStandard _ANSI_ARGS_((
-    char  *name,                /* FuelCatalogData instance name              */
-    size_t maxModels            /* maximum modelId allowed in this catalog    */
-    )) ;
-
-EXTERN int Fire_FuelCatalogDestroy _ANSI_ARGS_((
-    FuelCatalogPtr catalog      /* FuelCatalogData instance pointer           */
-    )) ;
-
-EXTERN int Fire_FuelModelCreate _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance                   */
-    size_t  model,              /* fuel model number            [0-maxModels] */
-    char   *name,               /* short name                                 */
-    char   *desc,               /* longer description                         */
-    double  depth,              /* bed depth                             (ft) */
-    double  mext,               /* moisture of extinction                (dl) */
-    double  adjust,             /* spread adjustment factor              (dl) */
-    size_t  maxParticles        /* maximum number of fuel model particles     */
-    )) ;
-
-EXTERN int Fire_FuelModelDestroy _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t         model        /* fuel model id number         [0-maxModels] */
-    )) ;
-
-EXTERN int Fire_FuelModelExists _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t         model        /* fuel model id number         [0-maxModels] */
-    )) ;
-
-EXTERN int Fire_FuelParticleAdd _ANSI_ARGS_((
-    FuelCatalogPtr catalog,     /* FuelCatalogData instance pointer           */
-    size_t  model,              /* fuel model id number         [0-maxModels] */
-    size_t  type,               /* FIRE_TYPE_DEAD, _TYPE_HERB, or _TYPE_WOOD  */
-    double  load,               /* fuel load                        (lbs/ft2) */
-    double  savr,               /* surface-area-to-volume ratio     (ft2/ft3) */
-    double  dens,               /* density                          (lbs/ft3) */
-    double  heat,               /* heat of combustion               (btus/lb) */
-    double  stot,               /* total silica content               (lb/lb) */
-    double  seff                /* effective silica content           (lb/lb) */
-    )) ;
-
-#ifdef NEED_STRDUP
-char *strdup ( const char *str ) ;
-#endif
-
-#endif
-
-/*
- *******************************************************************************
- * End of fireLib.h
- *******************************************************************************
- */

-- 
Saga GIS



More information about the Pkg-grass-devel mailing list