#include "global.h" int check_ready(void) { int retval; flg.overwrlist = 0; retval = 0; if (check_required() || check_names() || check_io()) retval = 1; if (!retval) { if (flg.overwrlist & FILL) G_remove("cell", map.fill); if (flg.overwrlist & DIR) G_remove("cell", map.dir); if (flg.overwrlist & BELEV) G_remove("cell", map.belev); if (flg.overwrlist & TOPIDX) G_remove("cell", map.topidx); if (flg.overwrlist & IDXSTATS) unlink(file.idxstats); if (flg.overwrlist & OUTPUT) unlink(file.output); } return retval; } int check_required(void) { int retval; retval = 0; if (!flg.input) { if (!map.elev) { G_warning("elevation required"); retval = 1; } if (!map.basin) { G_warning("basin required"); retval = 1; } if (!map.belev) { G_warning("belevation required"); retval = 1; } if (!map.topidx) { G_warning("topidx required"); retval = 1; } if (map.fill && !map.dir) { G_warning("direction required " "if depressionless is given"); retval = 1; } if (map.dir && !map.fill) { G_warning("depressionless required " "if direction is given"); retval = 1; } } else { if (map.belev && !map.topidx) { G_warning("topidx required " "if belevation is given"); retval = 1; } } return retval; } int check_names(void) { int retval; retval = 0; if (!flg.input) { if (map.elev) { if (map.basin && !strcmp(map.elev, map.basin)) { G_warning("elevation == basin"); retval = 1; } if (map.fill && !strcmp(map.elev, map.fill)) { G_warning("elevation == " "depressionless"); retval = 1; } if (map.dir && !strcmp(map.elev, map.dir)) { G_warning("elevation == direction"); retval = 1; } if (map.belev && !strcmp(map.elev, map.belev)) { G_warning("elevation == belevation"); retval = 1; } if (map.topidx && !strcmp(map.elev, map.topidx)) { G_warning("elevation == topidx"); retval = 1; } } if (map.basin) { if (map.fill && !strcmp(map.basin, map.fill)) { G_warning("basin == depressionless"); retval = 1; } if (map.dir && !strcmp(map.basin, map.dir)) { G_warning("basin == direction"); retval = 1; } if (map.belev && !strcmp(map.basin, map.belev)) { G_warning("basin == belevation"); retval = 1; } if (map.topidx && !strcmp(map.basin, map.topidx)) { G_warning("basin == topidx"); retval = 1; } } if (map.fill) { if (map.dir && !strcmp(map.fill, map.dir)) { G_warning("depressionless == " "direction"); retval = 1; } if (map.belev && !strcmp(map.fill, map.belev)) { G_warning("depressionless == " "belevation"); retval = 1; } if (map.topidx && !strcmp(map.fill, map.topidx)) { G_warning("depressionless == topidx"); retval = 1; } } if (map.dir) { if (map.belev && !strcmp(map.dir, map.belev)) { G_warning("direction == belevation"); retval = 1; } if (map.topidx && !strcmp(map.dir, map.topidx)) { G_warning("direction == topidx"); retval = 1; } } } if (map.belev) { if (map.topidx && !strcmp(map.belev, map.topidx)) { G_warning("belevation == topidx"); retval = 1; } } if (!strcmp(file.idxstats, file.params)) { G_warning("idxstats == parameters"); retval = 1; } if (!strcmp(file.idxstats, file.input)) { G_warning("idxstats == input"); retval = 1; } if (!strcmp(file.idxstats, file.output)) { G_warning("idxstats == output"); retval = 1; } if (file.Qobs && !strcmp(file.idxstats, file.Qobs)) { G_warning("idxstats == Qobs"); retval = 1; } if (!strcmp(file.params, file.input)) { G_warning("parameters == input"); retval = 1; } if (!strcmp(file.params, file.output)) { G_warning("parameters == output"); retval = 1; } if (file.Qobs && !strcmp(file.params, file.Qobs)) { G_warning("parameters == Qobs"); retval = 1; } if (!strcmp(file.input, file.output)) { G_warning("input == output"); retval = 1; } if (file.Qobs && !strcmp(file.input, file.Qobs)) { G_warning("input == Qobs"); retval = 1; } if (file.Qobs && !strcmp(file.output, file.Qobs)) { G_warning("output == Qobs"); retval = 1; } return retval; } int check_io(void) { int retval; FILE *fp; retval = 0; if (!flg.input) { if (map.elev && !G_find_raster(map.elev, mapset)) { G_warning("%s - not exists", map.elev); retval = 1; } if (map.basin && !G_find_raster(map.basin, mapset)) { G_warning("%s - not exists", map.basin); retval = 1; } if (map.fill && G_find_raster(map.fill, mapset)) { if (flg.overwr) { flg.overwrlist |= FILL; } else { G_warning("%s - already exists", map.fill); retval = 1; } } if (map.dir && G_find_raster(map.dir, mapset)) { if (flg.overwr) { flg.overwrlist |= DIR; } else { G_warning("%s - already exists", map.dir); retval = 1; } } if (map.belev && G_find_raster(map.belev, mapset)) { if (flg.overwr) { flg.overwrlist |= BELEV; } else { G_warning("%s - already exists", map.belev); retval = 1; } } if (map.topidx && G_find_raster(map.topidx, mapset)) { if (flg.overwr) { flg.overwrlist |= TOPIDX; } else { G_warning("%s - already exists", map.topidx); retval = 1; } } if (file.idxstats && (fp = fopen(file.idxstats, "r"))) { fclose(fp); if (flg.overwr) { flg.overwrlist |= IDXSTATS; } else { G_warning("%s - file already exists", file.idxstats); retval = 1; } } } else { if (map.belev) { if (!G_find_raster(map.belev, mapset)) { G_warning("%s - not exists", map.belev); retval = 1; } else { if (map.topidx && G_find_raster(map.topidx, mapset)) { if (flg.overwr) { flg.overwrlist |= TOPIDX; } else { G_warning("%s - " "already exists", map.topidx); retval = 1; } } if (file.idxstats && (fp = fopen(file.idxstats, "r"))) { fclose(fp); if (flg.overwr) { flg.overwrlist |= IDXSTATS; } else { G_warning("%s - file " "already exists", file.idxstats); retval = 1; } } } } else if (map.topidx) { if (!G_find_raster(map.topidx, mapset)) { G_warning("%s - not exists", map.topidx); retval = 1; } else { if (file.idxstats && (fp = fopen(file.idxstats, "r"))) { fclose(fp); if (flg.overwr) { flg.overwrlist |= IDXSTATS; } else { G_warning("%s - file " "already exists", file.idxstats); retval = 1; } } } } else if (file.idxstats) { if (!(fp = fopen(file.idxstats, "r"))) { G_warning("%s - file not exists", file.idxstats); retval = 1; } else { fclose(fp); } } } if (file.params) { if (!(fp = fopen(file.params, "r"))) { G_warning("%s - file not exists", file.params); retval = 1; } else { fclose(fp); } } if (file.input) { if (!(fp = fopen(file.input, "r"))) { G_warning("%s - file not exists", file.input); retval = 1; } else { fclose(fp); } } if (file.output && (fp = fopen(file.output, "r"))) { fclose(fp); if (flg.overwr) { flg.overwrlist |= OUTPUT; } else { G_warning("%s - file already exists", file.output); retval = 1; } } if (file.Qobs) { if (!(fp = fopen(file.Qobs, "r"))) { G_warning("%s - file not exists", file.Qobs); retval = 1; } else { fclose(fp); } } return retval; }